diff options
-rw-r--r-- | drivers/staging/media/as102/as102_drv.h | 2 | ||||
-rw-r--r-- | drivers/staging/media/as102/as102_fe.c | 2 | ||||
-rw-r--r-- | drivers/staging/media/as102/as102_usb_drv.c | 15 |
3 files changed, 16 insertions, 3 deletions
diff --git a/drivers/staging/media/as102/as102_drv.h b/drivers/staging/media/as102/as102_drv.h index 957f0ed0d81..b0e5a23bd53 100644 --- a/drivers/staging/media/as102/as102_drv.h +++ b/drivers/staging/media/as102/as102_drv.h | |||
@@ -76,7 +76,7 @@ struct as102_dev_t { | |||
76 | struct as10x_bus_adapter_t bus_adap; | 76 | struct as10x_bus_adapter_t bus_adap; |
77 | struct list_head device_entry; | 77 | struct list_head device_entry; |
78 | struct kref kref; | 78 | struct kref kref; |
79 | unsigned long minor; | 79 | uint8_t elna_cfg; |
80 | 80 | ||
81 | struct dvb_adapter dvb_adap; | 81 | struct dvb_adapter dvb_adap; |
82 | struct dvb_frontend dvb_fe; | 82 | struct dvb_frontend dvb_fe; |
diff --git a/drivers/staging/media/as102/as102_fe.c b/drivers/staging/media/as102/as102_fe.c index bdc5a38cddf..043c520183d 100644 --- a/drivers/staging/media/as102/as102_fe.c +++ b/drivers/staging/media/as102/as102_fe.c | |||
@@ -265,7 +265,7 @@ static int as102_fe_ts_bus_ctrl(struct dvb_frontend *fe, int acquire) | |||
265 | 265 | ||
266 | if (acquire) { | 266 | if (acquire) { |
267 | if (elna_enable) | 267 | if (elna_enable) |
268 | as10x_cmd_set_context(&dev->bus_adap, 1010, 0xC0); | 268 | as10x_cmd_set_context(&dev->bus_adap, CONTEXT_LNA, dev->elna_cfg); |
269 | 269 | ||
270 | ret = as10x_cmd_turn_on(&dev->bus_adap); | 270 | ret = as10x_cmd_turn_on(&dev->bus_adap); |
271 | } else { | 271 | } else { |
diff --git a/drivers/staging/media/as102/as102_usb_drv.c b/drivers/staging/media/as102/as102_usb_drv.c index 8d2c84c36a5..0f6bfe7eccb 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[] = { | |||
57 | NULL /* Terminating entry */ | 57 | NULL /* Terminating entry */ |
58 | }; | 58 | }; |
59 | 59 | ||
60 | /* eLNA configuration: devices built on the reference design work best | ||
61 | with 0xA0, while custom designs seem to require 0xC0 */ | ||
62 | static uint8_t const as102_elna_cfg[] = { | ||
63 | 0xA0, | ||
64 | 0xC0, | ||
65 | 0xC0, | ||
66 | 0xA0, | ||
67 | 0xA0, | ||
68 | 0x00 /* Terminating entry */ | ||
69 | }; | ||
70 | |||
60 | struct usb_driver as102_usb_driver = { | 71 | struct usb_driver as102_usb_driver = { |
61 | .name = DRIVER_FULL_NAME, | 72 | .name = DRIVER_FULL_NAME, |
62 | .probe = as102_usb_probe, | 73 | .probe = as102_usb_probe, |
@@ -371,8 +382,10 @@ static int as102_usb_probe(struct usb_interface *intf, | |||
371 | /* Assign the user-friendly device name */ | 382 | /* Assign the user-friendly device name */ |
372 | for (i = 0; i < (sizeof(as102_usb_id_table) / | 383 | for (i = 0; i < (sizeof(as102_usb_id_table) / |
373 | sizeof(struct usb_device_id)); i++) { | 384 | sizeof(struct usb_device_id)); i++) { |
374 | if (id == &as102_usb_id_table[i]) | 385 | if (id == &as102_usb_id_table[i]) { |
375 | as102_dev->name = as102_device_names[i]; | 386 | as102_dev->name = as102_device_names[i]; |
387 | as102_dev->elna_cfg = as102_elna_cfg[i]; | ||
388 | } | ||
376 | } | 389 | } |
377 | 390 | ||
378 | if (as102_dev->name == NULL) | 391 | if (as102_dev->name == NULL) |