Linux Input/HID development
 help / color / mirror / Atom feed
From: Ishaan Dandekar <ishaan.dandekar@gmail.com>
To: linux-input@vger.kernel.org, linux-usb@vger.kernel.org
Cc: gregkh@linuxfoundation.org, nikhilsolanke5@gmail.com,
	Ishaan Dandekar <ishaan.dandekar@gmail.com>
Subject: [PATCH 0/3] Fix initialization and routing for Generic Clone X-Input Gamepads
Date: Sun, 26 Jul 2026 18:50:37 +0530	[thread overview]
Message-ID: <20260726132039.28330-1-ishaan.dandekar@gmail.com> (raw)

This patch series fixes a two-stage failure preventing certain generic X-Input clone controllers (specifically 0283:0001) from functioning  correctly in Linux. The primary motivation for this series is to restore full device functionality, specifically haptic feedback (rumble), which is entirely lost when the device falls back to its limited Android mode.

Phase 1: The Hardware Panic (USB Core layer)
When the controller is plugged in, the USB core requests its configuration using a 9-byte request. The controller's firmware fails, disconnects, and shape-shifts into a fallback Android mode, completely losing its X-Input capabilities.
Patch 1 (by Nikhil Solanke) builds the underlying core logic to allow a 255-byte config request (mimicking Windows behavior).
Patch 2 (my contribution) adds this specific controller's hardware ID to Nikhil's new quirk list, preventing the crash and locking it in X-Input mode.

Phase 2: The Software Blind Spot (Input/xpad layer)
Because Phase 1 succeeds, the controller stays in X-Input mode and presents the hardware ID 0283:0001. However, the xpad driver lacked this ID in its internal device tables. Because it wasn't recognized as an official Xbox controller, the kernel handed it to hid-generic, which only initialized the keyboard interface, resulting in ignored gamepad inputs and total loss of rumble.
Patch 3 explicitly adds 0283:0001 to the xpad routing filters so it initializes as a proper gamepad with full haptic support.

I initially attempted to send just the quirk patch, but realized the device remained non-functional as a gamepad without the xpad routing fix. This series unites both fixes to ensure the hardware is actually usable out of the box.

(Note: My previous single-patch submission was corrupted by my email client's formatting; this series replaces it and is being submitted via git send-email).

Ishaan Dandekar (2):
  usb: quirks: Add ShanWan gamepad to quirk list
  Input: xpad - add support for generic clone X-Input gamepads

Nikhil Solanke (1):
  usbcore: Add quirk for 255-bytes initial config read

 .../admin-guide/kernel-parameters.txt         | 10 +++++
 drivers/input/joystick/xpad.c                 |  2 +
 drivers/usb/core/config.c                     | 39 +++++++++++++++----
 drivers/usb/core/quirks.c                     |  7 ++++
 include/linux/usb/quirks.h                    |  3 ++
 5 files changed, 54 insertions(+), 7 deletions(-)

-- 
2.34.1


             reply	other threads:[~2026-07-26 13:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-26 13:20 Ishaan Dandekar [this message]
2026-07-26 13:20 ` [PATCH 1/3] usbcore: Add quirk for 255-bytes initial config read Ishaan Dandekar
2026-07-26 13:28   ` Greg KH
2026-07-26 13:20 ` [PATCH 2/3] usb: quirks: Add ShanWan gamepad to quirk list Ishaan Dandekar
2026-07-26 13:29   ` Greg KH
2026-07-26 13:20 ` [PATCH 3/3] Input: xpad - add support for generic clone X-Input gamepads Ishaan Dandekar
2026-07-26 13:29   ` Greg KH
2026-07-26 13:33   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260726132039.28330-1-ishaan.dandekar@gmail.com \
    --to=ishaan.dandekar@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nikhilsolanke5@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox