Wrong button mappings reported by evdev with PowerA Nintendo Switch gamepad

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

 



Hello all,

This is my first time reporting a kernel issue, so please let me know if this is not the right place to report it. I am using a third party PowerA USB wired Switch controller on Void Linux. Games and applications are able to successfully detect and use the controller, however the button mapping is very wrong in every program I have tested. I tested this with evtest-qt to see what button values evdev is reporting. Since there appears to be no way to remap these from userspace, I suspect the problem lies in the kernel driver.

Pressing the two analog sticks (which should be BTN_THUMBL and BTN_THUMBR) incorrectly generate events for BTN_SELECT and BTN_START, and pressing the + and - buttons (which should be mapped to BTN_START and BTN_SELECT) instead result in BTN_TL2 and BTN_TR2 events.

The device in question (as reported by lsusb) is:
Bus 001 Device 003: ID 20d6:a711 Core (Plus) Wired Controller
and I am using kernel version 5.15.26_1 on Void Linux.

I understand that this gamepad is intended to be used with the Nintendo Switch console, so it may not be as HID compliant as, say, a Logitech. However the kernel has a standard for how these buttons are to be mapped, which the driver used for this gamepad appears to violate. https://www.kernel.org/doc/html/v4.13/input/gamepad.html
Section 4.3 states: "All new gamepads are supposed to comply with this mapping. Please report any bugs, if they don’t."

I can provide more info if needed.

Thanks,
Cameron



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux