+++ /dev/null
-From 6e31aa17271f90a443591719089688bbf2040765 Mon Sep 17 00:00:00 2001
-From: Kristof Robot <krirobo@gmail.com>
-Date: Sun, 8 Dec 2013 15:46:50 +0100
-Subject: [PATCH] kinect_upload_fw: fix setting configuration for some devices
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-X-Face: z*RaLf`X<@C75u6Ig9}{oW$H;1_\2t5)({*|jhM<pyWR#k60!#=#>/Vb;]yA5<GWI5`6u&+
- ;6b'@y|8w"wB;4/e!7wYYrcqdJFY,~%Gk_4]cq$Ei/7<j&N3ah(m`ku?pX.&+~:_/wC~dwn^)MizBG
- !pE^+iDQQ1yC6^,)YDKkxDd!T>\I~93>J<_`<4)A{':UrE
-
-On some Kinect devices where the desired configuration is already the
-currently active one libusb_set_configuration() fails in some way
-causing the subsequent bulk transfer to fail, and the program to exit,
-with this message:
-
- libusbx: error [op_set_configuration] failed, error -1 errno 110
- About to send: 09 20 02 06 01 00 00 00 60 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00
- libusbx: error [submit_bulk_transfer] submiturb failed error -1 errno=2
- Error: res: -1 transferred: 0 (expected 24)
-
-Only set the desired configuration if it hasn't been set already.
-This prevents the problems from above.
-
-Do the configuration check as illustrated in
-http://libusbx.sourceforge.net/api-1.0/caveats.html that is by checking
-that the current configuration is still the desired one after claiming
-the device.
----
- kinect_upload_fw/kinect_upload_fw.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/kinect_upload_fw/kinect_upload_fw.c b/kinect_upload_fw/kinect_upload_fw.c
-index b2188d6..e3b72db 100644
---- a/kinect_upload_fw/kinect_upload_fw.c
-+++ b/kinect_upload_fw/kinect_upload_fw.c
-@@ -155,9 +155,19 @@ int main(int argc, char** argv) {
- goto fail_libusb_open;
- }
-
-- libusb_set_configuration(dev, 1);
-+ int current_configuration = 0;
-+ libusb_get_configuration(dev, ¤t_configuration);
-+ if (current_configuration != 1)
-+ libusb_set_configuration(dev, 1);
-+
- libusb_claim_interface(dev, 0);
-
-+ libusb_get_configuration(dev, ¤t_configuration);
-+ if (current_configuration != 1) {
-+ res = -ENODEV;
-+ goto cleanup;
-+ }
-+
- seq = 1;
-
- bootloader_command cmd;
---
-1.8.5.1
-