summaryrefslogtreecommitdiff
path: root/drivers/staging/media/as102/as102_usb_drv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/media/as102/as102_usb_drv.c')
-rw-r--r--drivers/staging/media/as102/as102_usb_drv.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/staging/media/as102/as102_usb_drv.c b/drivers/staging/media/as102/as102_usb_drv.c
index 8d2c84c36a5c..0f6bfe7eccba 100644
--- a/drivers/staging/media/as102/as102_usb_drv.c
+++ b/drivers/staging/media/as102/as102_usb_drv.c
@@ -57,6 +57,17 @@ static const char * const as102_device_names[] = {
NULL /* Terminating entry */
};
+/* eLNA configuration: devices built on the reference design work best
+ with 0xA0, while custom designs seem to require 0xC0 */
+static uint8_t const as102_elna_cfg[] = {
+ 0xA0,
+ 0xC0,
+ 0xC0,
+ 0xA0,
+ 0xA0,
+ 0x00 /* Terminating entry */
+};
+
struct usb_driver as102_usb_driver = {
.name = DRIVER_FULL_NAME,
.probe = as102_usb_probe,
@@ -371,8 +382,10 @@ static int as102_usb_probe(struct usb_interface *intf,
/* Assign the user-friendly device name */
for (i = 0; i < (sizeof(as102_usb_id_table) /
sizeof(struct usb_device_id)); i++) {
- if (id == &as102_usb_id_table[i])
+ if (id == &as102_usb_id_table[i]) {
as102_dev->name = as102_device_names[i];
+ as102_dev->elna_cfg = as102_elna_cfg[i];
+ }
}
if (as102_dev->name == NULL)