This is an automated email from Gerrit.

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

-- gerrit

commit 3ae26d5f71800f77b33f4b70c41e1a140d08f520
Author: Anders <[email protected]>
Date:   Fri Sep 12 08:44:33 2014 -0700

    jtag/drivers/jlink.c: fix for LPC Link-2 running JLink firmware on Linux
    
    Change 2288 fixed the extraneous reset caused by set_configuration that
    crashed the LPC Link-2 running JLink firmware and works on windows 
platforms.
    On Linux however, conditional code was still calling USB reset and caused
    the adapter to crash on any non-windows platforms.
    
    Change-Id: Ibf2a02d0dcdd91ccb71d86231cd8311dcadfee1e
    Signed-off-by: [email protected]

diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c
index 39be941..184c1b4 100644
--- a/src/jtag/drivers/jlink.c
+++ b/src/jtag/drivers/jlink.c
@@ -1713,7 +1713,15 @@ static struct jlink *jlink_usb_open()
         * committing them!
         */
 
-#if IS_WIN32 == 0
+/* This entire block can probably be removed. It was a workaround for
+ * libusb0.1 and old JLink firmware. It has already be removed for
+ * windows and causing problems (LPC Link-2 with JLink firmware) on
+ * Linux with libusb1.0.
+ *
+ * However, for now the behavior will be left unchanged for non-windows
+ * platforms using libusb0.1 due to lack of testing.
+ */
+#if IS_WIN32 == 0 && HAVE_LIBUSB1 == 0
 
        jtag_libusb_reset_device(devh);
 
@@ -1735,19 +1743,13 @@ static struct jlink *jlink_usb_open()
 
 #endif
 
-       /* usb_set_configuration required under win32 */
+       /* usb_set_configuration is only required under win32
+         * with libusb 0.1 and libusb0.sys. For libusb 1.0 it is a no-op
+         * since the configuration is already set. */
        struct jtag_libusb_device *udev = jtag_libusb_get_device(devh);
        jtag_libusb_set_configuration(devh, 0);
        jtag_libusb_claim_interface(devh, 0);
 
-#if 0
-       /*
-        * This makes problems under Mac OS X. And is not needed
-        * under Windows. Hopefully this will not break a linux build
-        */
-       usb_set_altinterface(result->usb_handle, 0);
-#endif
-
        /* Use the OB endpoints if the JLink we matched is a Jlink-OB adapter */
        uint16_t matched_pid;
        if (jtag_libusb_get_pid(udev, &matched_pid) == ERROR_OK) {

-- 

------------------------------------------------------------------------------
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