Re: Proper support for Saitek X36F joystick

From: Jiri Kosina
Date: Tue Oct 27 2020 - 15:11:18 EST


On Tue, 27 Oct 2020, Pavel Machek wrote:

> Hi!
>
> This is from 4.19, but I doubt this changed recently.
>
> Saitek X36F+X35T combination is detected like this... in short one
> hat, no switches, and lot of buttons.
>
> In reality, combination has 4 four-way switches (hats?), 2 slider
> switches (three positions) and lot less buttons. Sliders and 3 of 4
> hats are detected as groups of buttons. Last hat is strange, I can't
> see anything that corresponds to it on evtest, and as long as it is
> pushed in any direction, all the other events stop. (It is also one
> I'd like to use).
>
> What needs to be done to get more useful mapping for userspace?

It wouldn't be the first device produced by Saitek that has completely
bogus report descriptor.

The most straightforward way would be to let hid-saitek module claim the
device, and fix the report descriptor (saitek_report_fixup()) before it's
passed to hid parser so that it actually describes the events produced.

You can either patch individual bytes (that's what saitek_report_fixup()
is currently doing for another device), or replace the whole descriptor
completely (see e.g. hid-kye for inspiration how this is done).

--
Jiri Kosina
SUSE Labs