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");