http://bugs.winehq.org/show_bug.cgi?id=20008
Summary: joystick's POV doesn't work when using evdev Product: Wine Version: 1.1.29 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: wine-bug@jednymruchempyty.com CC: wine-bug@jednymruchempyty.com
When using evdev, joystick's POV doesn't work. Tested on 1.1.29 and 1.1.28. It works fine on 1.1.27.
Traced it to a bad inst_id in dll/dinput/joystick_linuxinput.c function joy_polldev(). The line: inst_id = DIDFT_MAKEINSTANCE(axis) | (axis < 8 ? DIDFT_ABSAXIS : DIDFT_POV); should read: inst_id = axis < 8 ? DIDFT_MAKEINSTANCE(axis) | DIDFT_ABSAXIS : DIDFT_MAKEINSTANCE(axis - 8) | DIDFT_POV;
The wrong inst_id resulted in POV events not being queued via queue_event().