Browse Source

V4L/DVB (11340): af9015: add support for AverMedia AVerTV Volar Black HD (A850)

Add USB ID (07ca:850a) and configuration hack for AverMedia AVerTV Volar
Black HD (A850) DVB-T USB stick.

Tested-by: Olivier MENUEL <omenuel@laposte.net>
Tested-by: Thomas Renard <threnard@gmail.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Antti Palosaari 16 years ago
parent
commit
3956fefc59
2 changed files with 24 additions and 1 deletions
  1. 23 1
      drivers/media/dvb/dvb-usb/af9015.c
  2. 1 0
      drivers/media/dvb/dvb-usb/dvb-usb-ids.h

+ 23 - 1
drivers/media/dvb/dvb-usb/af9015.c

@@ -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},
+			},
 		}
 	}
 };

+ 1 - 0
drivers/media/dvb/dvb-usb/dvb-usb-ids.h

@@ -170,6 +170,7 @@
 #define USB_PID_AVERMEDIA_VOLAR_X_2			0x8150
 #define USB_PID_AVERMEDIA_A309				0xa309
 #define USB_PID_AVERMEDIA_A310				0xa310
+#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