linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Thrustmaster T.Flight 4 driver, help needed
@ 2020-05-21 15:29 John Z.
  0 siblings, 0 replies; only message in thread
From: John Z. @ 2020-05-21 15:29 UTC (permalink / raw)
  To: linux-input

Hello all,
    I've recently acquired Thrustmaster T.Flight 4 HOTAS, and few of the
    axes do not work, so I wanted to try and fix that.

    I've gotten as far as decoding the USB HID report and comparing it
    to the data packets - and realizing that HID report basically lies
    about offsets.
    The axes that do work are reported correctly, but those that are
    missing are changing byte values in Vendor Specific areas. The user
    manual also says that if the HOTAS is to be used on PC, it is very
    important to install proprietary driver, otherwise some axes won't
    work.

    I've got a tip from a friend that some hardware requires vendor
    specific GET FEATURE request to put hardware into compliant mode,
    but I have instead started hacking together a simple userspace
    program to parse bytes at correct offsets, and then asked for advice
    about how to get this done so that joydev (or evdev, I am not sure)
    properly picks this up, rather than (I'm assuming?) relying on HID
    report to get the data.
    This _might_ produce a buggy driver since joystick has a plug for
    pedals as well, which may change things if they're plugged in.

    Another person advised me that they don't believe this can be done
    in userspace, that I should write a kernel module if I feel capable,
    and that if I'm comfortable with coding and willing to merge it
    upstream - I should seek further help here.
    They further suggested that it might be possible to use a generic
    driver as a foundation and make a specialized version that only
    loads when vendor and product ID's match the hardware.

    If these suggestions are correct - I have a basic skeleton
    helloworld module building and working and my userspace prototype
    (based on Alan Ott's example). I could use some guidance, even just
    pointers to correct places in documentation would be very useful. I
    tried finding my way myself, but there's so much information I have
    no idea where to even start.

    Thanks.


-- 
John Z.
"Rip and tear until it is done."

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-05-21 15:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-21 15:29 Thrustmaster T.Flight 4 driver, help needed John Z.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).