diff options
author | Andre Weidemann <Andre.Weidemann@web.de> | 2008-03-29 20:30:49 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:07:56 -0400 |
commit | 8c899bce2a5540b19e86dd3b355e5699657da144 (patch) | |
tree | c550c507134b80de8c8895825a98eadb7f02a025 /drivers/media/dvb | |
parent | ca06fa79a5babc21f0240979e5b1dd34dcc3c6e4 (diff) |
V4L/DVB (7472): reworked patch to support TT connect S-2400
Added support for Technotrend connect S-2400.
Signed-off-by: Andre Weidemann <Andre.Weidemann@web.de>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 2 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/ttusb2.c | 62 |
2 files changed, 60 insertions, 4 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h index aa4844ef875e..2cbfd6694cf9 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | |||
@@ -40,6 +40,7 @@ | |||
40 | #define USB_VID_MSI 0x0db0 | 40 | #define USB_VID_MSI 0x0db0 |
41 | #define USB_VID_OPERA1 0x695c | 41 | #define USB_VID_OPERA1 0x695c |
42 | #define USB_VID_PINNACLE 0x2304 | 42 | #define USB_VID_PINNACLE 0x2304 |
43 | #define USB_VID_TECHNOTREND 0x0b48 | ||
43 | #define USB_VID_TERRATEC 0x0ccd | 44 | #define USB_VID_TERRATEC 0x0ccd |
44 | #define USB_VID_VISIONPLUS 0x13d3 | 45 | #define USB_VID_VISIONPLUS 0x13d3 |
45 | #define USB_VID_TWINHAN 0x1822 | 46 | #define USB_VID_TWINHAN 0x1822 |
@@ -134,6 +135,7 @@ | |||
134 | #define USB_PID_AVERMEDIA_EXPRESS 0xb568 | 135 | #define USB_PID_AVERMEDIA_EXPRESS 0xb568 |
135 | #define USB_PID_AVERMEDIA_VOLAR 0xa807 | 136 | #define USB_PID_AVERMEDIA_VOLAR 0xa807 |
136 | #define USB_PID_AVERMEDIA_VOLAR_2 0xb808 | 137 | #define USB_PID_AVERMEDIA_VOLAR_2 0xb808 |
138 | #define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006 | ||
137 | #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a | 139 | #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a |
138 | #define USB_PID_PINNACLE_PCTV2000E 0x022c | 140 | #define USB_PID_PINNACLE_PCTV2000E 0x022c |
139 | #define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 | 141 | #define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 |
diff --git a/drivers/media/dvb/dvb-usb/ttusb2.c b/drivers/media/dvb/dvb-usb/ttusb2.c index 3b9da9c25c6e..0eb33378254b 100644 --- a/drivers/media/dvb/dvb-usb/ttusb2.c +++ b/drivers/media/dvb/dvb-usb/ttusb2.c | |||
@@ -176,17 +176,23 @@ static int ttusb2_tuner_attach(struct dvb_usb_adapter *adap) | |||
176 | 176 | ||
177 | /* DVB USB Driver stuff */ | 177 | /* DVB USB Driver stuff */ |
178 | static struct dvb_usb_device_properties ttusb2_properties; | 178 | static struct dvb_usb_device_properties ttusb2_properties; |
179 | static struct dvb_usb_device_properties ttusb2_properties_s2400; | ||
179 | 180 | ||
180 | static int ttusb2_probe(struct usb_interface *intf, | 181 | static int ttusb2_probe(struct usb_interface *intf, |
181 | const struct usb_device_id *id) | 182 | const struct usb_device_id *id) |
182 | { | 183 | { |
183 | return dvb_usb_device_init(intf,&ttusb2_properties,THIS_MODULE,NULL); | 184 | if (dvb_usb_device_init(intf, &ttusb2_properties, THIS_MODULE, NULL) == 0 || |
185 | dvb_usb_device_init(intf, &ttusb2_properties_s2400, THIS_MODULE, NULL) == 0) | ||
186 | return 0; | ||
187 | return -ENODEV; | ||
184 | } | 188 | } |
185 | 189 | ||
186 | static struct usb_device_id ttusb2_table [] = { | 190 | static struct usb_device_id ttusb2_table [] = { |
187 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_400E) }, | 191 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_400E) }, |
188 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_450E) }, | 192 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_450E) }, |
189 | {} /* Terminating entry */ | 193 | { USB_DEVICE(USB_VID_TECHNOTREND, |
194 | USB_PID_TECHNOTREND_CONNECT_S2400) }, | ||
195 | {} /* Terminating entry */ | ||
190 | }; | 196 | }; |
191 | MODULE_DEVICE_TABLE (usb, ttusb2_table); | 197 | MODULE_DEVICE_TABLE (usb, ttusb2_table); |
192 | 198 | ||
@@ -242,6 +248,54 @@ static struct dvb_usb_device_properties ttusb2_properties = { | |||
242 | } | 248 | } |
243 | }; | 249 | }; |
244 | 250 | ||
251 | static struct dvb_usb_device_properties ttusb2_properties_s2400 = { | ||
252 | .caps = DVB_USB_IS_AN_I2C_ADAPTER, | ||
253 | |||
254 | .usb_ctrl = CYPRESS_FX2, | ||
255 | .firmware = "dvb-usb-tt-s2400-01.fw", | ||
256 | |||
257 | .size_of_priv = sizeof(struct ttusb2_state), | ||
258 | |||
259 | .num_adapters = 1, | ||
260 | .adapter = { | ||
261 | { | ||
262 | .streaming_ctrl = NULL, | ||
263 | |||
264 | .frontend_attach = ttusb2_frontend_attach, | ||
265 | .tuner_attach = ttusb2_tuner_attach, | ||
266 | |||
267 | /* parameter for the MPEG2-data transfer */ | ||
268 | .stream = { | ||
269 | .type = USB_ISOC, | ||
270 | .count = 5, | ||
271 | .endpoint = 0x02, | ||
272 | .u = { | ||
273 | .isoc = { | ||
274 | .framesperurb = 4, | ||
275 | .framesize = 940, | ||
276 | .interval = 1, | ||
277 | } | ||
278 | } | ||
279 | } | ||
280 | } | ||
281 | }, | ||
282 | |||
283 | .power_ctrl = ttusb2_power_ctrl, | ||
284 | .identify_state = ttusb2_identify_state, | ||
285 | |||
286 | .i2c_algo = &ttusb2_i2c_algo, | ||
287 | |||
288 | .generic_bulk_ctrl_endpoint = 0x01, | ||
289 | |||
290 | .num_device_descs = 1, | ||
291 | .devices = { | ||
292 | { "Technotrend TT-connect S-2400", | ||
293 | { &ttusb2_table[2], NULL }, | ||
294 | { NULL }, | ||
295 | }, | ||
296 | } | ||
297 | }; | ||
298 | |||
245 | static struct usb_driver ttusb2_driver = { | 299 | static struct usb_driver ttusb2_driver = { |
246 | .name = "dvb_usb_ttusb2", | 300 | .name = "dvb_usb_ttusb2", |
247 | .probe = ttusb2_probe, | 301 | .probe = ttusb2_probe, |