Skip to contentSkip to conversation

it913x add support for IT9135 9006 devices

PATCH In review Malcolm Priestley 2 participants 7 messages Dec 12, 2011 – Dec 24, 2011 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 it913x add support for IT9135 9006 devices

Support for IT1935 9006 devices.

9006 have version 2 type chip.

9006 devices should use dvb-usb-it9135-02.fw firmware.

On the device tested the tuner id was set to 0 which meant the driver used tuner id 0x38. The device functioned normally.

---
 drivers/media/dvb/dvb-usb/dvb-usb-ids.h |    1 +
 drivers/media/dvb/dvb-usb/it913x.c      |   17 +++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)
drivers/media/dvb/dvb-usb/dvb-usb-ids.h +1 -0
index 3cce13b..d390dda 100644
@@ -132,6 +132,7 @@
 #define USB_PID_INTEL_CE9500				0x9500
 #define USB_PID_ITETECH_IT9135				0x9135
 #define USB_PID_ITETECH_IT9135_9005			0x9005
+#define USB_PID_ITETECH_IT9135_9006			0x9006
 #define USB_PID_KWORLD_399U				0xe399
 #define USB_PID_KWORLD_399U_2				0xe400
 #define USB_PID_KWORLD_395U				0xe396
drivers/media/dvb/dvb-usb/it913x.c +15 -2
index 3ddf82a..6f6072b 100644
@@ -387,6 +387,7 @@ static int it913x_rc_query(struct dvb_usb_device *d)
 
 /* Firmware sets raw */
 const char fw_it9135_v1[] = "dvb-usb-it9135-01.fw";
