All pastes #2028419 Raw Edit

Add TeVii S480 support

public diff v1 · immutable
#2028419 ·published 2010-12-24 20:15 UTC
rendered paste body
diff -r 054f002f4d23 linux/drivers/media/dvb/dvb-usb/dw2102.c--- a/linux/drivers/media/dvb/dvb-usb/dw2102.c	Mon Dec 13 00:03:30 2010 +0200+++ b/linux/drivers/media/dvb/dvb-usb/dw2102.c	Fri Dec 24 22:10:12 2010 +0100@@ -1,6 +1,6 @@ /* DVB USB framework compliant Linux driver for the *	DVBWorld DVB-S 2101, 2102, DVB-S2 2104, DVB-C 3101,-*	TeVii S600, S630, S650,+*	TeVii S600, S630, S650, S480 *	Prof 1100, 7500,  *	Geniatech SU3000 Cards * Copyright (C) 2008,2009 Igor M. Liplianin (liplianin@me.by)@@ -59,6 +59,14 @@ #define USB_PID_TEVII_S660 0xd660 #endif +#ifndef USB_PID_TEVII_S480_1+#define USB_PID_TEVII_S480_1 0xd481+#endif++#ifndef USB_PID_TEVII_S480_2+#define USB_PID_TEVII_S480_2 0xd482+#endif+ #ifndef USB_PID_PROF_1100 #define USB_PID_PROF_1100 0xb012 #endif@@ -1448,6 +1456,8 @@ 	{USB_DEVICE(0x3034, 0x7500)}, 	{USB_DEVICE(0x1f4d, 0x3000)}, 	{USB_DEVICE(USB_VID_TERRATEC, 0x00a8)},+	{USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)},+	{USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)}, 	{ } }; @@ -1770,6 +1780,20 @@ 	{NULL}, }; +struct dvb_usb_device_properties *s480_1;+static struct dvb_usb_device_description d480_1 = {+	"TeVii S480-1 USB",+	{&dw2102_table[13], NULL},+	{NULL},+};++struct dvb_usb_device_properties *s480_2;+static struct dvb_usb_device_description d480_2 = {+	"TeVii S480-2 USB",+	{&dw2102_table[14], NULL},+	{NULL},+};+ struct dvb_usb_device_properties *p7500; static struct dvb_usb_device_description d7500 = { 	"Prof 7500 USB DVB-S2",@@ -1851,10 +1875,37 @@ 	s660->devices[0] = d660; 	s660->adapter->frontend_attach = ds3000_frontend_attach; +	s480_1 = kzalloc(sizeof(struct dvb_usb_device_properties), GFP_KERNEL);+	if (!s480_1) {+		kfree(p1100);+		kfree(s660);+		return -ENOMEM;+	}+	memcpy(s480_1, &s6x0_properties,+			sizeof(struct dvb_usb_device_properties));+	s480_1->firmware = "dvb-usb-s660.fw";+	s480_1->devices[0] = d480_1;+	s480_1->adapter->frontend_attach = ds3000_frontend_attach;++	s480_2 = kzalloc(sizeof(struct dvb_usb_device_properties), GFP_KERNEL);+	if (!s480_2) {+		kfree(p1100);+		kfree(s660);+		kfree(s480_1);+		return -ENOMEM;+	}+	memcpy(s480_2, &s6x0_properties,+			sizeof(struct dvb_usb_device_properties));+	s480_2->firmware = "dvb-usb-s660.fw";+	s480_2->devices[0] = d480_2;+	s480_2->adapter->frontend_attach = ds3000_frontend_attach;+ 	p7500 = kzalloc(sizeof(struct dvb_usb_device_properties), GFP_KERNEL); 	if (!p7500) { 		kfree(p1100); 		kfree(s660);+		kfree(s480_1);+		kfree(s480_2); 		return -ENOMEM; 	} 	memcpy(p7500, &s6x0_properties,@@ -1877,6 +1928,10 @@ 			THIS_MODULE, NULL, adapter_nr) || 	    0 == dvb_usb_device_init(intf, s660, 			THIS_MODULE, NULL, adapter_nr) ||+	    0 == dvb_usb_device_init(intf, s480_1,+			THIS_MODULE, NULL, adapter_nr) ||+	    0 == dvb_usb_device_init(intf, s480_2,+			THIS_MODULE, NULL, adapter_nr) || 	    0 == dvb_usb_device_init(intf, p7500, 			THIS_MODULE, NULL, adapter_nr) || 	    0 == dvb_usb_device_init(intf, &su3000_properties,@@ -1913,7 +1968,7 @@ MODULE_AUTHOR("Igor M. Liplianin (c) liplianin@me.by"); MODULE_DESCRIPTION("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104," 				" DVB-C 3101 USB2.0,"-				" TeVii S600, S630, S650, S660 USB2.0,"+				" TeVii S600, S630, S650, S660, S480," 				" Prof 1100, 7500 USB2.0," 				" Geniatech SU3000 devices"); MODULE_VERSION("0.1");