On Tue, 14 Nov 2017, Hans de Goede wrote:
Hi,
On 14-11-17 15:00, Hans de Goede wrote:
Just like all previous UAS capable Seagate disk enclosures, this one needs a US_FL_NO_ATA_1X quirk.
Cc: stable@vger.kernel.org # 3.16 Reported-by: Wido wido.gg@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com
So far we've been adding quirks for Seagate drives on a one by one basis (I started this myself) hoping that one day they will fix their ATA_1X pass-through support. But that does not seem to be happening.
Maybe we need to do something like this instead ? :
--- a/drivers/usb/storage/uas-detect.h +++ b/drivers/usb/storage/uas-detect.h @@ -111,6 +111,10 @@ 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)
flags |= US_FL_NO_ATA_1X;
usb_stor_adjust_quirks(udev, &flags); if (flags & US_FL_IGNORE_UAS) {
Then we can remove a whole lot of quirks and we avoid future churn when new Seagate device ids show up.
That is a reasonable approach. For what it's worth, usb-storage has had similar code for many years, affecting devices from Nokia, Nikon, Pentax, and Motorola.
Alan Stern