Package: linux-patch-debian-3.1 Version: 3.1.5-1 Severity: wishlist Tags: patch
Hello, current revision of the Cinergy S2 USB box from Terratec seems to use another USB-IDs. The manufacturer provides patches at http://linux.terratec.de/tv_en.html and it seems like the only difference is really just the new ID and a couple of init flag changes. Their patch is not exactly for the linux-3.x tree but for the current s2-liplianin drivers, OTOH they still look similar enough and porting the patch was straight-forward. I also added the patch for Terratec S7 which is not tested yet but shouldn't do any harm. See attachment. Regards, Eduard. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.1.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
From: Eduard Bloch <bl...@debian.org> Date: Thu, 22 Dec 2011 19:46:54 +0100 Subject: new device IDs used by some Terratec USB devices The changes are extracted from ID patches in tarballs at http://linux.terratec.de/tv_en.html (for S7 and Cinergy S2 USB HD), and slightly modified to match the state of s2-liplianin tree used in linux-3.x so far. --- diff -urd linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/az6027.c linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/az6027.c --- linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/az6027.c 2011-12-09 17:57:05.000000000 +0100 +++ linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/az6027.c 2011-12-22 19:42:25.655675023 +0100 @@ -1090,6 +1090,7 @@ { USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_HDCI_V1) }, { USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_HDCI_V2) }, { USB_DEVICE(USB_VID_ELGATO, USB_PID_ELGATO_EYETV_SAT) }, + { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_DVBS2CI_V3) }, { }, }; @@ -1135,7 +1136,7 @@ .i2c_algo = &az6027_i2c_algo, - .num_device_descs = 6, + .num_device_descs = 7, .devices = { { .name = "AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)", @@ -1161,6 +1162,10 @@ .name = "Elgato EyeTV Sat", .cold_ids = { &az6027_usb_table[5], NULL }, .warm_ids = { NULL }, + }, { + .name = "TERRATEC S7 Rev.3", + .cold_ids = { &az6027_usb_table[6], NULL }, + .warm_ids = { NULL }, }, { NULL }, } diff -urd linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/dvb-usb-ids.h linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/dvb-usb-ids.h --- linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2011-12-09 17:57:05.000000000 +0100 +++ linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2011-12-22 19:40:02.208934727 +0100 @@ -319,6 +319,7 @@ #define USB_PID_AZUREWAVE_AZ6027 0x3275 #define USB_PID_TERRATEC_DVBS2CI_V1 0x10a4 #define USB_PID_TERRATEC_DVBS2CI_V2 0x10ac +#define USB_PID_TERRATEC_DVBS2CI_V3 0x10b0 #define USB_PID_TECHNISAT_USB2_HDCI_V1 0x0001 #define USB_PID_TECHNISAT_USB2_HDCI_V2 0x0002 #define USB_PID_TECHNISAT_AIRSTAR_TELESTICK_2 0x0004 diff -urd linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/dw2102.c linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/dw2102.c --- linux-2.6-3.1.5.debian/drivers/media/dvb/dvb-usb/dw2102.c 2011-12-09 17:57:05.000000000 +0100 +++ linux-2.6-3.1.5/drivers/media/dvb/dvb-usb/dw2102.c 2011-12-22 19:43:16.588387654 +0100 @@ -1181,6 +1181,14 @@ { u8 obuf[3] = { 0xe, 0x80, 0 }; u8 ibuf[] = { 0 }; + + if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) + err("command 0x0e transfer failed."); + + //power on su3000 + obuf[0] = 0xe; + obuf[1] = 0x02; + obuf[2] = 1; if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) err("command 0x0e transfer failed."); @@ -1451,6 +1459,7 @@ {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)}, {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)}, {USB_DEVICE(0x1f4d, 0x3100)}, + {USB_DEVICE(USB_VID_TERRATEC, 0x00b0)}, { } }; @@ -1824,7 +1833,7 @@ } } }, - .num_device_descs = 3, + .num_device_descs = 4, .devices = { { "SU3000HD DVB-S USB2.0", { &dw2102_table[10], NULL }, @@ -1838,6 +1847,10 @@ { &dw2102_table[14], NULL }, { NULL }, }, + { "Terratec Cinergy S2 USB HD Rev.2", + { &dw2102_table[15], NULL }, + { NULL }, + }, } };