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 | |
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>
-rw-r--r-- | drivers/media/dvb/dvb-usb/dibusb-mb.c | 59 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dibusb.h | 4 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 5 |
3 files changed, 63 insertions, 5 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", |
diff --git a/drivers/media/dvb/dvb-usb/dibusb.h b/drivers/media/dvb/dvb-usb/dibusb.h index 6611f62977c0..2d99d05c7eab 100644 --- a/drivers/media/dvb/dvb-usb/dibusb.h +++ b/drivers/media/dvb/dvb-usb/dibusb.h | |||
@@ -11,7 +11,9 @@ | |||
11 | #ifndef _DVB_USB_DIBUSB_H_ | 11 | #ifndef _DVB_USB_DIBUSB_H_ |
12 | #define _DVB_USB_DIBUSB_H_ | 12 | #define _DVB_USB_DIBUSB_H_ |
13 | 13 | ||
14 | #define DVB_USB_LOG_PREFIX "dibusb" | 14 | #ifndef DVB_USB_LOG_PREFIX |
15 | #define DVB_USB_LOG_PREFIX "dibusb" | ||
16 | #endif | ||
15 | #include "dvb-usb.h" | 17 | #include "dvb-usb.h" |
16 | 18 | ||
17 | #include "dib3000.h" | 19 | #include "dib3000.h" |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h index 0818996bf150..6be99e537e12 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | |||
@@ -43,10 +43,14 @@ | |||
43 | #define USB_PID_COMPRO_DVBU2000_WARM 0xd001 | 43 | #define USB_PID_COMPRO_DVBU2000_WARM 0xd001 |
44 | #define USB_PID_COMPRO_DVBU2000_UNK_COLD 0x010c | 44 | #define USB_PID_COMPRO_DVBU2000_UNK_COLD 0x010c |
45 | #define USB_PID_COMPRO_DVBU2000_UNK_WARM 0x010d | 45 | #define USB_PID_COMPRO_DVBU2000_UNK_WARM 0x010d |
46 | #define USB_PID_DIBCOM_HOOK_DEFAULT 0x0064 | ||
47 | #define USB_PID_DIBCOM_HOOK_DEFAULT_REENUM 0x0065 | ||
46 | #define USB_PID_DIBCOM_MOD3000_COLD 0x0bb8 | 48 | #define USB_PID_DIBCOM_MOD3000_COLD 0x0bb8 |
47 | #define USB_PID_DIBCOM_MOD3000_WARM 0x0bb9 | 49 | #define USB_PID_DIBCOM_MOD3000_WARM 0x0bb9 |
48 | #define USB_PID_DIBCOM_MOD3001_COLD 0x0bc6 | 50 | #define USB_PID_DIBCOM_MOD3001_COLD 0x0bc6 |
49 | #define USB_PID_DIBCOM_MOD3001_WARM 0x0bc7 | 51 | #define USB_PID_DIBCOM_MOD3001_WARM 0x0bc7 |
52 | #define USB_PID_DIBCOM_STK7700 0x1e14 | ||
53 | #define USB_PID_DIBCOM_STK7700_REENUM 0x1e15 | ||
50 | #define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131 | 54 | #define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131 |
51 | #define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0 | 55 | #define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0 |
52 | #define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 | 56 | #define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 |
@@ -68,6 +72,7 @@ | |||
68 | #define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108 | 72 | #define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108 |
69 | #define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235 | 73 | #define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235 |
70 | #define USB_PID_ULTIMA_TVBOX_USB2_COLD 0x8109 | 74 | #define USB_PID_ULTIMA_TVBOX_USB2_COLD 0x8109 |
75 | #define USB_PID_ULTIMA_TVBOX_USB2_WARM 0x810a | ||
71 | #define USB_PID_ULTIMA_TVBOX_USB2_FX_COLD 0x8613 | 76 | #define USB_PID_ULTIMA_TVBOX_USB2_FX_COLD 0x8613 |
72 | #define USB_PID_ULTIMA_TVBOX_USB2_FX_WARM 0x1002 | 77 | #define USB_PID_ULTIMA_TVBOX_USB2_FX_WARM 0x1002 |
73 | #define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e | 78 | #define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e |