aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/usb/dvb-usb-v2/rtl28xxu.c')
-rw-r--r--drivers/media/usb/dvb-usb-v2/rtl28xxu.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index a4c302d0aa37..d98387a3c95e 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -835,6 +835,11 @@ static struct tua9001_config rtl2832u_tua9001_config = {
835 .i2c_addr = 0x60, 835 .i2c_addr = 0x60,
836}; 836};
837 837
838static const struct fc0012_config rtl2832u_fc0012_config = {
839 .i2c_address = 0x63, /* 0xc6 >> 1 */
840 .xtal_freq = FC_XTAL_28_8_MHZ,
841};
842
838static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap) 843static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
839{ 844{
840 int ret; 845 int ret;
@@ -847,7 +852,7 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
847 switch (priv->tuner) { 852 switch (priv->tuner) {
848 case TUNER_RTL2832_FC0012: 853 case TUNER_RTL2832_FC0012:
849 fe = dvb_attach(fc0012_attach, adap->fe[0], 854 fe = dvb_attach(fc0012_attach, adap->fe[0],
850 &d->i2c_adap, 0xc6>>1, 0, FC_XTAL_28_8_MHZ); 855 &d->i2c_adap, &rtl2832u_fc0012_config);
851 856
852 /* since fc0012 includs reading the signal strength delegate 857 /* since fc0012 includs reading the signal strength delegate
853 * that to the tuner driver */ 858 * that to the tuner driver */
@@ -1120,7 +1125,7 @@ err:
1120 return ret; 1125 return ret;
1121} 1126}
1122 1127
1123 1128#if IS_ENABLED(CONFIG_RC_CORE)
1124static int rtl2831u_rc_query(struct dvb_usb_device *d) 1129static int rtl2831u_rc_query(struct dvb_usb_device *d)
1125{ 1130{
1126 int ret, i; 1131 int ret, i;
@@ -1203,7 +1208,11 @@ static int rtl2831u_get_rc_config(struct dvb_usb_device *d,
1203 1208
1204 return 0; 1209 return 0;
1205} 1210}
1211#else
1212 #define rtl2831u_get_rc_config NULL
1213#endif
1206 1214
1215#if IS_ENABLED(CONFIG_RC_CORE)
1207static int rtl2832u_rc_query(struct dvb_usb_device *d) 1216static int rtl2832u_rc_query(struct dvb_usb_device *d)
1208{ 1217{
1209 int ret, i; 1218 int ret, i;
@@ -1275,6 +1284,9 @@ static int rtl2832u_get_rc_config(struct dvb_usb_device *d,
1275 1284
1276 return 0; 1285 return 0;
1277} 1286}
1287#else
1288 #define rtl2832u_get_rc_config NULL
1289#endif
1278 1290
1279static const struct dvb_usb_device_properties rtl2831u_props = { 1291static const struct dvb_usb_device_properties rtl2831u_props = {
1280 .driver_name = KBUILD_MODNAME, 1292 .driver_name = KBUILD_MODNAME,
@@ -1333,13 +1345,13 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
1333 { DVB_USB_DEVICE(USB_VID_REALTEK, 0x2838, 1345 { DVB_USB_DEVICE(USB_VID_REALTEK, 0x2838,
1334 &rtl2832u_props, "Realtek RTL2832U reference design", NULL) }, 1346 &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
1335 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_STICK_BLACK_REV1, 1347 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_STICK_BLACK_REV1,
1336 &rtl2832u_props, "Terratec Cinergy T Stick Black", NULL) }, 1348 &rtl2832u_props, "TerraTec Cinergy T Stick Black", NULL) },
1337 { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_DELOCK_USB2_DVBT, 1349 { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_DELOCK_USB2_DVBT,
1338 &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) }, 1350 &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) },
1339 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK, 1351 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK,
1340 &rtl2832u_props, "NOXON DAB/DAB+ USB dongle", NULL) }, 1352 &rtl2832u_props, "TerraTec NOXON DAB Stick", NULL) },
1341 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK_REV2, 1353 { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK_REV2,
1342 &rtl2832u_props, "NOXON DAB/DAB+ USB dongle (rev 2)", NULL) }, 1354 &rtl2832u_props, "TerraTec NOXON DAB Stick (rev 2)", NULL) },
1343 { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_TREKSTOR_TERRES_2_0, 1355 { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_TREKSTOR_TERRES_2_0,
1344 &rtl2832u_props, "Trekstor DVB-T Stick Terres 2.0", NULL) }, 1356 &rtl2832u_props, "Trekstor DVB-T Stick Terres 2.0", NULL) },
1345 { DVB_USB_DEVICE(USB_VID_DEXATEK, 0x1101, 1357 { DVB_USB_DEVICE(USB_VID_DEXATEK, 0x1101,
@@ -1352,6 +1364,14 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
1352 &rtl2832u_props, "Dexatek DK mini DVB-T Dongle", NULL) }, 1364 &rtl2832u_props, "Dexatek DK mini DVB-T Dongle", NULL) },
1353 { DVB_USB_DEVICE(USB_VID_TERRATEC, 0x00d7, 1365 { DVB_USB_DEVICE(USB_VID_TERRATEC, 0x00d7,
1354 &rtl2832u_props, "TerraTec Cinergy T Stick+", NULL) }, 1366 &rtl2832u_props, "TerraTec Cinergy T Stick+", NULL) },
1367 { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd3a8,
1368 &rtl2832u_props, "ASUS My Cinema-U3100Mini Plus V2", NULL) },
1369 { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd393,
1370 &rtl2832u_props, "GIGABYTE U7300", NULL) },
1371 { DVB_USB_DEVICE(USB_VID_DEXATEK, 0x1104,
1372 &rtl2832u_props, "Digivox Micro Hd", NULL) },
1373 { DVB_USB_DEVICE(USB_VID_COMPRO, 0x0620,
1374 &rtl2832u_props, "Compro VideoMate U620F", NULL) },
1355 { } 1375 { }
1356}; 1376};
1357MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table); 1377MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);