Skip to content

Commit

Permalink
[media] it9135: add support for IT9135 9005 devices
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Malcolm Priestley authored and Mauro Carvalho Chehab committed Dec 11, 2011
1 parent b699029 commit 5e642c0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
1 change: 1 addition & 0 deletions drivers/media/dvb/dvb-usb/dvb-usb-ids.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1
#define USB_PID_INTEL_CE9500 0x9500
#define USB_PID_ITETECH_IT9135 0x9135
#define USB_PID_ITETECH_IT9135_9005 0x9005
#define USB_PID_KWORLD_399U 0xe399
#define USB_PID_KWORLD_399U_2 0xe400
#define USB_PID_KWORLD_395U 0xe396
Expand Down
26 changes: 24 additions & 2 deletions drivers/media/dvb/dvb-usb/it913x.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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)
{
Expand All @@ -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;
Expand Down Expand Up @@ -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 */
};

Expand Down Expand Up @@ -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 },
},
}
};

Expand Down Expand Up @@ -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");

0 comments on commit 5e642c0

Please sign in to comment.