[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#653026: Add support for new Terratec DVB USB IDs



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 <blade@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 },
+		},
 	}
 };
 

Reply to: