diff options
author | Patrick Boettcher <pb@linuxtv.org> | 2005-11-09 00:35:52 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:05 -0500 |
commit | f6f4b725461d1f3e2587993b22b0c6fe524d9259 (patch) | |
tree | 1fdede40e29ec4763c7496494478fa7186be0e76 /drivers/media/dvb/dvb-usb/dibusb-mb.c | |
parent | f93cf038d5930810e7e280e70de6e0c07ad959da (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.c | 59 |
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) | |||
82 | static struct dvb_usb_properties dibusb1_1_properties; | 82 | static struct dvb_usb_properties dibusb1_1_properties; |
83 | static struct dvb_usb_properties dibusb1_1_an2235_properties; | 83 | static struct dvb_usb_properties dibusb1_1_an2235_properties; |
84 | static struct dvb_usb_properties dibusb2_0b_properties; | 84 | static struct dvb_usb_properties dibusb2_0b_properties; |
85 | static struct dvb_usb_properties artec_t1_usb2_properties; | ||
85 | 86 | ||
86 | static int dibusb_probe(struct usb_interface *intf, | 87 | static 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 | ||
274 | static struct dvb_usb_properties dibusb2_0b_properties = { | 279 | static 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 | ||
329 | static 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 | |||
324 | static struct usb_driver dibusb_driver = { | 375 | static 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", |