diff options
author | Hans de Goede <hdegoede@redhat.com> | 2015-04-21 05:20:32 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-28 06:48:57 -0400 |
commit | 8e779c6c4a398763c21371fe40f649206041dc1e (patch) | |
tree | a1c51f7ae771a724b2973ceda97639082632fd58 /drivers/usb/storage | |
parent | ee136af4a064c2f61e2025873584d2c7ec93f4ae (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.h | 5 |
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 | ||