Hi,
On 02/24/2015 03:18 AM, Siarhei Siamashka wrote:
Trying to use oversized initrd files (20 MB or more) can fail
with the "libusb usb_bulk_send error -1" error message.
To address this problem, we can split the transfer into smaller
chunks and the problem disappears. Effectively, this is a revert
of the older "fel: Increase timeout to 60 seconds instead of
splitting bulk transfers" commmit.
Signed-off-by: Siarhei Siamashka <[email protected]>
Looks good:
Acked-by: Hans de Goede <[email protected]>
Regards,
Hans
---
fel.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fel.c b/fel.c
index ed3bf64..965b270 100644
--- a/fel.c
+++ b/fel.c
@@ -73,11 +73,14 @@ static void pr_info(const char *fmt, ...)
}
}
+static const int AW_USB_MAX_BULK_SEND = 4 * 1024 * 1024; // 4 MiB per bulk
request
+
void usb_bulk_send(libusb_device_handle *usb, int ep, const void *data, int
length)
{
int rc, sent;
while (length > 0) {
- rc = libusb_bulk_transfer(usb, ep, (void *)data, length, &sent,
timeout);
+ int len = length < AW_USB_MAX_BULK_SEND ? length :
AW_USB_MAX_BULK_SEND;
+ rc = libusb_bulk_transfer(usb, ep, (void *)data, len, &sent,
timeout);
if (rc != 0) {
fprintf(stderr, "libusb usb_bulk_send error %d\n", rc);
exit(2);
--
You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.