https://bugs.winehq.org/show_bug.cgi?id=47557
--- Comment #30 from Zebediah Figura z.figura12@gmail.com --- Problem is, if it's going through hidraw and reporting different output than on Windows, there's not really anything we can reasonably do about that. Only the kernel has control over that. We do have control over how we interpret evdev or SDL, but I suspect that we're only losing information that way.
I guess our options are then either to change the kernel driver, or to introduce some device-specific hacks into winebus. Neither is particularly palatable.
In either case, though, we'll need to first figure out what to change. What I would do is go into hid.dll and hack the returned caps to be identical to those that Windows reports, and see if that fixes it, and if it does, start setting them back one at a time to what hidraw reports, until it stops working. That's not really something I can feasibly do remotely, I'm afraid, but that's probably the only next step.