aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorRasmus Rohde <rohde@duff.dk>2007-07-21 14:37:35 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-09 21:02:59 -0400
commitd3c35acf2455fe354bdd00085511bef6bd6d52f1 (patch)
treebb8c5d7317a5f0e4533f2d819b220bd5b719082a /drivers/media
parent60e3cac47a442fae74d3429f706350229623bcce (diff)
V4L/DVB (5897): dtt200u: add support for the Miglia TVMini USB DVB-T adapter
add code for autodetection and firmware download to the Miglia TVMini USB DVB-T adapter. After firmware download, the device re-registers using the WT220U_ZL0353_WARM usb id. Signed-off-by: Rasmus Rohde <rohde@duff.dk> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/dvb-usb/dtt200u.c28
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h1
2 files changed, 26 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c
index 7dbe14321019..d86cf9bee91c 100644
--- a/drivers/media/dvb/dvb-usb/dtt200u.c
+++ b/drivers/media/dvb/dvb-usb/dtt200u.c
@@ -1,5 +1,5 @@
1/* DVB USB library compliant Linux driver for the WideView/ Yakumo/ Hama/ 1/* DVB USB library compliant Linux driver for the WideView/ Yakumo/ Hama/
2 * Typhoon/ Yuan DVB-T USB2.0 receiver. 2 * Typhoon/ Yuan/ Miglia DVB-T USB2.0 receiver.
3 * 3 *
4 * Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@desy.de) 4 * Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@desy.de)
5 * 5 *
@@ -96,6 +96,7 @@ static struct dvb_usb_device_properties dtt200u_properties;
96static struct dvb_usb_device_properties wt220u_fc_properties; 96static struct dvb_usb_device_properties wt220u_fc_properties;
97static struct dvb_usb_device_properties wt220u_properties; 97static struct dvb_usb_device_properties wt220u_properties;
98static struct dvb_usb_device_properties wt220u_zl0353_properties; 98static struct dvb_usb_device_properties wt220u_zl0353_properties;
99static struct dvb_usb_device_properties wt220u_miglia_properties;
99 100
100static int dtt200u_usb_probe(struct usb_interface *intf, 101static int dtt200u_usb_probe(struct usb_interface *intf,
101 const struct usb_device_id *id) 102 const struct usb_device_id *id)
@@ -103,7 +104,8 @@ static int dtt200u_usb_probe(struct usb_interface *intf,
103 if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 || 104 if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 ||
104 dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 || 105 dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 ||
105 dvb_usb_device_init(intf,&wt220u_fc_properties,THIS_MODULE,NULL) == 0 || 106 dvb_usb_device_init(intf,&wt220u_fc_properties,THIS_MODULE,NULL) == 0 ||
106 dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0) 107 dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0 ||
108 dvb_usb_device_init(intf,&wt220u_miglia_properties,THIS_MODULE,NULL) == 0)
107 return 0; 109 return 0;
108 110
109 return -ENODEV; 111 return -ENODEV;
@@ -119,6 +121,7 @@ static struct usb_device_id dtt200u_usb_table [] = {
119 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_COLD) }, 121 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_COLD) },
120 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_WARM) }, 122 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_WARM) },
121 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZAP250_COLD) }, 123 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZAP250_COLD) },
124 { USB_DEVICE(USB_VID_MIGLIA, USB_PID_WT220U_ZAP250_COLD) },
122 { 0 }, 125 { 0 },
123}; 126};
124MODULE_DEVICE_TABLE(usb, dtt200u_usb_table); 127MODULE_DEVICE_TABLE(usb, dtt200u_usb_table);
@@ -303,6 +306,25 @@ static struct dvb_usb_device_properties wt220u_zl0353_properties = {
303 } 306 }
304}; 307};
305 308
309static struct dvb_usb_device_properties wt220u_miglia_properties = {
310 .usb_ctrl = CYPRESS_FX2,
311 .firmware = "dvb-usb-wt220u-miglia-01.fw",
312
313 .num_adapters = 1,
314 .generic_bulk_ctrl_endpoint = 0x01,
315
316 .num_device_descs = 1,
317 .devices = {
318 { .name = "WideView WT-220U PenType Receiver (Miglia)",
319 .cold_ids = { &dtt200u_usb_table[9], NULL },
320 /* This device turns into WT220U_ZL0353_WARM when fw
321 has been uploaded */
322 .warm_ids = { NULL },
323 },
324 { NULL },
325 }
326};
327
306/* usb specific object needed to register this driver with the usb subsystem */ 328/* usb specific object needed to register this driver with the usb subsystem */
307static struct usb_driver dtt200u_usb_driver = { 329static struct usb_driver dtt200u_usb_driver = {
308 .name = "dvb_usb_dtt200u", 330 .name = "dvb_usb_dtt200u",
@@ -333,6 +355,6 @@ module_init(dtt200u_usb_module_init);
333module_exit(dtt200u_usb_module_exit); 355module_exit(dtt200u_usb_module_exit);
334 356
335MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 357MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
336MODULE_DESCRIPTION("Driver for the WideView/Yakumo/Hama/Typhoon/Club3D DVB-T USB2.0 devices"); 358MODULE_DESCRIPTION("Driver for the WideView/Yakumo/Hama/Typhoon/Club3D/Miglia DVB-T USB2.0 devices");
337MODULE_VERSION("1.0"); 359MODULE_VERSION("1.0");
338MODULE_LICENSE("GPL"); 360MODULE_LICENSE("GPL");
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index 4dfab02a8a0d..78ea3b566ffc 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -34,6 +34,7 @@
34#define USB_VID_LEADTEK 0x0413 34#define USB_VID_LEADTEK 0x0413
35#define USB_VID_LITEON 0x04ca 35#define USB_VID_LITEON 0x04ca
36#define USB_VID_MEDION 0x1660 36#define USB_VID_MEDION 0x1660
37#define USB_VID_MIGLIA 0x18f3
37#define USB_VID_MSI 0x0db0 38#define USB_VID_MSI 0x0db0
38#define USB_VID_OPERA1 0x695c 39#define USB_VID_OPERA1 0x695c
39#define USB_VID_PINNACLE 0x2304 40#define USB_VID_PINNACLE 0x2304