Re: Byte swapping u16 data in HID report
flat view
From: <hidden>
Date: 2011-06-01 15:02:47
Marcin Tolysz (added to CC), worked on the sixaxis descriptor before, see http://permalink.gmane.org/gmane.linux.bluez.kernel/5184
Looks like this is over a year old, so I presume that it got dropped.
For reference I use a small(er) shim to the existing descriptor
--
static const u8 sixaxis_rdesc_fixup[] = {
0x95, 0x13, 0x09, 0x01, 0x81, 0x02, 0x95, 0x0C,
0x81, 0x01, 0x75, 0x10, 0x95, 0x04, 0x26, 0xFF,
0x03, 0x46, 0xFF, 0x03, 0x09, 0x01, 0x81, 0x02
};
--
if ((sc->quirks & SIXAXIS_CONTROLLER_USB) &&
*rsize == 148 && rdesc[83] == 0x75) {
hid_info(hdev, "Fixing up Sony Sixaxis report descriptor\n");
memcpy((void *)&rdesc[83], (void *) &sixaxis_rdesc_fixup,
sizeof(sixaxis_rdesc_fixup));
--
I'll look at the byte swap stuff from Marcin's patch and submit a patch
here it appears to work.
BTW. There are a great set of tools for encoding/decoding the HID
descriptors here:
http://digimend.sourceforge.net/
Cheers,
Simon