Browse Source

uas: Honor no-uas quirk set in usb-storage's quirks module parameter

Falling back from uas to usb-storage requires coordination between uas and
usb-storage, so use usb-storage's quirks module parameter, rather then
requiring the user to pass a param to 2 different modules.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Hans de Goede 11 years ago
parent
commit
97172a660c
2 changed files with 5 additions and 1 deletions
  1. 1 1
      drivers/usb/storage/Kconfig
  2. 4 0
      drivers/usb/storage/uas-detect.h

+ 1 - 1
drivers/usb/storage/Kconfig

@@ -204,7 +204,7 @@ config USB_STORAGE_ENE_UB6250
 
 
 config USB_UAS
 config USB_UAS
 	tristate "USB Attached SCSI"
 	tristate "USB Attached SCSI"
-	depends on SCSI && BROKEN
+	depends on SCSI && USB_STORAGE && BROKEN
 	help
 	help
 	  The USB Attached SCSI protocol is supported by some USB
 	  The USB Attached SCSI protocol is supported by some USB
 	  storage devices.  It permits higher performance by supporting
 	  storage devices.  It permits higher performance by supporting

+ 4 - 0
drivers/usb/storage/uas-detect.h

@@ -1,5 +1,6 @@
 #include <linux/usb.h>
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
 #include <linux/usb/hcd.h>
+#include "usb.h"
 
 
 static int uas_is_interface(struct usb_host_interface *intf)
 static int uas_is_interface(struct usb_host_interface *intf)
 {
 {
@@ -42,8 +43,11 @@ static int uas_find_uas_alt_setting(struct usb_interface *intf)
 static int uas_use_uas_driver(struct usb_interface *intf,
 static int uas_use_uas_driver(struct usb_interface *intf,
 			      const struct usb_device_id *id)
 			      const struct usb_device_id *id)
 {
 {
+	struct usb_device *udev = interface_to_usbdev(intf);
 	unsigned long flags = id->driver_info;
 	unsigned long flags = id->driver_info;
 
 
+	usb_stor_adjust_quirks(udev, &flags);
+
 	if (flags & US_FL_IGNORE_UAS)
 	if (flags & US_FL_IGNORE_UAS)
 		return 0;
 		return 0;