[U-Boot] [PATCH 4/5] usb_storage: Restore non-EHCI support

The commit 5dd95cf made the MSC driver EHCI-specific. This patch restores a basic support of non-EHCI HCDs, like before that commit.
The fallback transfer size is certainly not optimal, but at least it should work like before.
Signed-off-by: Benoît Thébaudeau benoit.thebaudeau@advansee.com Cc: Marek Vasut marex@denx.de Cc: Ilya Yanok ilya.yanok@cogentembedded.com Cc: Stefan Herbrechtsmeier stefan@herbrechtsmeier.net --- .../common/usb_storage.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git u-boot-usb-1b4bd0e.orig/common/usb_storage.c u-boot-usb-1b4bd0e/common/usb_storage.c index 46f6b75..135c940 100644 --- u-boot-usb-1b4bd0e.orig/common/usb_storage.c +++ u-boot-usb-1b4bd0e/common/usb_storage.c @@ -155,12 +155,16 @@ struct us_data { trans_cmnd transport; /* transport routine */ };
+#ifdef CONFIG_USB_EHCI /* * The U-Boot EHCI driver can handle any transfer length as long as there is * enough free heap space left, but the SCSI READ(10) and WRITE(10) commands are * limited to 65535 bytes. */ #define USB_MAX_XFER_BLK 65535 +#else +#define USB_MAX_XFER_BLK 20 +#endif
static struct us_data usb_stor[USB_MAX_STOR_DEV];

Dear Benoît Thébaudeau,
The commit 5dd95cf made the MSC driver EHCI-specific. This patch restores a basic support of non-EHCI HCDs, like before that commit.
The fallback transfer size is certainly not optimal, but at least it should work like before.
[...]
Please merge this with 3/5 or swap them, so this doesn't break bisect please.
Best regards, Marek Vasut

Dear Marek,
On Fri, Jul 27, 2012 at 02:55:38 PM, Marek Vasut wrote:
The commit 5dd95cf made the MSC driver EHCI-specific. This patch restores a basic support of non-EHCI HCDs, like before that commit.
The fallback transfer size is certainly not optimal, but at least it should work like before.
[...]
Please merge this with 3/5 or swap them, so this doesn't break bisect please.
OK, I'll swap them then.
Regards, Benoît

The commit 5dd95cf made the MSC driver EHCI-specific. This patch restores a basic support of non-EHCI HCDs, like before that commit.
The fallback transfer size is certainly not optimal, but at least it should work like before.
Signed-off-by: Benoît Thébaudeau benoit.thebaudeau@advansee.com Cc: Marek Vasut marex@denx.de Cc: Ilya Yanok ilya.yanok@cogentembedded.com Cc: Stefan Herbrechtsmeier stefan@herbrechtsmeier.net --- Changes for v2: None. Changes for v3: - Patch swapped with the currently following one.
.../common/usb_storage.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git u-boot-usb-8d5fb14.orig/common/usb_storage.c u-boot-usb-8d5fb14/common/usb_storage.c index bdc306f..0cd6399 100644 --- u-boot-usb-8d5fb14.orig/common/usb_storage.c +++ u-boot-usb-8d5fb14/common/usb_storage.c @@ -155,11 +155,15 @@ struct us_data { trans_cmnd transport; /* transport routine */ };
+#ifdef CONFIG_USB_EHCI /* * The U-Boot EHCI driver cannot handle more than 5 page aligned buffers * of 4096 bytes in a transfer without running itself out of qt_buffers */ #define USB_MAX_XFER_BLK(start, blksz) (((4096 * 5) - (start % 4096)) / blksz) +#else +#define USB_MAX_XFER_BLK(start, blksz) 20 +#endif
static struct us_data usb_stor[USB_MAX_STOR_DEV];
participants (2)
-
Benoît Thébaudeau
-
Marek Vasut