|
@@ -991,6 +991,21 @@ error:
|
|
|
if (ret)
|
|
|
err("eeprom read failed:%d", ret);
|
|
|
|
|
|
+ /* AverMedia AVerTV Volar Black HD (A850) device have bad EEPROM
|
|
|
+ content :-( Override some wrong values here. */
|
|
|
+ if (le16_to_cpu(udev->descriptor.idVendor) == USB_VID_AVERMEDIA &&
|
|
|
+ le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_A850) {
|
|
|
+ deb_info("%s: AverMedia A850: overriding config\n", __func__);
|
|
|
+ /* disable dual mode */
|
|
|
+ af9015_config.dual_mode = 0;
|
|
|
+ /* disable 2nd adapter */
|
|
|
+ for (i = 0; i < af9015_properties_count; i++)
|
|
|
+ af9015_properties[i].num_adapters = 1;
|
|
|
+
|
|
|
+ /* set correct IF */
|
|
|
+ af9015_af9013_config[0].tuner_if = 4570;
|
|
|
+ }
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -1249,6 +1264,7 @@ static struct usb_device_id af9015_usb_table[] = {
|
|
|
{USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_2)},
|
|
|
{USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_3)},
|
|
|
{USB_DEVICE(USB_VID_AFATECH, USB_PID_TREKSTOR_DVBT)},
|
|
|
+ {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850)},
|
|
|
{0},
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(usb, af9015_usb_table);
|
|
@@ -1413,7 +1429,7 @@ static struct dvb_usb_device_properties af9015_properties[] = {
|
|
|
|
|
|
.i2c_algo = &af9015_i2c_algo,
|
|
|
|
|
|
- .num_device_descs = 8,
|
|
|
+ .num_device_descs = 9,
|
|
|
.devices = {
|
|
|
{
|
|
|
.name = "Xtensions XD-380",
|
|
@@ -1458,6 +1474,12 @@ static struct dvb_usb_device_properties af9015_properties[] = {
|
|
|
.cold_ids = {&af9015_usb_table[19], NULL},
|
|
|
.warm_ids = {NULL},
|
|
|
},
|
|
|
+ {
|
|
|
+ .name = "AverMedia AVerTV Volar Black HD " \
|
|
|
+ "(A850)",
|
|
|
+ .cold_ids = {&af9015_usb_table[20], NULL},
|
|
|
+ .warm_ids = {NULL},
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
};
|