Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #70057 > unrolled thread

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

Started byAlessandro Grassi <alessandro@aggro.it>
First post2021-04-07 15:00 +0200
Last post2021-04-14 19:30 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.debian.kernel


Contents

  Bug#986561: linux: Regression in drivers/hid/hid-dr.c causing horizontal D-pad to malfunction on SNES joystick Alessandro Grassi <alessandro@aggro.it> - 2021-04-07 15:00 +0200
    Bug#986561: linux: Regression in drivers/hid/hid-dr.c causing horizontal D-pad to malfunction on SNES joystick Salvatore Bonaccorso <carnil@debian.org> - 2021-04-14 16:10 +0200
      Bug#986561: linux: Regression in drivers/hid/hid-dr.c causing horizontal D-pad to malfunction on SNES joystick Ioan-Adrian Ratiu <adi@adirat.com> - 2021-04-14 19:30 +0200

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

FromAlessandro Grassi <alessandro@aggro.it>
Date2021-04-07 15:00 +0200
SubjectBug#986561: linux: Regression in drivers/hid/hid-dr.c causing horizontal D-pad to malfunction on SNES joystick
Message-ID<C1fWO-4w1-5@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#70138

FromSalvatore Bonaccorso <carnil@debian.org>
Date2021-04-14 16:10 +0200
Message-ID<C3Onp-4IZ-17@gated-at.bofh.it>
In reply to#70057
Hi Ioan-Adrian,

On Wed, Apr 07, 2021 at 02:47:24PM +0200, Alessandro Grassi wrote:
> 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

A user in Debian reported that e15944099870 ("HID: hid-dr: add input
mapping for axis selection") introduced a regression, described above.

Does this ring some bell to you?

Regards,
Salvatore

[toc] | [prev] | [next] | [standalone]


#70144

FromIoan-Adrian Ratiu <adi@adirat.com>
Date2021-04-14 19:30 +0200
Message-ID<C3RuV-6yH-5@gated-at.bofh.it>
In reply to#70138
Hi,

On Wed, 14 Apr 2021, Salvatore Bonaccorso <carnil@debian.org> 
wrote:
> Hi Ioan-Adrian, 
> 
> On Wed, Apr 07, 2021 at 02:47:24PM +0200, Alessandro Grassi 
> wrote: 
>> 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 
> 
> A user in Debian reported that e15944099870 ("HID: hid-dr: add 
> input mapping for axis selection") introduced a regression, 
> described above. 
> 
> Does this ring some bell to you? 

Unfortunately no and I do not have the HW to test anymore.

It is possible that change introduced a regression on newer 
"DragonRise" gamepads and maybe that mapping logic needs to be a 
bit more complex, depending on the HW differences.

Sorry I can't be more helpful,
Adrian

>
> Regards,
> Salvatore

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.kernel


csiph-web