Hi all,
thanks to Patrick Boettcher I finally managed to get both, the Pinnacle
400e and the TT connect S-2400 working on the same machine.
I attached a patch which should apply cleanly against current HG.
Please test the attached patch.
I extracted the necessary firmware file from the TT driver and put it
here: http://ilpss8.dyndns.org/dvb-usb-tt-s2400-01.fw
Any comments on the patch are welcome.
Thank you.
André
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,
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb