This patch add support for Avermedia TD310 usb stik.
This patch must be aplied after this one:
https://patchwork.linuxtv.org/patch/40087/

Signed-off-by: Jose Alberto Reguero <jose.alberto.regu...@gmail.com>

diff -upr linux/drivers/media/usb/dvb-usb-v2/af9035.c 
linux.new/drivers/media/usb/dvb-usb-v2/af9035.c
--- linux/drivers/media/usb/dvb-usb-v2/af9035.c 2019-02-11 14:48:58.133751038 
+0100
+++ linux.new/drivers/media/usb/dvb-usb-v2/af9035.c     2019-02-11 
15:02:10.646718610 +0100
@@ -1215,6 +1215,7 @@ static int it930x_frontend_attach(struct
        int ret;
        struct si2168_config si2168_config;
        struct i2c_adapter *adapter;
+       u8 i2c_addr;
 
        dev_dbg(&intf->dev, "%s  adap->id=%d\n", __func__, adap->id);
 
@@ -1266,7 +1267,11 @@ static int it930x_frontend_attach(struct
 
        state->af9033_config[adap->id].fe = &adap->fe[0];
        state->af9033_config[adap->id].ops = &state->ops;
-       ret = af9035_add_i2c_dev(d, "si2168", 0x67, &si2168_config,
+       i2c_addr = 0x67;
+       if ((le16_to_cpu(d->udev->descriptor.idVendor) == USB_VID_AVERMEDIA) &&
+                       (le16_to_cpu(d->udev->descriptor.idProduct) == 
USB_PID_AVERMEDIA_TD310))
+               i2c_addr = 0x64;
+       ret = af9035_add_i2c_dev(d, "si2168", i2c_addr, &si2168_config,
                                &d->i2c_adap);
        if (ret)
                goto err;
@@ -1613,6 +1618,7 @@ static int it930x_tuner_attach(struct dv
        struct usb_interface *intf = d->intf;
        int ret;
        struct si2157_config si2157_config;
+       u8 i2c_addr;
 
        dev_dbg(&intf->dev, "adap->id=%d\n", adap->id);
 
@@ -1661,7 +1667,13 @@ static int it930x_tuner_attach(struct dv
        memset(&si2157_config, 0, sizeof(si2157_config));
        si2157_config.fe = adap->fe[0];
        si2157_config.if_port = 1;
-       ret = af9035_add_i2c_dev(d, "si2157", 0x63,
+       i2c_addr = 0x63;
+       if ((le16_to_cpu(d->udev->descriptor.idVendor) == USB_VID_AVERMEDIA) &&
+                       (le16_to_cpu(d->udev->descriptor.idProduct) == 
USB_PID_AVERMEDIA_TD310)) {
+               i2c_addr = 0x60;
+               si2157_config.if_port = 0;
+       }
+       ret = af9035_add_i2c_dev(d, "si2157", i2c_addr,
                        &si2157_config, state->i2c_adapter_demod);
 
        if (ret)
@@ -2169,6 +2181,8 @@ static const struct usb_device_id af9035
        /* IT930x devices */
        { DVB_USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9303,
                &it930x_props, "ITE 9303 Generic", NULL) },
+       { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_TD310,
+               &it930x_props, "AVerMedia TD310 DVB-T2", NULL) },
        { }
 };
 MODULE_DEVICE_TABLE(usb, af9035_id_table);
diff -upr linux/include/media/dvb-usb-ids.h 
linux.new/include/media/dvb-usb-ids.h
--- linux/include/media/dvb-usb-ids.h   2018-05-05 07:40:18.000000000 +0200
+++ linux.new/include/media/dvb-usb-ids.h       2019-02-08 22:00:24.765541474 
+0100
@@ -258,6 +258,7 @@
 #define USB_PID_AVERMEDIA_A867                         0xa867
 #define USB_PID_AVERMEDIA_H335                         0x0335
 #define USB_PID_AVERMEDIA_TD110                                0xa110
+#define USB_PID_AVERMEDIA_TD310                                0x1871
 #define USB_PID_AVERMEDIA_TWINSTAR                     0x0825
 #define USB_PID_TECHNOTREND_CONNECT_S2400               0x3006
 #define USB_PID_TECHNOTREND_CONNECT_S2400_8KEEPROM     0x3009



Sent from MailDroid

Reply via email to