+const char fw_it9135_v2[] = "dvb-usb-it9135-02.fw";
 const char fw_it9137[] = "dvb-usb-it9137-01.fw";
 
 static int ite_firmware_select(struct usb_device *udev,
@@ -400,6 +401,9 @@ static int ite_firmware_select(struct usb_device *udev,
 	else if (le16_to_cpu(udev->descriptor.idProduct) ==
 			USB_PID_ITETECH_IT9135_9005)
 		sw = IT9135_V1_FW;
+	else if (le16_to_cpu(udev->descriptor.idProduct) ==
+			USB_PID_ITETECH_IT9135_9006)
+		sw = IT9135_V2_FW;
 	else
 		sw = IT9137_FW;
 
@@ -413,6 +417,11 @@ static int ite_firmware_select(struct usb_device *udev,
 		it913x_config.adc_x2 = 1;
 		props->firmware = fw_it9135_v1;
 		break;
+	case IT9135_V2_FW:
+		it913x_config.firmware_ver = 1;
+		it913x_config.adc_x2 = 1;
+		props->firmware = fw_it9135_v2;
+		break;
 	case IT9137_FW:
 	default:
 		it913x_config.firmware_ver = 0;
@@ -701,6 +710,7 @@ static struct usb_device_id it913x_table[] = {
 	{ 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) },
+	{ USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135_9006) },
 	{}		/* Terminating entry */
 };
 
@@ -776,7 +786,7 @@ static struct dvb_usb_device_properties it913x_properties = {
 		.rc_codes	= RC_MAP_MSI_DIGIVOX_III,
 	},
 	.i2c_algo         = &it913x_i2c_algo,
-	.num_device_descs = 4,
+	.num_device_descs = 5,
 	.devices = {
 		{   "Kworld UB499-2T T09(IT9137)",
 			{ &it913x_table[0], NULL },
@@ -790,6 +800,9 @@ static struct dvb_usb_device_properties it913x_properties = {
 		{   "ITE 9135(9005) Generic",
 			{ &it913x_table[3], NULL },
 			},
+		{   "ITE 9135(9006) Generic",
+			{ &it913x_table[4], NULL },
+			},
 	}
 };
 
@@ -823,5 +836,5 @@ module_exit(it913x_module_exit);
 
 MODULE_AUTHOR("Malcolm Priestley <[email protected]>");
 MODULE_DESCRIPTION("it913x USB 2 Driver");
-MODULE_VERSION("1.14");
+MODULE_VERSION("1.17");
 MODULE_LICENSE("GPL");
Signature · 1 line
1.7.7.3
#1 lore raw
Quoted 10 lines · Malcolm Priestley <tvboxspy <at> gmail.com> writes:

Support for IT1935 9006 devices.

9006 have version 2 type chip.

9006 devices should use dvb-usb-it9135-02.fw firmware.

On the device tested the tuner id was set to 0 which meant the driver used tuner id 0x38. The device functioned normally.

Hello,

my device (048d:9006) isn't fully working, here is dmesg log:

[code]

[  281.724044] usb 1-3: new high-speed USB device number 10 using ehci_hcd
[  281.860585] usb 1-3: New USB device found, idVendor=048d, idProduct=9006
[  281.860594] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  281.860601] usb 1-3: Product: DVB-T TV Stick
[  281.860607] usb 1-3: Manufacturer: ITE Technologies, Inc.
[  281.861694] it913x: Chip Version=02 Chip Type=9135
[  281.863193] it913x: Dual mode=0 Remote=1 Tuner Type=0
[  281.864444] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try
to load a firmware
[  281.870053] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[  281.870438] it913x: FRM Starting Firmware Download
[  282.388032] it913x: FRM Firmware Download Failed (ffffffff)
[  282.588116] it913x: Chip Version=79 Chip Type=4af3
[  283.224203] it913x: DEV it913x Error
[  283.227753] input: ITE Technologies, Inc. DVB-T TV Stick as
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input17
[  283.228415] generic-usb 0003:048D:9006.0007: input,hidraw0: USB HID v1.01

Keyboard [ITE Technologies, Inc. DVB-T TV Stick] on usb-0000:00:1d.7-3/input1

or

[  292.444049] usb 1-3: new high-speed USB device number 11 using ehci_hcd
[  292.580449] usb 1-3: New USB device found, idVendor=048d, idProduct=9006
[  292.580458] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  292.580465] usb 1-3: Product: DVB-T TV Stick
[  292.580471] usb 1-3: Manufacturer: ITE Technologies, Inc.
[  292.581557] it913x: Chip Version=02 Chip Type=9135
[  292.583051] it913x: Dual mode=0 Remote=1 Tuner Type=0
[  292.584284] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try
to load a firmware
[  292.589938] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[  292.590302] it913x: FRM Starting Firmware Download
[  292.908023] it913x: FRM Firmware Download Completed - Resetting Device
[  292.908534] it913x: Chip Version=02 Chip Type=9135
[  292.909032] it913x: Firmware Version 52887808
[  293.144182] it913x: DEV it913x Error
[  293.147862] input: ITE Technologies, Inc. DVB-T TV Stick as
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input18
[  293.152345] generic-usb 0003:048D:9006.0008: input,hidraw0: USB HID v1.01

Keyboard [ITE Technologies, Inc. DVB-T TV Stick] on usb-0000:00:1d.7-3/input1 [/code]

I'm using this device: http://www.runteck.com/products_view.php?Id=24&S_Id=2

#2 lore raw
Quoted 18 lines · Adeq
Quoted 10 lines · Malcolm Priestley <tvboxspy <at> gmail.com> writes:

Support for IT1935 9006 devices.

9006 have version 2 type chip.

9006 devices should use dvb-usb-it9135-02.fw firmware.

On the device tested the tuner id was set to 0 which meant the driver used tuner id 0x38. The device functioned normally.

Hello,

my device (048d:9006) isn't fully working, here is dmesg log:

[code]

Quoted 15 lines
[  281.724044] usb 1-3: new high-speed USB device number 10 using ehci_hcd
[  281.860585] usb 1-3: New USB device found, idVendor=048d, idProduct=9006
[  281.860594] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  281.860601] usb 1-3: Product: DVB-T TV Stick
[  281.860607] usb 1-3: Manufacturer: ITE Technologies, Inc.
[  281.861694] it913x: Chip Version=02 Chip Type=9135
[  281.863193] it913x: Dual mode=0 Remote=1 Tuner Type=0
[  281.864444] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try
to load a firmware
[  281.870053] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[  281.870438] it913x: FRM Starting Firmware Download
[  282.388032] it913x: FRM Firmware Download Failed (ffffffff)
[  282.588116] it913x: Chip Version=79 Chip Type=4af3
[  283.224203] it913x: DEV it913x Error
[  283.227753] input: ITE Technologies, Inc. DVB-T TV Stick as

