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.reguero@xxxxxxxxx> 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