diff mbox series

usb: storage: de-quirk Seagate Expansion Portable Drive SRD00F1 [0bc2:2320]

Message ID 20221230215942.3241955-1-zenczykowski@gmail.com (mailing list archive)
State New, archived
Headers show
Series usb: storage: de-quirk Seagate Expansion Portable Drive SRD00F1 [0bc2:2320] | expand

Commit Message

Maciej Żenczykowski Dec. 30, 2022, 9:59 p.m. UTC
From: Maciej Żenczykowski <maze@google.com>

Since November 2017 commit 7fee72d5e8f1 ("uas: Always apply US_FL_NO_ATA_1X
quirk to Seagate devices"), the US_FL_NO_ATA_1X is always set for Seagate
devices, but it doesn't appear to be required - at least for this one
(based on internet searches, probably for a fair number more...).

ID 0bc2:2320 Seagate RSS LLC USB 3.0 bridge [Portable Expansion Drive]

Confirmed via:
  smartctl -a /dev/sda
working fine with
  modprobe usb_storage quirks=0bc2:2320:
on
  5.19.11-1rodete1-amd64

Fixes: 7fee72d5e8f1 ("uas: Always apply US_FL_NO_ATA_1X quirk to Seagate devices")
Cc: stable <stable@vger.kernel.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Maciej Żenczykowski <zenczykowski@gmail.com>
---
 drivers/usb/storage/uas-detect.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Oliver Neukum Dec. 31, 2022, 6:21 p.m. UTC | #1
On 30.12.22 22:59, Maciej Żenczykowski wrote:

> -	/* All Seagate disk enclosures have broken ATA pass-through support */
> -	if (le16_to_cpu(udev->descriptor.idVendor) == 0x0bc2)
> +	/* Most Seagate disk enclosures have broken ATA pass-through support */
> +	if (le16_to_cpu(udev->descriptor.idVendor) == 0x0bc2 &&
> +	    le16_to_cpu(udev->descriptor.idProduct) != 0x2320)
>   		flags |= US_FL_NO_ATA_1X;
>   
>   	usb_stor_adjust_quirks(udev, &flags);


Hi,

I am sorry, but no. We cannot accomodate a list of of devices to be
dequirked that is sure to grow in the future. Please define a flag for
these devices.

	Regards
		Oliver
diff mbox series

Patch

diff --git a/drivers/usb/storage/uas-detect.h b/drivers/usb/storage/uas-detect.h
index 3f720faa6f97..74d65810f09a 100644
--- a/drivers/usb/storage/uas-detect.h
+++ b/drivers/usb/storage/uas-detect.h
@@ -112,8 +112,9 @@  static int uas_use_uas_driver(struct usb_interface *intf,
 		}
 	}
 
-	/* All Seagate disk enclosures have broken ATA pass-through support */
-	if (le16_to_cpu(udev->descriptor.idVendor) == 0x0bc2)
+	/* Most Seagate disk enclosures have broken ATA pass-through support */
+	if (le16_to_cpu(udev->descriptor.idVendor) == 0x0bc2 &&
+	    le16_to_cpu(udev->descriptor.idProduct) != 0x2320)
 		flags |= US_FL_NO_ATA_1X;
 
 	usb_stor_adjust_quirks(udev, &flags);