[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986561: linux: Regression in drivers/hid/hid-dr.c causing horizontal D-pad to malfunction on SNES joystick



Source: linux
Severity: normal
Tags: upstream
X-Debbugs-Cc: alessandro@aggro.it

Greetings,

I am encountering the issue described in this thread[1], using a gamepad identified as "DragonRise" with USB ID 0079:0011.

The joypad works as intended except for the D-pad: up and down are detected in jstest (though misinterpreted: the input graph shows the points in the left up/down corners instead of the center), the left and right buttons are completely ignored.

Running 'input-events' shows events 0/127 and 255/127 on up and down respectively, nothing at all on left and right.

I was able to identify that the misbehaviour was caused by this commit[2] on the kernel source tree. To determine this I have rebuilt the Debian kernel using hid-dr.c from the previous commit[3] and loaded hid-dr.ko manually, with which the gamepad worked as intended. I have replaced the file again with the one from the breaking commit iself ([2]) and the behaviour was again broken.

Furthermore, to confirm that that was the breaking commit, I have commented line 315 (the input mapping one in the struct) from the current Debian source tree and rebuilt it, the joypad works as it should.

Regards,
Alessandro

[1]: https://retropie.org.uk/forum/topic/25657/controler-issue-no-left-and-right-not-working-at-all
[2]: https://github.com/torvalds/linux/commit/e15944099870f374ca7efc62f98cf23ba272ef43
[3]: https://github.com/torvalds/linux/commit/313726cad3b68039c8e4dcad5a2840a0d375678c



-- System Information:
Debian Release: bullseye/sid
  APT prefers testing-security
  APT policy: (500, 'testing-security'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-5-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


Reply to: