lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: 
 <CAGwozwFXmye4kJzjFbZzUmgmhHn0YyX2eEwidkUJBs7ZhpXhNw@mail.gmail.com>
Date: Sat, 7 Feb 2026 13:00:05 +0100
From: Antheas Kapenekakis <lkml@...heas.dev>
To: Shengyu Qu <wiagn233@...look.com>
Cc: dmitry.torokhov@...il.com, vi@...rift.com, niltonperimneto@...il.com,
	linux-input@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] input: xpad: Add support for BETOP BTP-KP50B/C
 controller's wireless mode

On Sat, 7 Feb 2026 at 05:57, Shengyu Qu <wiagn233@...look.com> wrote:
>
> Update on commit info: seems these controllers support Xbox mode when
> using wired mode, however, their firmware has some weird enumeration
> logic that won't work with current xpad driver(It would enum as xbox
> first if no driver is loaded, then disconnect and re-enum as NS
> controller, finally something else), and by default wired mode would end
> with nintendo driver.

Hi,
if I recall, this logic abuses some HID descriptor logic to cycle the
mode depending on the OS. The arch wiki has a potential fix for
certain controllers.

This makes you end up in Android mode since linux kernel. Nintendo
uses a BSD-based kernel, and the Windows NT kernel is different. So by
breaking the protocol in different ways they get it to cycle.

Antheas

> 在 2026/2/5 22:15, Shengyu Qu 写道:
> > BETOP's BTP-KP50B and BTP-KP50C controller's wireless dongles are both
> > working as standard Xbox 360 controllers. Add USB device IDs for them to
> > xpad driver.
> >
> > Both controllers can't work as Xbox controllers when using wired mode and
> > have different USB IDs.
> >
> > Signed-off-by: Shengyu Qu <wiagn233@...look.com>
> > ---
> >   drivers/input/joystick/xpad.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> > index 363d50949386..260dd41ea6e5 100644
> > --- a/drivers/input/joystick/xpad.c
> > +++ b/drivers/input/joystick/xpad.c
> > @@ -360,6 +360,8 @@ static const struct xpad_device {
> >       { 0x1bad, 0xfd00, "Razer Onza TE", 0, XTYPE_XBOX360 },
> >       { 0x1bad, 0xfd01, "Razer Onza", 0, XTYPE_XBOX360 },
> >       { 0x1ee9, 0x1590, "ZOTAC Gaming Zone", 0, XTYPE_XBOX360 },
> > +     { 0x20bc, 0x5134, "BETOP BTP-KP50B Xinput Dongle", 0, XTYPE_XBOX360 },
> > +     { 0x20bc, 0x514a, "BETOP BTP-KP50C Xinput Dongle", 0, XTYPE_XBOX360 },
> >       { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE },
> >       { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE },
> >       { 0x20d6, 0x2064, "PowerA Wired Controller for Xbox", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
> > @@ -562,6 +564,7 @@ static const struct usb_device_id xpad_table[] = {
> >       XPAD_XBOX360_VENDOR(0x1a86),            /* Nanjing Qinheng Microelectronics (WCH) */
> >       XPAD_XBOX360_VENDOR(0x1bad),            /* Harmonix Rock Band guitar and drums */
> >       XPAD_XBOX360_VENDOR(0x1ee9),            /* ZOTAC Technology Limited */
> > +     XPAD_XBOX360_VENDOR(0x20bc),            /* BETOP wireless dongles */
> >       XPAD_XBOX360_VENDOR(0x20d6),            /* PowerA controllers */
> >       XPAD_XBOXONE_VENDOR(0x20d6),            /* PowerA controllers */
> >       XPAD_XBOX360_VENDOR(0x2345),            /* Machenike Controllers */
>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