rendered paste bodydiff -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");