diff options
Diffstat (limited to 'drivers/media/usb/dvb-usb-v2/rtl28xxu.c')
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 30 |
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 | ||
838 | static const struct fc0012_config rtl2832u_fc0012_config = { | ||
839 | .i2c_address = 0x63, /* 0xc6 >> 1 */ | ||
840 | .xtal_freq = FC_XTAL_28_8_MHZ, | ||
841 | }; | ||
842 | |||
838 | static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap) | 843 | static 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) | |
1124 | static int rtl2831u_rc_query(struct dvb_usb_device *d) | 1129 | static 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) | ||
1207 | static int rtl2832u_rc_query(struct dvb_usb_device *d) | 1216 | static 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 | ||
1279 | static const struct dvb_usb_device_properties rtl2831u_props = { | 1291 | static 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 | }; |
1357 | MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table); | 1377 | MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table); |