Try using the following for firmware.

dd if=dvb-usb-it9135.fw ibs=1 skip=64 count=8128 of=dvb-usb-it9135-01.fw dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5731 of=dvb-usb-it9135-02.fw

I have got length of dvb-usb-it9135-02.fw wrong it was changed to 5731.

However, 5817 should be correct in emulation, but fails with device.

The firmware version should say it913x: Firmware Version 50594048

I will have to check the firmware loader again.

Regards

Malcolm

#3 lore raw
In reply to Adeq

W dniu 2011-12-14 07:13, Adeq pisze:

Quoted 58 lines
Quoted 9 lines · Malcolm Priestley<tvboxspy<at> gmail.com> writes:

Support for IT1935 9006 devices.

9006 have version 2 type chip.

9006 devices should use dvb-usb-it9135-02.fw firmware.

On the device tested the tuner id was set to 0 which meant the driver used tuner id 0x38. The device functioned normally.

Hello,

my device (048d:9006) isn't fully working, here is dmesg log:

[code]

[  281.724044] usb 1-3: new high-speed USB device number 10 using ehci_hcd
[  281.860585] usb 1-3: New USB device found, idVendor=048d, idProduct=9006
[  281.860594] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  281.860601] usb 1-3: Product: DVB-T TV Stick
[  281.860607] usb 1-3: Manufacturer: ITE Technologies, Inc.
[  281.861694] it913x: Chip Version=02 Chip Type=9135
[  281.863193] it913x: Dual mode=0 Remote=1 Tuner Type=0
[  281.864444] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try
to load a firmware
[  281.870053] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[  281.870438] it913x: FRM Starting Firmware Download
[  282.388032] it913x: FRM Firmware Download Failed (ffffffff)
[  282.588116] it913x: Chip Version=79 Chip Type=4af3
[  283.224203] it913x: DEV it913x Error
[  283.227753] input: ITE Technologies, Inc. DVB-T TV Stick as
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input17
[  283.228415] generic-usb 0003:048D:9006.0007: input,hidraw0: USB HID v1.01

Keyboard [ITE Technologies, Inc. DVB-T TV Stick] on usb-0000:00:1d.7-3/input1

or

[  292.444049] usb 1-3: new high-speed USB device number 11 using ehci_hcd
[  292.580449] usb 1-3: New USB device found, idVendor=048d, idProduct=9006
[  292.580458] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  292.580465] usb 1-3: Product: DVB-T TV Stick
[  292.580471] usb 1-3: Manufacturer: ITE Technologies, Inc.
[  292.581557] it913x: Chip Version=02 Chip Type=9135
[  292.583051] it913x: Dual mode=0 Remote=1 Tuner Type=0
[  292.584284] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try
to load a firmware
[  292.589938] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[  292.590302] it913x: FRM Starting Firmware Download
[  292.908023] it913x: FRM Firmware Download Completed - Resetting Device
[  292.908534] it913x: Chip Version=02 Chip Type=9135
[  292.909032] it913x: Firmware Version 52887808
[  293.144182] it913x: DEV it913x Error
[  293.147862] input: ITE Technologies, Inc. DVB-T TV Stick as
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input18
[  293.152345] generic-usb 0003:048D:9006.0008: input,hidraw0: USB HID v1.01

Keyboard [ITE Technologies, Inc. DVB-T TV Stick] on usb-0000:00:1d.7-3/input1 [/code]

Quoted 9 lines

I'm using this device: http://www.runteck.com/products_view.php?Id=24&S_Id=2

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

After updating firmware.

warmboot:

