Thread (14 messages) 14 messages, 3 authors, 2011-06-07

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help