summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Ahluwalia <kahluwalia999@gmail.com>2022-03-21 10:51:55 +0000
committerTormod Volden <debian.tormod@gmail.com>2022-03-21 23:00:08 +0100
commitdeb0d561b8af80c246b2933ebc1abd5feee45cc4 (patch)
treeb8c594b3a94468aee4c8a441a0e62eaaed3229e2
parent6b29aeb9ca22ed5ea9768020895698bd452c2a85 (diff)
downloadlibusb-deb0d561b8af80c246b2933ebc1abd5feee45cc4.tar.gz
windows: Fix WinUSB isochronous transfer regression
Put back missing CHECK_WINUSBX_AVAILABLE macro. The subapi is generally set in the backend functions themselves, using the macro CHECK_WINUSBX_AVAILABLE. However, this macro was (likely inadvertently) removed from winusbx_copy_transfer_data() in commit 9c28ad2 causing the subapi in this function to always be SUB_API_NOTSET. This results in the error: libusb: debug [winusbx_copy_transfer_data] unsupported API call for 'copy_transfer_data' (unrecognized device driver) https://github.com/libusb/libusb/issues/747#issuecomment-649619615 References #749 Closes #1095
-rw-r--r--libusb/os/windows_winusb.c3
-rw-r--r--libusb/version_nano.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c
index 1303707..fed7d0d 100644
--- a/libusb/os/windows_winusb.c
+++ b/libusb/os/windows_winusb.c
@@ -3229,6 +3229,9 @@ static enum libusb_transfer_status winusbx_copy_transfer_data(int sub_api, struc
int i;
if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) {
+ struct winusb_device_priv *priv = usbi_get_device_priv(transfer->dev_handle->dev);
+ CHECK_WINUSBX_AVAILABLE(sub_api);
+
// for isochronous, need to copy the individual iso packet actual_lengths and statuses
if ((sub_api == SUB_API_LIBUSBK) || (sub_api == SUB_API_LIBUSB0)) {
// iso only supported on libusbk-based backends for now
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 26ed7e7..78fef60 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11712
+#define LIBUSB_NANO 11713