aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/dibusb-mb.c
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2005-11-09 00:35:52 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-09 10:56:05 -0500
commitf6f4b725461d1f3e2587993b22b0c6fe524d9259 (patch)
tree1fdede40e29ec4763c7496494478fa7186be0e76 /drivers/media/dvb/dvb-usb/dibusb-mb.c
parentf93cf038d5930810e7e280e70de6e0c07ad959da (diff)
[PATCH] dvb: Add support for the Artec T1 USB2.0 box
Adding support for the Artec T1 USB2.0 box (real USB2.0) Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Cc: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dibusb-mb.c')
-rw-r--r--drivers/media/dvb/dvb-usb/dibusb-mb.c59
1 files changed, 55 insertions, 4 deletions
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c
index 0058505634a0..aa271a2496d5 100644
--- a/drivers/media/dvb/dvb-usb/dibusb-mb.c
+++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c
@@ -82,13 +82,15 @@ static int dibusb_tuner_probe_and_attach(struct dvb_usb_device *d)
82static struct dvb_usb_properties dibusb1_1_properties; 82static struct dvb_usb_properties dibusb1_1_properties;
83static struct dvb_usb_properties dibusb1_1_an2235_properties; 83static struct dvb_usb_properties dibusb1_1_an2235_properties;
84static struct dvb_usb_properties dibusb2_0b_properties; 84static struct dvb_usb_properties dibusb2_0b_properties;
85static struct dvb_usb_properties artec_t1_usb2_properties;
85 86
86static int dibusb_probe(struct usb_interface *intf, 87static int dibusb_probe(struct usb_interface *intf,
87 const struct usb_device_id *id) 88 const struct usb_device_id *id)
88{ 89{
89 if (dvb_usb_device_init(intf,&dibusb1_1_properties,THIS_MODULE,NULL) == 0 || 90 if (dvb_usb_device_init(intf,&dibusb1_1_properties,THIS_MODULE,NULL) == 0 ||
90 dvb_usb_device_init(intf,&dibusb1_1_an2235_properties,THIS_MODULE,NULL) == 0 || 91 dvb_usb_device_init(intf,&dibusb1_1_an2235_properties,THIS_MODULE,NULL) == 0 ||
91 dvb_usb_device_init(intf,&dibusb2_0b_properties,THIS_MODULE,NULL) == 0) 92 dvb_usb_device_init(intf,&dibusb2_0b_properties,THIS_MODULE,NULL) == 0 ||
93 dvb_usb_device_init(intf,&artec_t1_usb2_properties,THIS_MODULE,NULL) == 0)
92 return 0; 94 return 0;
93 95
94 return -EINVAL; 96 return -EINVAL;
@@ -128,10 +130,13 @@ static struct usb_device_id dibusb_dib3000mb_table [] = {
128 130
129/* 27 */ { USB_DEVICE(USB_VID_KWORLD, USB_PID_KWORLD_VSTREAM_COLD) }, 131/* 27 */ { USB_DEVICE(USB_VID_KWORLD, USB_PID_KWORLD_VSTREAM_COLD) },
130 132
133/* 28 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_COLD) },
134/* 29 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_WARM) },
135
131// #define DVB_USB_DIBUSB_MB_FAULTY_USB_IDs 136// #define DVB_USB_DIBUSB_MB_FAULTY_USB_IDs
132 137
133#ifdef DVB_USB_DIBUSB_MB_FAULTY_USB_IDs 138#ifdef DVB_USB_DIBUSB_MB_FAULTY_USB_IDs
134/* 28 */ { USB_DEVICE(USB_VID_ANCHOR, USB_PID_ULTIMA_TVBOX_ANCHOR_COLD) }, 139/* 30 */ { USB_DEVICE(USB_VID_ANCHOR, USB_PID_ULTIMA_TVBOX_ANCHOR_COLD) },
135#endif 140#endif
136 { } /* Terminating entry */ 141 { } /* Terminating entry */
137}; 142};
@@ -264,7 +269,7 @@ static struct dvb_usb_properties dibusb1_1_an2235_properties = {
264 }, 269 },
265#ifdef DVB_USB_DIBUSB_MB_FAULTY_USB_IDs 270#ifdef DVB_USB_DIBUSB_MB_FAULTY_USB_IDs
266 { "Artec T1 USB1.1 TVBOX with AN2235 (faulty USB IDs)", 271 { "Artec T1 USB1.1 TVBOX with AN2235 (faulty USB IDs)",
267 { &dibusb_dib3000mb_table[28], NULL }, 272 { &dibusb_dib3000mb_table[30], NULL },
268 { NULL }, 273 { NULL },
269 }, 274 },
270#endif 275#endif
@@ -273,7 +278,7 @@ static struct dvb_usb_properties dibusb1_1_an2235_properties = {
273 278
274static struct dvb_usb_properties dibusb2_0b_properties = { 279static struct dvb_usb_properties dibusb2_0b_properties = {
275 .caps = DVB_USB_HAS_PID_FILTER | DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF | DVB_USB_IS_AN_I2C_ADAPTER, 280 .caps = DVB_USB_HAS_PID_FILTER | DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF | DVB_USB_IS_AN_I2C_ADAPTER,
276 .pid_filter_count = 32, 281 .pid_filter_count = 16,
277 282
278 .usb_ctrl = CYPRESS_FX2, 283 .usb_ctrl = CYPRESS_FX2,
279 284
@@ -321,6 +326,52 @@ static struct dvb_usb_properties dibusb2_0b_properties = {
321 } 326 }
322}; 327};
323 328
329static struct dvb_usb_properties artec_t1_usb2_properties = {
330 .caps = DVB_USB_HAS_PID_FILTER | DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF | DVB_USB_IS_AN_I2C_ADAPTER,
331 .pid_filter_count = 16,
332
333 .usb_ctrl = CYPRESS_FX2,
334
335 .firmware = "dvb-usb-dibusb-6.0.0.8.fw",
336
337 .size_of_priv = sizeof(struct dibusb_state),
338
339 .streaming_ctrl = dibusb2_0_streaming_ctrl,
340 .pid_filter = dibusb_pid_filter,
341 .pid_filter_ctrl = dibusb_pid_filter_ctrl,
342 .power_ctrl = dibusb2_0_power_ctrl,
343 .frontend_attach = dibusb_dib3000mb_frontend_attach,
344 .tuner_attach = dibusb_tuner_probe_and_attach,
345
346 .rc_interval = DEFAULT_RC_INTERVAL,
347 .rc_key_map = dibusb_rc_keys,
348 .rc_key_map_size = 63, /* wow, that is ugly ... I want to load it to the driver dynamically */
349 .rc_query = dibusb_rc_query,
350
351 .i2c_algo = &dibusb_i2c_algo,
352
353 .generic_bulk_ctrl_endpoint = 0x01,
354 /* parameter for the MPEG2-data transfer */
355 .urb = {
356 .type = DVB_USB_BULK,
357 .count = 7,
358 .endpoint = 0x06,
359 .u = {
360 .bulk = {
361 .buffersize = 4096,
362 }
363 }
364 },
365
366 .num_device_descs = 1,
367 .devices = {
368 { "Artec T1 USB2.0",
369 { &dibusb_dib3000mb_table[28], NULL },
370 { &dibusb_dib3000mb_table[29], NULL },
371 },
372 }
373};
374
324static struct usb_driver dibusb_driver = { 375static struct usb_driver dibusb_driver = {
325 .owner = THIS_MODULE, 376 .owner = THIS_MODULE,
326 .name = "dvb_usb_dibusb_mb", 377 .name = "dvb_usb_dibusb_mb",