media: dvb: add support for TerraTec TC2 Stick (193534)
authorTomasz Maciej Nowak <tmn505@gmail.com>
Sun, 29 Dec 2019 14:53:55 +0000 (15:53 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 3 Jan 2020 15:30:24 +0000 (16:30 +0100)
Seems to be a clone of Logilink VG0022A. Supports DVB-C, DVB-T and
DVB-T2. Only terrestrial reception was tested on Polish and Czech
multiplexes.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/usb/dvb-usb-v2/af9035.c
include/media/dvb-usb-ids.h

index 792667e..5799cc8 100644 (file)
@@ -1621,9 +1621,10 @@ static int it930x_tuner_attach(struct dvb_usb_adapter *adap)
        si2157_config.fe = adap->fe[0];
 
        /*
-        * HACK: The Logilink VG0022A has a bug: when the si2157
-        * firmware that came with the device is replaced by a new
-        * one, the I2C transfers to the tuner will return just 0xff.
+        * HACK: The Logilink VG0022A and TerraTec TC2 Stick have
+        * a bug: when the si2157 firmware that came with the device
+        * is replaced by a new one, the I2C transfers to the tuner
+        * will return just 0xff.
         *
         * Probably, the vendor firmware has some patch specifically
         * designed for this device. So, we can't replace by the
@@ -1633,8 +1634,10 @@ static int it930x_tuner_attach(struct dvb_usb_adapter *adap)
         * while we don't have that, the next best solution is to just
         * keep the original firmware at the device.
         */
-       if (le16_to_cpu(d->udev->descriptor.idVendor) == USB_VID_DEXATEK &&
-           le16_to_cpu(d->udev->descriptor.idProduct) == 0x0100)
+       if ((le16_to_cpu(d->udev->descriptor.idVendor) == USB_VID_DEXATEK &&
+            le16_to_cpu(d->udev->descriptor.idProduct) == 0x0100) ||
+           (le16_to_cpu(d->udev->descriptor.idVendor) == USB_VID_TERRATEC &&
+            le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_TERRATEC_CINERGY_TC2_STICK))
                si2157_config.dont_load_firmware = true;
 
        si2157_config.if_port = it930x_addresses_table[state->it930x_addresses].tuner_if_port;
@@ -2150,6 +2153,8 @@ static const struct usb_device_id af9035_id_table[] = {
                &it930x_props, "AVerMedia TD310 DVB-T2", NULL) },
        { DVB_USB_DEVICE(USB_VID_DEXATEK, 0x0100,
                &it930x_props, "Logilink VG0022A", NULL) },
+       { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_TC2_STICK,
+               &it930x_props, "TerraTec Cinergy TC2 Stick", NULL) },
        { }
 };
 MODULE_DEVICE_TABLE(usb, af9035_id_table);
index 44da5e4..800d473 100644 (file)
 #define USB_PID_TERRATEC_CINERGY_T_STICK_RC            0x0097
 #define USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC       0x0099
 #define USB_PID_TERRATEC_CINERGY_T_STICK_BLACK_REV1    0x00a9
+#define USB_PID_TERRATEC_CINERGY_TC2_STICK             0x10b2
 #define USB_PID_TWINHAN_VP7041_COLD                    0x3201
 #define USB_PID_TWINHAN_VP7041_WARM                    0x3202
 #define USB_PID_TWINHAN_VP7020_COLD                    0x3203