This is an automated email from Gerrit.

Paul Fertser ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/2288

-- gerrit

commit a5a7df70db885a33330e2e7202782690cd5d3354
Author: Paul Fertser <[email protected]>
Date:   Thu Sep 11 11:23:04 2014 +0400

    jtag/drivers/libusb1_common: avoid device reset when reselecting 
configuration
    
    According to [1], we shouldn't reselect an already active
    configuration to avoid needless device reset. This is known to cause
    issues with e.g. LPC Link2 with JLink firmware.
    
    [1] http://libusb.sourceforge.net/api-1.0/caveats.html#configsel
    
    Change-Id: I3568ada77780a521548c450090db7173f8d0b2dd
    Signed-off-by: Paul Fertser <[email protected]>

diff --git a/src/jtag/drivers/libusb1_common.c 
b/src/jtag/drivers/libusb1_common.c
index 99e0d48..5952053 100644
--- a/src/jtag/drivers/libusb1_common.c
+++ b/src/jtag/drivers/libusb1_common.c
@@ -122,8 +122,14 @@ int 
jtag_libusb_set_configuration(jtag_libusb_device_handle *devh,
        int retCode = -99;
 
        struct libusb_config_descriptor *config = NULL;
+       int current_config;
 
        libusb_get_config_descriptor(udev, configuration, &config);
+
+       if (!libusb_get_configuration(devh, &current_config) &&
+           current_config == config->bConfigurationValue)
+               return 0;
+
        retCode = libusb_set_configuration(devh, config->bConfigurationValue);
 
        libusb_free_config_descriptor(config);

-- 

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to