Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles

Many Realtek USB Wi-Fi dongles released in recent years have two modes:
one is driver CD mode which has Windows driver onboard, another one is
Wi-Fi mode. Add the US_FL_IGNORE_DEVICE quirk for these multi-mode devices.
Otherwise, usb_modeswitch may fail to switch them to Wi-Fi mode.

Currently there are only two USB IDs known to be used by these multi-mode
Wi-Fi dongles: 0bda:1a2b and 0bda:a192.

Information about Mercury MW310UH in /sys/kernel/debug/usb/devices.
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 12 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=a192 Rev= 2.00
S: Manufacturer=Realtek
S: Product=DISK
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=0b(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Information about D-Link AX9U rev. A1 in /sys/kernel/debug/usb/devices.
T: Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 55 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=1a2b Rev= 0.00
S: Manufacturer=Realtek
S: Product=DISK
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Cc: stable <stable@kernel.org>
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20250813162415.2630-1-zenmchen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Zenm Chen and committed by
Greg Kroah-Hartman
a3dc32c6 98da66a7

+22
+22
drivers/usb/storage/unusual_devs.h
··· 1501 1501 USB_SC_DEVICE, USB_PR_DEVICE, NULL, 1502 1502 US_FL_NO_WP_DETECT ), 1503 1503 1504 + /* 1505 + * Reported by Zenm Chen <zenmchen@gmail.com> 1506 + * Ignore driver CD mode, otherwise usb_modeswitch may fail to switch 1507 + * the device into Wi-Fi mode. 1508 + */ 1509 + UNUSUAL_DEV( 0x0bda, 0x1a2b, 0x0000, 0xffff, 1510 + "Realtek", 1511 + "DISK", 1512 + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 1513 + US_FL_IGNORE_DEVICE ), 1514 + 1515 + /* 1516 + * Reported by Zenm Chen <zenmchen@gmail.com> 1517 + * Ignore driver CD mode, otherwise usb_modeswitch may fail to switch 1518 + * the device into Wi-Fi mode. 1519 + */ 1520 + UNUSUAL_DEV( 0x0bda, 0xa192, 0x0000, 0xffff, 1521 + "Realtek", 1522 + "DISK", 1523 + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 1524 + US_FL_IGNORE_DEVICE ), 1525 + 1504 1526 UNUSUAL_DEV( 0x0d49, 0x7310, 0x0000, 0x9999, 1505 1527 "Maxtor", 1506 1528 "USB to SATA",