summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2009-03-31 23:01:02 +0300
committerAntti Palosaari <crope@iki.fi>2009-03-31 23:01:02 +0300
commitfdab553be22b01acd8124650ed75da649169596f (patch)
treeec50d581a85b3e465ea019c09e213b6139dd48bc /linux/drivers/media
parent65c8976997f4e297c5d082a1c80ffc80d67bfda5 (diff)
downloadmediapointer-dvb-s2-fdab553be22b01acd8124650ed75da649169596f.tar.gz
mediapointer-dvb-s2-fdab553be22b01acd8124650ed75da649169596f.tar.bz2
af9015: add support for AverMedia AVerTV Volar Black HD (A850)
From: Antti Palosaari <crope@iki.fi> Add USB ID (07ca:850a) and configuration hack for AverMedia AVerTV Volar Black HD (A850) DVB-T USB stick. Priority: normal Signed-off-by: Antti Palosaari <crope@iki.fi> Tested-by: Olivier MENUEL <omenuel@laposte.net> Tested-by: Thomas Renard <threnard@gmail.com>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/dvb/dvb-usb/af9015.c24
-rw-r--r--linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h1
2 files changed, 24 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/dvb-usb/af9015.c b/linux/drivers/media/dvb/dvb-usb/af9015.c
index e7a8f61da..5feed970a 100644
--- a/linux/drivers/media/dvb/dvb-usb/af9015.c
+++ b/linux/drivers/media/dvb/dvb-usb/af9015.c
@@ -994,6 +994,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;
}
@@ -1252,6 +1267,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);
@@ -1416,7 +1432,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",
@@ -1461,6 +1477,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},
+ },
}
}
};
diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index cd22d6dde..7031bafe6 100644
--- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -168,6 +168,7 @@
#define USB_PID_AVERMEDIA_VOLAR_X 0xa815
#define USB_PID_AVERMEDIA_VOLAR_X_2 0x8150
#define USB_PID_AVERMEDIA_A309 0xa309
+#define USB_PID_AVERMEDIA_A850 0x850a
#define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006
#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a
#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2 0x0081