Re: [PATCH] USB: storage: add NO_ATA_1X quirk for Longmai USB Key
From: Alan Stern
Date: Wed Jul 15 2026 - 10:09:17 EST
On Wed, Jul 15, 2026 at 04:45:30PM +0800, Huang Wei wrote:
> The Longmai Technologies USB Key (0x04b4:0xb708) advertises itself as a
> SCSI/Bulk-only mass storage device but does not correctly handle ATA
> pass-through commands. When such a command (ATA_12 or ATA_16) is sent to
> the device it fails to respond and the transfer eventually times out,
> leaving the device unusable.
>
> Add an unusual_devs entry for this device that sets the US_FL_NO_ATA_1X
> flag, so usb-storage short-circuits ATA pass-through commands and returns
> INVALID COMMAND OPERATION CODE (0x20 0x05 0x24 0x00) instead of forwarding
> them to the device.
>
> Information about the device 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=06 Prot=50 MxPS=64 #Cfgs= 1
> P: Vendor=04b4 ProdID=b708 Rev= 1.00
> S: Manufacturer=Longmai Technologies
> S: Product=USB Key
> C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>
> Reported-by: Ai Chao <aichao@xxxxxxxxxx>
> Signed-off-by: Huang Wei <huangwei@xxxxxxxxxx>
> ---
> drivers/usb/storage/unusual_devs.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
> index cb03d3615614..ef77ab6fd42f 100644
> --- a/drivers/usb/storage/unusual_devs.h
> +++ b/drivers/usb/storage/unusual_devs.h
> @@ -2379,6 +2379,13 @@ UNUSUAL_DEV( 0xed10, 0x7636, 0x0001, 0x0001,
> "Digital MP3 Audio Player",
> USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ),
>
> +/* Reported by Ai Chao <aichao@xxxxxxxxxx> */
> +UNUSUAL_DEV( 0x04b4, 0xb708, 0x0000, 0xffff,
> + "Longmai Technologies",
> + "USB Key",
> + USB_SC_SCSI, USB_PR_BULK, NULL,
> + US_FL_NO_ATA_1X),
> +
According to the comments at the start of the file, entries should be
sorted by VendorID, then ProductID.
Alan Stern
> /* Unusual uas devices */
> #if IS_ENABLED(CONFIG_USB_UAS)
> #include "unusual_uas.h"
> --
> 2.25.1