[  984.370447] dvb-usb: ITE 9135(9006) Generic successfully deinitialized and disconnected.
[ 1000.884812] it913x: Chip Version=02 Chip Type=9135
[ 1000.885309] it913x: Firmware Version 52887808
[ 1000.886808] it913x: Dual mode=0 Remote=1 Tuner Type=0
[ 1000.886814] dvb-usb: found a 'ITE 9135(9006) Generic' in warm state.
[ 1000.887540] dvb-usb: will use the device's hardware PID filter (table count: 31).
[ 1000.887857] DVB: registering new adapter (ITE 9135(9006) Generic)
[ 1000.891586] it913x-fe: ADF table value       :00
[ 1000.891596] it913x: Message out (0000d8b401313938)
[ 1000.892197] it913x: Message out (0000d8b50100d8b4)
[ 1000.892685] it913x: Message out (0000d8b30100d8b5)
[ 1000.893185] it913x: Message out (0000f6413800d8b3)
[ 1000.893560] it913x: Message out (0000f5ca0100f641)
[ 1001.092205] it913x: Message out (0000f7150100f5ca)
[ 1001.292097] it913x: Message out (0000002500006000)
[ 1001.492099] it913x: Message out (0000f1cd0000a200)
[ 1001.692107] it913x: Message out (0000004501dc4cf5)
[ 1001.892111] it913x: Message out (0000002900000000)
[ 1002.092113] it913x-fe: Crystal Frequency :12000000 Adc Frequency :20250000 ADC X2: 01
[ 1002.092141] dvb-usb: no frontend was attached by 'ITE 9135(9006) Generic'
[ 1002.092159] Registered IR keymap rc-msi-digivox-iii
[ 1002.092392] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/rc/rc1/input15
[ 1002.095747] rc1: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/rc/rc1
[ 1002.095757] dvb-usb: schedule remote query interval to 250 msecs.
[ 1002.095765] dvb-usb: ITE 9135(9006) Generic successfully initialized and connected.
[ 1002.095770] it913x: DEV registering device driver
[ 1002.095826] usbcore: registered new interface driver it913x

coldboot:

[ 1103.536156] it913x: Chip Version=ec Chip Type=5830
[ 1104.336178] it913x: Dual mode=92 Remote=92 Tuner Type=92
[ 1106.248116] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, will try to load a firmware
[ 1106.253773] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[ 1106.452123] it913x: FRM Starting Firmware Download
[ 1130.756039] it913x: FRM Firmware Download Failed (ffffff92)
[ 1130.956168] it913x: Chip Version=79 Chip Type=5823
[ 1131.592192] it913x: DEV it913x Error
[ 1131.592271] usbcore: registered new interface driver it913x

No frontend is generated anyway.

#4 lore raw
Quoted 13 lines
[ 1103.536156] it913x: Chip Version=ec Chip Type=5830
[ 1104.336178] it913x: Dual mode=92 Remote=92 Tuner Type=92
[ 1106.248116] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, 
will try to load a firmware
[ 1106.253773] dvb-usb: downloading firmware from file 
'dvb-usb-it9135-02.fw'
[ 1106.452123] it913x: FRM Starting Firmware Download
[ 1130.756039] it913x: FRM Firmware Download Failed (ffffff92)
[ 1130.956168] it913x: Chip Version=79 Chip Type=5823
[ 1131.592192] it913x: DEV it913x Error
[ 1131.592271] usbcore: registered new interface driver it913x
Quoted 1 line

No frontend is generated anyway.

Looks like the the firmware is not at all compatible with your device.

Have you applied the patch cleanly to the latest media_build?

These appear to be new version of the 9006. A supplier is sending me one of these devices.

As a last resort see if the device works with dvb-usb-it9137-01.fw

You will have force to use this firmware
dvb-usb-it913x firmware=1

For the moment this patch cannot proceed until the firmware has been checked.

Regards

Malcolm

#5 lore raw

PATCH 1/1 it913x changed firmware loader for chip version 2 types

