summaryrefslogtreecommitdiff
path: root/drivers/media/dvb/dvb-usb/it913x.c
diff options
context:
space:
mode:
authorMalcolm Priestley <tvboxspy@gmail.com>2011-11-30 17:16:09 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-12-11 08:55:29 -0200
commit5e642c06b561fd95d77d13f41adeb6e906acc31d (patch)
treec3965b653589e45d932126a1c287d2084bfab05c /drivers/media/dvb/dvb-usb/it913x.c
parentb69902914803a8bf93f39f0db642430504c800ba (diff)
[media] it9135: add support for IT9135 9005 devices
Support add for IT9135 9005 devices With this patch IT9135 devices now move to using dvb-usb-it9135-01.fw firmware IT9137 remain on previous firmware. IT9135 devices seem more stable on this firmware. If the user wishes to remain on it9137 firmware they can change back using firmware=1 module option. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/it913x.c')
-rw-r--r--drivers/media/dvb/dvb-usb/it913x.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/drivers/media/dvb/dvb-usb/it913x.c b/drivers/media/dvb/dvb-usb/it913x.c
index c7bf03c3a6de..d7c86c2b6a2d 100644
--- a/drivers/media/dvb/dvb-usb/it913x.c
+++ b/drivers/media/dvb/dvb-usb/it913x.c
@@ -52,6 +52,11 @@ static int pid_filter;
module_param_named(pid, pid_filter, int, 0644);
MODULE_PARM_DESC(pid, "set default 0=on 1=off");
+static int dvb_usb_it913x_firmware;
+module_param_named(firmware, dvb_usb_it913x_firmware, int, 0644);
+MODULE_PARM_DESC(firmware, "set firmware 0=auto 1=IT9137 2=IT9135V1");
+
+
int cmd_counter;
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
@@ -340,6 +345,10 @@ static int it913x_rc_query(struct dvb_usb_device *d)
return ret;
}
+/* Firmware sets raw */
+const char fw_it9135_v1[] = "dvb-usb-it9135-01.fw";
+const char fw_it9137[] = "dvb-usb-it9137-01.fw";
+
static int ite_firmware_select(struct usb_device *udev,
struct dvb_usb_device_properties *props)
{
@@ -348,18 +357,27 @@ static int ite_firmware_select(struct usb_device *udev,
if (le16_to_cpu(udev->descriptor.idProduct) ==
USB_PID_ITETECH_IT9135)
sw = IT9135_V1_FW;
+ else if (le16_to_cpu(udev->descriptor.idProduct) ==
+ USB_PID_ITETECH_IT9135_9005)
+ sw = IT9135_V1_FW;
else
sw = IT9137_FW;
+ /* force switch */
+ if (dvb_usb_it913x_firmware != IT9135_AUTO)
+ sw = dvb_usb_it913x_firmware;
+
switch (sw) {
case IT9135_V1_FW:
- it913x_config.firmware_ver = 0;
+ it913x_config.firmware_ver = 1;
it913x_config.adc_x2 = 1;
+ props->firmware = fw_it9135_v1;
break;
case IT9137_FW:
default:
it913x_config.firmware_ver = 0;
it913x_config.adc_x2 = 0;
+ props->firmware = fw_it9137;
}
return 0;
@@ -636,6 +654,7 @@ static struct usb_device_id it913x_table[] = {
{ USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_UB499_2T_T09) },
{ USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135) },
{ USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV22_IT9137) },
+ { USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135_9005) },
{} /* Terminating entry */
};
@@ -722,6 +741,9 @@ static struct dvb_usb_device_properties it913x_properties = {
{ "Sveon STV22 Dual DVB-T HDTV(IT9137)",
{ &it913x_table[2], NULL },
},
+ { "ITE 9135(9005) Generic",
+ { &it913x_table[3], NULL },
+ },
}
};
@@ -755,5 +777,5 @@ module_exit(it913x_module_exit);
MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>");
MODULE_DESCRIPTION("it913x USB 2 Driver");
-MODULE_VERSION("1.11");
+MODULE_VERSION("1.14");
MODULE_LICENSE("GPL");