media: dvb-usb: add T230 to dvbsky
authorJan Pieter van Woerkom <jp@jpvw.nl>
Thu, 15 Aug 2019 16:37:33 +0000 (13:37 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 21 Aug 2019 21:39:55 +0000 (18:39 -0300)
commit 5fa88151ecdb ("[media] dvb-usb-cxusb: Geniatech T230 - resync TS
FIFO after lock") does not solve the problem for all devices. This is the
same issue reported on the T230C, which was moved to the dvbsky.c driver
to work around this issue in commit 5742240577b6 ("media: dvbsky: MyGica
T230C support").

In addition, the cxusb driver causes an oops when unplugging the device
while streaming; this problem does not happen any more.

Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
Tested-by: James Hutchinson <jahutchinson99@googlemail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/usb/dvb-usb-v2/dvbsky.c

index bbfe1cfdc0134a0af12017a731e9b9ed8108d73a..617a306f6815d1afd161ddd04e320d435c723ced 100644 (file)
@@ -552,11 +552,19 @@ static int dvbsky_mygica_t230c_attach(struct dvb_usb_adapter *adap)
 
        /* attach tuner */
        si2157_config.fe = adap->fe[0];
-       si2157_config.if_port = 0;
-
-       state->i2c_client_tuner = dvb_module_probe("si2157", "si2141",
-                                                  i2c_adapter,
-                                                  0x60, &si2157_config);
+       if (le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230) {
+               si2157_config.if_port = 1;
+               state->i2c_client_tuner = dvb_module_probe("si2157", NULL,
+                                                          i2c_adapter,
+                                                          0x60,
+                                                          &si2157_config);
+       } else {
+               si2157_config.if_port = 0;
+               state->i2c_client_tuner = dvb_module_probe("si2157", "si2141",
+                                                          i2c_adapter,
+                                                          0x60,
+                                                          &si2157_config);
+       }
        if (!state->i2c_client_tuner) {
                dvb_module_release(state->i2c_client_demod);
                return -ENODEV;
@@ -778,6 +786,9 @@ static const struct usb_device_id dvbsky_id_table[] = {
        { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_S2_R4,
                &dvbsky_s960_props, "Terratec Cinergy S2 Rev.4",
                RC_MAP_DVBSKY) },
+       { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230,
+               &mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230",
+               RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
        { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C,
                &mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C",
                RC_MAP_TOTAL_MEDIA_IN_HAND_02) },