Re: [PATCH] hid: Fix Logitech Driving Force Pro wheel

From: simon
Date: Sat May 28 2011 - 17:32:24 EST


Hi Michael and all,

> As there are significant differences in the descriptor (original
> descriptor
> "hides" the separate axes in a 24 bit FF00 usagepage, new descripter
> replaces
> that with two individual 8 bit desktop.y and desktop.rz usages) I provided
> a
> complete replacement descriptor instead trying to patch the original one.
> Patching the descriptor seems not feasible as the new one is much larger.

I think there a couple problems with your replacement descriptor, although
I don't have a wheel to test with).

1). There is no 'NULL state' on the hatswitch
2). The original does Y then 3 others, the replacement does Y + RZ then 1
other.

When I was looking at doing a similar thing for another wheel I recall
that there was a way of doing a 1 byte NOP, but can't remember how at the
moment.

So you might want to try just patching the original as follows.

> + * 0x95, 0x01, // Report Count (1),
> + * 0x75, 0x08, // Report Size (8),
> + * 0x26, 0xFF, 0x00, // Logical Maximum (255),
> + * 0x46, 0xFF, 0x00, // Physical Maximum (255),
> + * 0x09, 0x31, // Usage (Y),
> + * 0x81, 0x02, // Input (Variable),
> + * 0x06, 0x00, 0xFF, // Usage Page (FF00h), -> NOP +
ReportCount(3)
> + * 0x09, 0x00, // Usage (00h), -> usage(Z)
> + * 0x95, 0x03, // Report Count (3), -> usage(Rx)
> + * 0x75, 0x08, // Report Size (8), -> usage(Ry)
> + * 0x81, 0x02, // Input (Variable),
> + * 0xC0, // End Collection,

Most settings roll over between sections, so don't need to be redefined. I
don't think the exact 'usage()' is important as Linux will just see them
as axis.

Cheers,
Simon

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/