Browse Source

MLK-12883 usb: limit USB_MAX_XFER_BLK to 256

For Some USB mass storage devices, such as:
"
 - Kingston DataTraveler 2.0 001D7D06CF09B04199C7B3EA
 - Class: (from Interface) Mass Storage
 - PacketSize: 64  Configurations: 1
 - Vendor: 0x0930  Product 0x6545 Version 1.16
"
When `usb read 0x80000000 0 0x2000`, we met
"EHCI timed out on TD - token=0x80008d80".

The devices does not support scsi VPD page, we are not able
to get the maximum transfer length for READ(10)/WRITE(10).

So we limit this to 256 blocks as READ(6).

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit df0052575b)
imx_v2015.04_4.1.15_1.0.0_ga rel_imx_4.1.15_1.2.0_ga
Peng Fan 4 years ago
parent
commit
ede7538aef
1 changed files with 3 additions and 1 deletions
  1. +3
    -1
      common/usb_storage.c

+ 3
- 1
common/usb_storage.c View File

@ -16,6 +16,8 @@
* BBB support based on /sys/dev/usb/umass.c from
* FreeBSD.
*
* Copyright (C) 2016 Freescale Semiconductor, Inc.
*
* SPDX-License-Identifier: GPL-2.0+
*/
@ -138,7 +140,7 @@ struct us_data {
* enough free heap space left, but the SCSI READ(10) and WRITE(10) commands are
* limited to 65535 blocks.
*/
#define USB_MAX_XFER_BLK 65535
#define USB_MAX_XFER_BLK 256
#else
#define USB_MAX_XFER_BLK 20
#endif


Loading…
Cancel
Save