[PATCH] uas: Add US_FL_NO_ATA_1X for linux tcm_usb_gadget

Piyush Mehta posted 1 patch 2 years, 1 month ago
drivers/usb/storage/unusual_uas.h | 7 +++++++
1 file changed, 7 insertions(+)
[PATCH] uas: Add US_FL_NO_ATA_1X for linux tcm_usb_gadget
Posted by Piyush Mehta 2 years, 1 month ago
The linux kernel's tcm_usb_gadget requires the US_FL_NO_ATA_1X quirk.
It does not respond to the ATA_12 family of commands and hangs. The host
prevents the issuing of ATA_12 commands to the TCM module, by introducing
this quirk, the host is permitted to proceed with other operations.

Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
---
 drivers/usb/storage/unusual_uas.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 1f8c9b16a0fb..2fc0220c72ee 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -177,6 +177,13 @@ UNUSUAL_DEV(0x4971, 0x8017, 0x0000, 0x9999,
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_NO_REPORT_OPCODES),
 
+/* Reported-by: Piyush Mehta <piyush.mehta@amd.com> */
+UNUSUAL_DEV(0x0525, 0xa4a5, 0x0000, 0x9999,
+		"NetChip",
+		"Target Product",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_NO_ATA_1X),
+
 /* "G-DRIVE" external HDD hangs on write without these.
  * Patch submitted by Alexander Kappner <agk@godking.net>
  */
-- 
2.25.1
Re: [PATCH] uas: Add US_FL_NO_ATA_1X for linux tcm_usb_gadget
Posted by Alan Stern 2 years, 1 month ago
On Mon, Aug 07, 2023 at 05:50:25PM +0530, Piyush Mehta wrote:
> The linux kernel's tcm_usb_gadget requires the US_FL_NO_ATA_1X quirk.
> It does not respond to the ATA_12 family of commands and hangs. The host

Are you certain of that?  Doesn't this depend on the underlying device 
that the gadget is attached to?

> prevents the issuing of ATA_12 commands to the TCM module, by introducing
> this quirk, the host is permitted to proceed with other operations.

Rather than changing just one host (the Linux one) while leaving all 
other hosts to malfunction, why not fix the gadget instead?  Change it 
so that it _doesn't_ hang when it gets an ATA_12 command but returns an 
appropriate error status.  That way the gadget will work with all hosts.

Alan Stern