summaryrefslogtreecommitdiffstats
path: root/drivers/usb/storage
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-11-16 12:19:36 +0100
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2014-03-05 00:38:17 +0100
commit97172a660cfc744996112eb625a77282a4b627b7 (patch)
tree30b6c58fc9ff51d15829680fb335c72ab66cf521 /drivers/usb/storage
parentusb-storage: Modify and export adjust_quirks so that it can be used by uas (diff)
downloadlinux-97172a660cfc744996112eb625a77282a4b627b7.tar.xz
linux-97172a660cfc744996112eb625a77282a4b627b7.zip
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>
Diffstat (limited to 'drivers/usb/storage')
-rw-r--r--drivers/usb/storage/Kconfig2
-rw-r--r--drivers/usb/storage/uas-detect.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/storage/Kconfig b/drivers/usb/storage/Kconfig
index 1dd0604d1911..666dcb692e12 100644
--- a/drivers/usb/storage/Kconfig
+++ b/drivers/usb/storage/Kconfig
@@ -204,7 +204,7 @@ config USB_STORAGE_ENE_UB6250
config USB_UAS
tristate "USB Attached SCSI"
- depends on SCSI && BROKEN
+ depends on SCSI && USB_STORAGE && BROKEN
help
The USB Attached SCSI protocol is supported by some USB
storage devices. It permits higher performance by supporting
diff --git a/drivers/usb/storage/uas-detect.h b/drivers/usb/storage/uas-detect.h
index 02bf5ec957f5..082bde1fa74d 100644
--- a/drivers/usb/storage/uas-detect.h
+++ b/drivers/usb/storage/uas-detect.h
@@ -1,5 +1,6 @@
#include <linux/usb.h>
#include <linux/usb/hcd.h>
+#include "usb.h"
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,
const struct usb_device_id *id)
{
+ struct usb_device *udev = interface_to_usbdev(intf);
unsigned long flags = id->driver_info;
+ usb_stor_adjust_quirks(udev, &flags);
+
if (flags & US_FL_IGNORE_UAS)
return 0;