[PATCH v4 0/2] usb: core: Add quirk for 255-byte initial config read

From: Nikhil Solanke

Date: Mon Jul 27 2026 - 16:00:12 EST


This series adds a quirk for USB devices that fail enumeration when
the initial GET_DESCRIPTOR(CONFIGURATION) request uses wLength=9.

Patch 1 adds USB_QUIRK_WINDOWS_CONFIG_REQ_SIZE which causes
usb_get_configuration() to use wLength=255 for the initial config
descriptor request, mirroring long-standing Windows behavior.

Patch 2 splits announce_device() to log device identity before
enumeration, improving failure diagnosis.

Nikhil Solanke (2):
usb: core: Add quirk for 255-bytes initial config read
usb: hub: Split announce_device() to log device identity before
enumeration

Changes in v4:
- Reworded comments and messages
- Moved the memcpy() block that skips the second read after USB_QUIRK_DELAY_INIT

.../admin-guide/kernel-parameters.txt | 5 +++
drivers/usb/core/config.c | 32 ++++++++++++++-----
drivers/usb/core/hub.c | 16 +++++++---
drivers/usb/core/quirks.c | 4 +++
include/linux/usb/quirks.h | 3 ++
5 files changed, 48 insertions(+), 12 deletions(-)

--
2.54.0