From f3db2b6e554d79f2de6d071505afcd34ffca399b Mon Sep 17 00:00:00 2001 From: William Wu Date: Mon, 14 Jan 2019 15:07:09 +0800 Subject: [PATCH] usb: uas: ignore UAS for Seagate Expansion Portable Drive The Seagate Expansion Portable Drive HDD (idVendor=0bc2, idProduct=2321) is reported to fail to work on rockchip platforms with the following error message when do read/write operation by dd command: xhci-hcd xhci-hcd.11.auto: Ring expansion failed According to tkaiser's suggestion[1], we can try to increase the kernel's coherent-pool memory size to fix this issue. The kernel coherent-pool memory size was limited at 256KB by default. When set the DEFAULT_DMA_COHERENT_POOL_SIZE to 1MB, the error "Ring expansion failed" can be fixed, but it still not work with the other error message: xhci-hcd xhci-hcd.12.auto: ERROR Unknown event condition 34 for slot 1 ep 3 , HC probably busted sd 0:0:0:0: [sda] tag#16 uas_eh_abort_handler 0 uas-tag 17 inflight: CMD OUT ... scsi host0: uas_eh_bus_reset_handler start xhci-hcd xhci-hcd.12.auto: ERROR Transfer event for disabled endpoint slot 1 ep 6 or incorrect stream ring Falling back to USB mass storage can solve this problem, so ignore UAS function of this HDD. [1] https://forum.armbian.com/topic/4811-uas-mainline-kernel-coherent-pool-memory-size/ Change-Id: I0d817cc3aaea548c2060b323c3077c6cbbd3bb6e Signed-off-by: William Wu --- drivers/usb/storage/unusual_uas.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h index 11c0a059e205..e015b700f00b 100644 --- a/drivers/usb/storage/unusual_uas.h +++ b/drivers/usb/storage/unusual_uas.h @@ -38,6 +38,12 @@ UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128, USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_UAS), +UNUSUAL_DEV(0x0bc2, 0x2321, 0x0000, 0x9999, + "Seagate", + "Expansion HDD", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + /* Reported-by: David Webb */ UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999, "Seagate",