Quoted 18 lines · Malcolm Priestley
Quoted 12 lines
[ 1103.536156] it913x: Chip Version=ec Chip Type=5830
[ 1104.336178] it913x: Dual mode=92 Remote=92 Tuner Type=92
[ 1106.248116] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, 
will try to load a firmware
[ 1106.253773] dvb-usb: downloading firmware from file 
'dvb-usb-it9135-02.fw'
[ 1106.452123] it913x: FRM Starting Firmware Download
[ 1130.756039] it913x: FRM Firmware Download Failed (ffffff92)
[ 1130.956168] it913x: Chip Version=79 Chip Type=5823
[ 1131.592192] it913x: DEV it913x Error
[ 1131.592271] usbcore: registered new interface driver it913x
Quoted 1 line

No frontend is generated anyway.

Looks like the the firmware is not at all compatible with your device.

Have you applied the patch cleanly to the latest media_build?

Quoted 7 lines

These appear to be new version of the 9006. A supplier is sending me one of these devices.

As a last resort see if the device works with dvb-usb-it9137-01.fw

You will have force to use this firmware
dvb-usb-it913x firmware=1

Here is a modified firmware loader for version 2 types.

The firmware must be as in original
./dvb_get_firmware it9135

dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw

---
 drivers/media/dvb/dvb-usb/it913x.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
drivers/media/dvb/dvb-usb/it913x.c +7 -2
index 6f6072b..9290bd8 100644
@@ -557,7 +557,7 @@ static int it913x_download_firmware(struct usb_device *udev,
 					const struct firmware *fw)
 {
 	int ret = 0, i = 0, pos = 0;
-	u8 packet_size;
+	u8 packet_size, min_pkt;
 	u8 *fw_data;
 
 	ret = it913x_wr_reg(udev, DEV_0,  I2C_CLK, I2C_CLK_100);
@@ -569,11 +569,16 @@ static int it913x_download_firmware(struct usb_device *udev,
 	/* The firmware must start with 03 XX 00 */
 	/* and be the extact firmware length */
 
+	if (it913x_config.chip_ver == 2)
+		min_pkt = 0x11;
+	else
+		min_pkt = 0x19;
+
 	while (i <= fw->size) {
 		if (((fw->data[i] == 0x3) && (fw->data[i + 2] == 0x0))
 			|| (i == fw->size)) {
 			packet_size = i - pos;
-			if ((packet_size > 0x19) || (i == fw->size)) {
+			if ((packet_size > min_pkt) || (i == fw->size)) {
 				fw_data = (u8 *)(fw->data + pos);
 				pos += packet_size;
 				if (packet_size > 0)
Signature · 1 line
1.7.7.3
#6 lore raw

Re: [PATCH] it913x changed firmware loader for chip version 2 types

Quoted 27 lines · Malcolm Priestley
Quoted 18 lines · Malcolm Priestley
Quoted 12 lines
[ 1103.536156] it913x: Chip Version=ec Chip Type=5830
[ 1104.336178] it913x: Dual mode=92 Remote=92 Tuner Type=92
[ 1106.248116] dvb-usb: found a 'ITE 9135(9006) Generic' in cold state, 
will try to load a firmware
[ 1106.253773] dvb-usb: downloading firmware from file 
'dvb-usb-it9135-02.fw'
[ 1106.452123] it913x: FRM Starting Firmware Download
[ 1130.756039] it913x: FRM Firmware Download Failed (ffffff92)
[ 1130.956168] it913x: Chip Version=79 Chip Type=5823
[ 1131.592192] it913x: DEV it913x Error
[ 1131.592271] usbcore: registered new interface driver it913x
Quoted 1 line

No frontend is generated anyway.

Looks like the the firmware is not at all compatible with your device.

Have you applied the patch cleanly to the latest media_build?

Quoted 7 lines

These appear to be new version of the 9006. A supplier is sending me one of these devices.

As a last resort see if the device works with dvb-usb-it9137-01.fw

You will have force to use this firmware
dvb-usb-it913x firmware=1

Quoted 9 lines

Here is a modified firmware loader for version 2 types.

The firmware must be as in original
./dvb_get_firmware it9135

dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw

I have a 9006 version device.

Just to confirm that this patch and patch 8794 get this device working, along with dvb-usb-it9135-02.fw as described previously.

Firmware version should be: 52887808

Both can now be submitted to kernel.

Regards

Malcolm