diff options
Diffstat (limited to 'patches/libusb-add-zlp-flag.patch')
| -rw-r--r-- | patches/libusb-add-zlp-flag.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/patches/libusb-add-zlp-flag.patch b/patches/libusb-add-zlp-flag.patch new file mode 100644 index 0000000..add9f97 --- /dev/null +++ b/patches/libusb-add-zlp-flag.patch | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | diff -ur libusb-1.0.0/libusb/os/linux_usbfs.c libusb-1.0.0-mod/libusb/os/linux_usbfs.c | ||
| 2 | --- libusb-1.0.0/libusb/os/linux_usbfs.c 2008-12-13 20:43:20.000000000 +0100 | ||
| 3 | +++ libusb-1.0.0-mod/libusb/os/linux_usbfs.c 2009-04-30 04:25:12.000000000 +0200 | ||
| 4 | @@ -1295,7 +1295,8 @@ | ||
| 5 | urb->buffer_length = transfer->length % MAX_BULK_BUFFER_LENGTH; | ||
| 6 | else | ||
| 7 | urb->buffer_length = MAX_BULK_BUFFER_LENGTH; | ||
| 8 | - | ||
| 9 | + if ((!(transfer->endpoint & LIBUSB_ENDPOINT_DIR_MASK)) && (i == num_urbs - 1)) | ||
| 10 | + urb->flags = USBFS_URB_ZLP; | ||
| 11 | r = ioctl(dpriv->fd, IOCTL_USBFS_SUBMITURB, urb); | ||
| 12 | if (r < 0) { | ||
| 13 | int j; | ||
| 14 | diff -ur libusb-1.0.0/libusb/os/linux_usbfs.h libusb-1.0.0-mod/libusb/os/linux_usbfs.h | ||
| 15 | --- libusb-1.0.0/libusb/os/linux_usbfs.h 2008-07-16 16:17:57.000000000 +0200 | ||
| 16 | +++ libusb-1.0.0-mod/libusb/os/linux_usbfs.h 2009-04-30 04:08:27.000000000 +0200 | ||
| 17 | @@ -63,6 +63,7 @@ | ||
| 18 | #define USBFS_URB_DISABLE_SPD 1 | ||
| 19 | #define USBFS_URB_ISO_ASAP 2 | ||
| 20 | #define USBFS_URB_QUEUE_BULK 0x10 | ||
| 21 | +#define USBFS_URB_ZLP 0x40 | ||
| 22 | |||
| 23 | enum usbfs_urb_type { | ||
| 24 | USBFS_URB_TYPE_ISO = 0, | ||
