From 6d6a643ea12c6fe1a2feaa52f4c6cccfb556bd68 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 6 Jun 2016 13:53:43 +0800 Subject: 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 (cherry picked from commit df0052575b2bc9d66ae73584768e1a457ed5d914) --- common/usb_storage.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/usb_storage.c b/common/usb_storage.c index 0345aa22ef..90f12c7ed1 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -18,6 +18,8 @@ * BBB support based on /sys/dev/usb/umass.c from * FreeBSD. * + * Copyright (C) 2016 Freescale Semiconductor, Inc. + * * SPDX-License-Identifier: GPL-2.0+ */ @@ -106,7 +108,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 -- cgit v1.2.3