diff -Nru v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h v4l-dvb-patched-for-TT-connect-S2400/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h --- v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2008-02-11 20:30:06.370186430 +0100 +++ v4l-dvb-patched-for-TT-connect-S2400/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2008-02-11 20:30:57.605106142 +0100 @@ -40,6 +40,7 @@ #define USB_VID_MSI 0x0db0 #define USB_VID_OPERA1 0x695c #define USB_VID_PINNACLE 0x2304 +#define USB_VID_TECHNOTREND 0x0b48 #define USB_VID_TERRATEC 0x0ccd #define USB_VID_VISIONPLUS 0x13d3 #define USB_VID_TWINHAN 0x1822 @@ -134,6 +135,7 @@ #define USB_PID_AVERMEDIA_EXPRESS 0xb568 #define USB_PID_AVERMEDIA_VOLAR 0xa807 #define USB_PID_AVERMEDIA_VOLAR_2 0xb808 +#define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006 #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a #define USB_PID_PINNACLE_PCTV2000E 0x022c #define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 diff -Nru v4l-dvb/linux/drivers/media/dvb/dvb-usb/ttusb2.c v4l-dvb-patched-for-TT-connect-S2400/linux/drivers/media/dvb/dvb-usb/ttusb2.c --- v4l-dvb/linux/drivers/media/dvb/dvb-usb/ttusb2.c 2008-02-11 20:30:06.382187114 +0100 +++ v4l-dvb-patched-for-TT-connect-S2400/linux/drivers/media/dvb/dvb-usb/ttusb2.c 2008-02-11 20:30:57.609106370 +0100 @@ -182,16 +182,26 @@ /* DVB USB Driver stuff */ static struct dvb_usb_device_properties ttusb2_properties; +static struct dvb_usb_device_properties ttusb2_properties_s2400; static int ttusb2_probe(struct usb_interface *intf, const struct usb_device_id *id) { - return dvb_usb_device_init(intf,&ttusb2_properties,THIS_MODULE,NULL); + int ret=-ENOMEM; + if ((ret = dvb_usb_device_init(intf,&ttusb2_properties,THIS_MODULE,NULL)) == 0) { + return ret; + } + if ((ret = dvb_usb_device_init(intf,&ttusb2_properties_s2400,THIS_MODULE,NULL)) == 0) { + return ret; + } + return ret; + } static struct usb_device_id ttusb2_table [] = { { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_400E) }, { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PCTV_450E) }, + { USB_DEVICE(USB_VID_TECHNOTREND, USB_PID_TECHNOTREND_CONNECT_S2400) }, {} /* Terminating entry */ }; MODULE_DEVICE_TABLE (usb, ttusb2_table); @@ -248,6 +258,54 @@ } }; +static struct dvb_usb_device_properties ttusb2_properties_s2400 = { + .caps = DVB_USB_IS_AN_I2C_ADAPTER, + + .usb_ctrl = CYPRESS_FX2, + .firmware = "dvb-usb-tt-s2400-01.fw", + + .size_of_priv = sizeof(struct ttusb2_state), + + .num_adapters = 1, + .adapter = { + { + .streaming_ctrl = NULL, // ttusb2_streaming_ctrl, + + .frontend_attach = ttusb2_frontend_attach, + .tuner_attach = ttusb2_tuner_attach, + + /* parameter for the MPEG2-data transfer */ + .stream = { + .type = USB_ISOC, + .count = 5, + .endpoint = 0x02, + .u = { + .isoc = { + .framesperurb = 4, + .framesize = 940, + .interval = 1, + } + } + } + } + }, + + .power_ctrl = ttusb2_power_ctrl, + .identify_state = ttusb2_identify_state, + + .i2c_algo = &ttusb2_i2c_algo, + + .generic_bulk_ctrl_endpoint = 0x01, + + .num_device_descs = 1, + .devices = { + { "Technotrend TT-connect S-2400", + { &ttusb2_table[2], NULL }, + { NULL }, + }, + } +}; + static struct usb_driver ttusb2_driver = { .name = "dvb_usb_ttusb2", .probe = ttusb2_probe,