matthieu castet wrote:
Hi,
I got a LITE-ON USB2.0 DVB-T Tuner that loose it's cold state vid/pid
and got FX2 dev kit one (0x04b4, 0x8613).
This patch introduce an option similar to the DVB_USB_DIBUSB_MB_FAULTY :
it add the FX2 dev kit ids to the DIBUSB_MC driver if
DVB_USB_DIBUSB_MC_FAULTY is selected.
Signed-off-by: Matthieu CASTET <castet.matthieu@xxxxxxx>
Ping
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig
index f00a0eb..a656b9b 100644
--- a/drivers/media/dvb/dvb-usb/Kconfig
+++ b/drivers/media/dvb/dvb-usb/Kconfig
@@ -68,6 +68,12 @@ config DVB_USB_DIBUSB_MC
Say Y if you own such a device and want to use it. You should build it as
a module.
+config DVB_USB_DIBUSB_MC_FAULTY
+ bool "Support faulty USB IDs"
+ depends on DVB_USB_DIBUSB_MC
+ help
+ Support for faulty USB IDs due to an invalid EEPROM on some LITE-ON devices.
+
config DVB_USB_DIB0700
tristate "DiBcom DiB0700 USB DVB devices (see help for supported devices)"
depends on DVB_USB
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c
index 059cec9..ab5766a 100644
--- a/drivers/media/dvb/dvb-usb/dibusb-mc.c
+++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c
@@ -42,6 +42,17 @@ static struct usb_device_id dibusb_dib3000mc_table [] = {
/* 11 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_WARM) },
/* 12 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_COLD) },
/* 13 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_WARM) },
+/*
+ * XXX: Some LITE-ON devices seem to loose their id after some time. Bad EEPROM ???.
+ * We don't catch these faulty IDs (namely 'Cypress FX2 USB controller') that
+ * have been left on the device. If you don't have such a device but an LITE-ON
+ * device that's supposed to work with this driver but is not detected by it,
+ * free to enable CONFIG_DVB_USB_DIBUSB_MC_FAULTY via your kernel config.
+ */
+
+#ifdef CONFIG_DVB_USB_DIBUSB_MC_FAULTY
+/* 14 */ { USB_DEVICE(USB_VID_CYPRESS, USB_PID_ULTIMA_TVBOX_USB2_FX_COLD) },
+#endif
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table);
@@ -88,7 +99,11 @@ static struct dvb_usb_device_properties dibusb_mc_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
+#ifdef CONFIG_DVB_USB_DIBUSB_MC_FAULTY
+ .num_device_descs = 8,
+#else
.num_device_descs = 7,
+#endif
.devices = {
{ "DiBcom USB2.0 DVB-T reference design (MOD3000P)",
{ &dibusb_dib3000mc_table[0], NULL },
@@ -119,6 +134,13 @@ static struct dvb_usb_device_properties dibusb_mc_properties = {
{ &dibusb_dib3000mc_table[12], NULL },
{ &dibusb_dib3000mc_table[13], NULL },
},
+#ifdef CONFIG_DVB_USB_DIBUSB_MC_FAULTY
+ { "LITE-ON USB2.0 DVB-T Tuner (faulty USB IDs)",
+ /* Also rebranded as Intuix S800, Toshiba */
+ { &dibusb_dib3000mc_table[14], NULL },
+ { NULL },
+ },
+#endif
{ NULL },
}
};