[linux-dvb] Patch for DigitalNow TinyTwin remote.
Stuart
mailing-lists at enginuities.com
Wed Apr 1 15:43:47 CEST 2009
> But the reason I pressure you is that merge window for 2.6.30 is open
> only few days. After that we cannot put new code / functionality until
> 2.6.31 opens and it is very many months from that day.
>
> 1.) I suggest that you make very small patch adding basic support for
> TinyTwin remote (mainly add device IDs to same places as TwinHan).
There are two patches in my last email which I believe achieve this. One simply
removes the if statement so that the AzureWave IR tables are assigned for the
TinyTwin. The other adds the TinyTwin to the HID ignore list so that there are
no repeat key presses. I've included them at the end of this email as well.
> 2.) Make other patch *later* that fix repeating issue. This one can be
> added to the 2.6.30 later (there many release candidates in next
> months) as bug fix.
I've been looking through usb sniffs when plugging the TinyTwin in and can't see
much that's different. There's a slight difference in the first 4 bytes of each
packet sent for the firmware, for example the first packet for each:
Linux: 00 51 00 00
Windows: 38 51 00 c0
The IR table download is also sent slightly differently, in Linux it's:
21 .. 00 9a 56 00 00 01 00
from
struct req_t req = {WRITE_MEMORY, 0, 0, 0, 0, 1, NULL};
req.addr = 0x9a56
While Windows is:
21 .. 38 9a 56 4e 80 01 00
which would be
struct req_t req = {WRITE_MEMORY, AF9015_I2C_DEMOD, 0, 4e, 80, 1, NULL};
req.addr = 0x9a56
I'm not sure what req.mbox = 0x4e or req.addr_len = 0x80 mean.
There are also a few addresses either different or missing (0xd508, 0xd73a,
0xaeff, ...) in various . I'm not sure if any of them could have anything to do
with how the IR behaves...
I'll try and check these to see if they make any difference when I get a chance.
Regards,
Stuart
af9015-b0ba0a6dfca1_tinytwin_remote.patch:
--- orig/drivers/media/dvb/dvb-usb/af9015.c 2009-03-31 07:57:51.000000000 +1100
+++ new/drivers/media/dvb/dvb-usb/af9015.c 2009-03-31 11:44:16.000000000 +1100
@@ -785,17 +785,14 @@ static int af9015_read_config(struct usb
ARRAY_SIZE(af9015_ir_table_leadtek);
break;
case USB_VID_VISIONPLUS:
- if (udev->descriptor.idProduct ==
- cpu_to_le16(USB_PID_AZUREWAVE_AD_TU700)) {
- af9015_properties[i].rc_key_map =
- af9015_rc_keys_twinhan;
- af9015_properties[i].rc_key_map_size =
- ARRAY_SIZE(af9015_rc_keys_twinhan);
- af9015_config.ir_table =
- af9015_ir_table_twinhan;
- af9015_config.ir_table_size =
- ARRAY_SIZE(af9015_ir_table_twinhan);
- }
+ af9015_properties[i].rc_key_map =
+ af9015_rc_keys_twinhan;
+ af9015_properties[i].rc_key_map_size =
+ ARRAY_SIZE(af9015_rc_keys_twinhan);
+ af9015_config.ir_table =
+ af9015_ir_table_twinhan;
+ af9015_config.ir_table_size =
+ ARRAY_SIZE(af9015_ir_table_twinhan);
break;
case USB_VID_KWORLD_2:
/* TODO: use correct rc keys */
kernel-2.6.29_tinytwin_remote_patch.diff:
--- orig/drivers/hid/hid-core.c 2009-03-24 10:12:14.000000000 +1100
+++ new/drivers/hid/hid-core.c 2009-03-31 15:08:13.000000000 +1100
@@ -1629,6 +1629,7 @@ static const struct hid_device_id hid_ig
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20) },
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_8_8_4_IF_KIT) },
{ HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_DIGITALNOW, USB_DEVICE_ID_DIGITALNOW_TINYTWIN)
},
{ }
};
--- orig/drivers/hid/hid-ids.h 2009-03-24 10:12:14.000000000 +1100
+++ new/drivers/hid/hid-ids.h 2009-03-31 15:09:05.000000000 +1100
@@ -420,4 +420,7 @@
#define USB_VENDOR_ID_KYE 0x0458
#define USB_DEVICE_ID_KYE_GPEN_560 0x5003
+#define USB_VENDOR_ID_DIGITALNOW 0x13d3
+#define USB_DEVICE_ID_DIGITALNOW_TINYTWIN 0x3226
+
#endif
More information about the linux-dvb
mailing list