diff mbox series

uas: Add US_FL_NO_ATA_1X for linux tcm_usb_gadget

Message ID 20230807122025.2818062-1-piyush.mehta@amd.com (mailing list archive)
State New, archived
Headers show
Series uas: Add US_FL_NO_ATA_1X for linux tcm_usb_gadget | expand

Commit Message

Mehta, Piyush Aug. 7, 2023, 12:20 p.m. UTC
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(+)

Comments

Alan Stern Aug. 7, 2023, 1:42 p.m. UTC | #1
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
diff mbox series

Patch

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>
  */