https://bugs.winehq.org/show_bug.cgi?id=51922
--- Comment #17 from Ivo Ivanov logos128@gmail.com --- The SDL_haptic.h header specifies the ranges of those three values as 0..0xffff, so this seems correct. I tested Assetto Corsa Competizione with this patch, but it still doesn't have damping effect on stand still (in both lnxev and sdl).
So, I've captured some usb traffic from the three backends, and will analyze it later. At first glance both sdl and lnxev send two condition reports for the two axes that are required/supported by these APIs. The second one is with null values. I wonder why the Linux PID driver is not filtering the second one, though, since the device declares a single axis (X) in its descriptor. Maybe they don't analyze the reports at such level.
The hidraw backend sends a single condition report with values different than the other two backends. Will see what is different, and will let you know.