aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/storage
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-04-21 05:20:32 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-04-28 06:48:57 -0400
commit8e779c6c4a398763c21371fe40f649206041dc1e (patch)
treea1c51f7ae771a724b2973ceda97639082632fd58 /drivers/usb/storage
parentee136af4a064c2f61e2025873584d2c7ec93f4ae (diff)
uas: Set max_sectors_240 quirk for ASM1053 devices
Testing has shown that ASM1053 devices do not work properly with transfers larger than 240 sectors, so set max_sectors to 240 on these. Cc: stable@vger.kernel.org # 3.16 Reported-by: Steve Bangert <sbangert@frontier.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Steve Bangert <sbangert@frontier.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/storage')
-rw-r--r--drivers/usb/storage/uas-detect.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/storage/uas-detect.h b/drivers/usb/storage/uas-detect.h
index 63ae1619fdb8..f58caa9e6a27 100644
--- a/drivers/usb/storage/uas-detect.h
+++ b/drivers/usb/storage/uas-detect.h
@@ -74,7 +74,7 @@ static int uas_use_uas_driver(struct usb_interface *intf,
74 * this writing the following versions exist: 74 * this writing the following versions exist:
75 * ASM1051 - no uas support version 75 * ASM1051 - no uas support version
76 * ASM1051 - with broken (*) uas support 76 * ASM1051 - with broken (*) uas support
77 * ASM1053 - with working uas support 77 * ASM1053 - with working uas support, but problems with large xfers
78 * ASM1153 - with working uas support 78 * ASM1153 - with working uas support
79 * 79 *
80 * Devices with these chips re-use a number of device-ids over the 80 * Devices with these chips re-use a number of device-ids over the
@@ -104,6 +104,9 @@ static int uas_use_uas_driver(struct usb_interface *intf,
104 } else if (usb_ss_max_streams(&eps[1]->ss_ep_comp) == 32) { 104 } else if (usb_ss_max_streams(&eps[1]->ss_ep_comp) == 32) {
105 /* Possibly an ASM1051, disable uas */ 105 /* Possibly an ASM1051, disable uas */
106 flags |= US_FL_IGNORE_UAS; 106 flags |= US_FL_IGNORE_UAS;
107 } else {
108 /* ASM1053, these have issues with large transfers */
109 flags |= US_FL_MAX_SECTORS_240;
107 } 110 }
108 } 111 }
109 112