diff options
Diffstat (limited to 'src/usb.c')
-rw-r--r-- | src/usb.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -181,6 +181,8 @@ int usb_send(struct context *context, const void *data, size_t size) while (count < size) { chunk = (size - count) < USB_SEND_CHUNK ? (size - count) : USB_SEND_CHUNK; + usleep(1000); + rc = libusb_bulk_transfer(context->usb_handle, USB_ENDPOINT_OUT, p, chunk, &transferred, USB_TIMEOUT); if (rc < 0 || transferred <= 0) { fprintf(stderr, "Bulk USB transfer failed\n"); @@ -211,6 +213,8 @@ int usb_recv(struct context *context, void *data, size_t size) while (count < size) { chunk = (size - count) < USB_RECV_CHUNK ? (size - count) : USB_RECV_CHUNK; + usleep(1000); + rc = libusb_bulk_transfer(context->usb_handle, USB_ENDPOINT_IN, p, chunk, &transferred, USB_TIMEOUT); if (rc < 0 || transferred <= 0) { fprintf(stderr, "Bulk USB transfer failed\n"); @@ -235,6 +239,8 @@ int usb_recv_available(struct context *context, void *data, size_t size) chunk = size < USB_RECV_CHUNK ? size : USB_RECV_CHUNK; + usleep(1000); + rc = libusb_bulk_transfer(context->usb_handle, USB_ENDPOINT_IN, data, chunk, &transferred, USB_TIMEOUT); if (rc < 0 || transferred <= 0) { fprintf(stderr, "Bulk USB transfer failed\n"); |