linux/drivers/usb
Michal Vrastil ca82b37c47 Revert "usb: gadget: composite: fix OS descriptors w_value logic"
commit 51cdd69d6a upstream.

This reverts commit ec6ce7075e.

Fix installation of WinUSB driver using OS descriptors. Without the
fix the drivers are not installed correctly and the property
'DeviceInterfaceGUID' is missing on host side.

The original change was based on the assumption that the interface
number is in the high byte of wValue but it is in the low byte,
instead. Unfortunately, the fix is based on MS documentation which is
also wrong.

The actual USB request for OS descriptors (using USB analyzer) looks
like:

Offset  0   1   2   3   4   5   6   7
0x000   C1  A1  02  00  05  00  0A  00

C1: bmRequestType (device to host, vendor, interface)
A1: nas magic number
0002: wValue (2: nas interface)
0005: wIndex (5: get extended property i.e. nas interface GUID)
008E: wLength (142)

The fix was tested on Windows 10 and Windows 11.

Cc: stable@vger.kernel.org
Fixes: ec6ce7075e ("usb: gadget: composite: fix OS descriptors w_value logic")
Signed-off-by: Michal Vrastil <michal.vrastil@hidglobal.com>
Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
Acked-by: Peter korsgaard <peter@korsgaard.com>
Link: https://lore.kernel.org/r/20241113235433.20244-1-quic_eserrao@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-12-05 14:02:50 +01:00
..
atm move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
c67x00 USB: c67x00: Remove unused declaration c67x00_hcd_msg_received() 2023-10-02 16:42:33 +02:00
cdns3 sub: cdns3: Use predefined PCI vendor ID constant 2024-09-13 15:39:06 +02:00
chipidea usb: chipidea: npcm: Fix coding style with clarification of data type 2024-09-11 15:34:49 +02:00
class move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
common usb: common: Switch to device_property_match_property_string() 2024-09-11 15:34:34 +02:00
core usb: acpi: fix boot hang due to early incorrect 'tunneled' USB3 device links 2024-10-29 04:26:26 +01:00
dwc2 Revert "usb: dwc2: Skip clock gating on Broadcom SoCs" 2024-10-29 04:24:54 +01:00
dwc3 usb: dwc3: fix fault at system suspend if device was already runtime suspended 2024-11-05 13:55:06 +01:00
early usb: early: xhci-dbc: Use memcpy_and_pad() 2023-01-31 10:40:54 +01:00
fotg210 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
gadget Revert "usb: gadget: composite: fix OS descriptors w_value logic" 2024-12-05 14:02:50 +01:00
host usb: xhci: Avoid queuing redundant Stop Endpoint commands 2024-12-05 14:02:49 +01:00
image scsi: core: Add a dma_alignment field to the host and host template 2024-04-11 21:37:48 -04:00
isp1760 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
misc USB: chaoskey: Fix possible deadlock chaoskey_list_lock 2024-12-05 14:02:36 +01:00
mon [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
mtu3 tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
musb usb: musb: sunxi: Fix accessing an released usb phy 2024-11-05 13:31:16 +01:00
phy usb: phy: Fix API devm_usb_put_phy() can not release the phy 2024-10-29 04:37:48 +01:00
renesas_usbhs usb: renesas_usbhs: Remove renesas_usbhs_get_info() wrapper 2024-04-18 16:47:49 +02:00
roles usb: roles: Improve the fix for a false positive recursive locking complaint 2024-09-13 07:36:02 +02:00
serial USB: serial: qcserial: add support for Sierra Wireless EM86xx 2024-11-06 15:09:51 +01:00
storage usb: storage: ignore bogus device raised by JieLi BR21 USB sound chip 2024-10-04 15:32:25 +02:00
typec usb: typec: ucsi: glink: fix off-by-one in connector_status 2024-12-05 14:02:41 +01:00
usbip Merge 6.11-rc3 into usb-next 2024-08-12 18:49:00 +02:00
Kconfig usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
Makefile USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected 2024-06-04 15:33:38 +02:00
usb-skeleton.c usb: add usb_set_intfdata() documentation 2022-11-29 08:56:09 +01:00