Re: [PATCH v3] Input: xpad - add support for Beitong KP series controllers

Pengyu Ma <[email protected]> Mon, 3 Aug 2026 15:43:56 +0800
Newsgroups org.kernel.vger.linux-input,org.kernel.vger.linux-kernel
Message-ID <CALSz7m0RLK9qMArB55TuzQhc8YZhJras9XYLTdU3+E6imCsDhg@mail.gmail.com>
Hi VegetablCat,

Thank you for covering the wider KP device family. My patches overlap
with yours but use a different request to keep the controllers in XInput
mode.

Instead of requesting the Microsoft OS Extended Compat ID directly, my
patch sends the standard USB GET_DESCRIPTOR request for the Microsoft OS
string descriptor at index 0xee during probe.

In the Microsoft OS 1.0 sequence, Windows first requests this string
descriptor, which supplies the vendor code for the subsequent Extended
Compat ID request that returns XUSB10. Your patch issues the second
request directly with bRequest set to 0xee.

In my testing on 20bc:5158 and 20bc:5159, the initial string-descriptor
request alone is sufficient to keep the controller in Xbox 360 mode; a
subsequent Extended Compat ID request is not required on these two
devices. The 5158 device additionally needs a keepalive quirk to prevent
it from resetting when its interrupt-IN endpoint is idle.

Could we use the Microsoft OS string-descriptor request as the common
mechanism while retaining your device coverage and attribution? This
follows the protocol sequence and avoids assuming a fixed vendor code.

For the separate 20dd devices, I suggest using HID_QUIRK_ALWAYS_POLL
instead of registering a HID driver from xpad. I verified this on
20dd:5159; 20dd:515c still needs testing.

Could you test the string-descriptor request on the other KP devices? If
it works, we can consolidate the overlapping submissions and preserve
your device coverage and attribution.

[1] https://lore.kernel.org/linux-input/[email protected]/
[2] https://lore.kernel.org/linux-input/[email protected]/

Thanks,
Aaron