This is an automated email from Gerrit.

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

-- gerrit

commit 99f7cdba5656e2a8bb56d89b9dae367ab69dc19c
Author: Antonio Borneo <[email protected]>
Date:   Tue Dec 29 21:52:56 2020 +0100

    drivers/usbprog: switch to libusb1
    
    Convert the driver from libusb0 to libusb1.
    
    Change-Id: I3f334f2d02515d612097955e714910a587169990
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/configure.ac b/configure.ac
index 2c329b2..af29840 100644
--- a/configure.ac
+++ b/configure.ac
@@ -124,10 +124,11 @@ m4_define([USB1_ADAPTERS],
        [[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
        [[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]],
        [[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
+       [[usbprog], [USBProg JTAG Programmer], [USBPROG]],
        [[aice], [Andes JTAG Programmer], [AICE]]])
 
 m4_define([USB0_ADAPTERS],
-       [[[usbprog], [USBProg JTAG Programmer], [USBPROG]]])
+       [])
 
 m4_define([HIDAPI_ADAPTERS],
        [[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP_HID]],
diff --git a/src/jtag/drivers/usbprog.c b/src/jtag/drivers/usbprog.c
index 627e465..eb25b16 100644
--- a/src/jtag/drivers/usbprog.c
+++ b/src/jtag/drivers/usbprog.c
@@ -34,7 +34,7 @@
 
 #include <jtag/interface.h>
 #include <jtag/commands.h>
-#include "usb_common.h"
+#include "libusb_helper.h"
 
 #define VID 0x1781
 #define PID 0x0c63
@@ -64,7 +64,7 @@ static void usbprog_scan(bool ir_scan, enum scan_type type, 
uint8_t *buffer, int
 #define WRITE_TMS_CHAIN 0x0A
 
 struct usbprog_jtag {
-       struct usb_dev_handle *usb_handle;
+       struct libusb_device_handle *usb_handle;
 };
 
 static struct usbprog_jtag *usbprog_jtag_handle;
@@ -350,21 +350,19 @@ struct usb_bus *busses;
 
 struct usbprog_jtag *usbprog_jtag_open(void)
 {
-       usb_set_debug(10);
-       usb_init();
-
        const uint16_t vids[] = { VID, 0 };
        const uint16_t pids[] = { PID, 0 };
-       struct usb_dev_handle *dev;
-       if (jtag_usb_open(vids, pids, &dev) != ERROR_OK)
+       struct libusb_device_handle *dev;
+
+       if (jtag_libusb_open(vids, pids, NULL, &dev, NULL) != ERROR_OK)
                return NULL;
 
        struct usbprog_jtag *tmp = malloc(sizeof(struct usbprog_jtag));
        tmp->usb_handle = dev;
 
-       usb_set_configuration(dev, 1);
-       usb_claim_interface(dev, 0);
-       usb_set_altinterface(dev, 0);
+       libusb_set_configuration(dev, 1);
+       libusb_claim_interface(dev, 0);
+       libusb_set_interface_alt_setting(dev, 0, 0);
 
        return tmp;
 }
@@ -372,21 +370,23 @@ struct usbprog_jtag *usbprog_jtag_open(void)
 #if 0
 static void usbprog_jtag_close(struct usbprog_jtag *usbprog_jtag)
 {
-       usb_close(usbprog_jtag->usb_handle);
+       libusb_close(usbprog_jtag->usb_handle);
        free(usbprog_jtag);
 }
 #endif
 
 static unsigned char usbprog_jtag_message(struct usbprog_jtag *usbprog_jtag, 
char *msg, int msglen)
 {
-       int res = usb_bulk_write(usbprog_jtag->usb_handle, 3, msg, msglen, 100);
+       int transferred;
+
+       int res = jtag_libusb_bulk_write(usbprog_jtag->usb_handle, 3, msg, 
msglen, 100, &transferred);
        if ((msg[0] == 2) || (msg[0] == 1) || (msg[0] == 4) || (msg[0] == 0) ||
            (msg[0] == 6) || (msg[0] == 0x0A) || (msg[0] == 9))
                return 1;
-       if (res == msglen) {
+       if (res == ERROR_OK && transferred == msglen) {
                /* LOG_INFO("HALLLLOOO %i",(int)msg[0]); */
-               res = usb_bulk_read(usbprog_jtag->usb_handle, 0x82, msg, 2, 
100);
-               if (res > 0)
+               res = jtag_libusb_bulk_read(usbprog_jtag->usb_handle, 0x82, 
msg, 2, 100, &transferred);
+               if (res == ERROR_OK && transferred > 0)
                        return (unsigned char)msg[1];
                else
                        return -1;
@@ -404,6 +404,7 @@ static void usbprog_jtag_write_and_read(struct usbprog_jtag 
*usbprog_jtag, char
 {
        char tmp[64];   /* fastest packet size for usb controller */
        int send_bits, bufindex = 0, fillindex = 0, i, loops;
+       int transferred, res;
 
        char swap;
        /* 61 byte can be transferred (488 bit) */
@@ -428,11 +429,12 @@ static void usbprog_jtag_write_and_read(struct 
usbprog_jtag *usbprog_jtag, char
                        bufindex++;
                }
 
-               if (usb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 64, 1000) 
== 64) {
+               res = jtag_libusb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 
64, 1000, &transferred);
+               if (res == ERROR_OK && transferred == 64) {
                        /* LOG_INFO("HALLLLOOO2 %i",(int)tmp[0]); */
                        usleep(1);
                        int timeout = 0;
-                       while (usb_bulk_read(usbprog_jtag->usb_handle, 0x82, 
tmp, 64, 1000) < 1) {
+                       while (jtag_libusb_bulk_read(usbprog_jtag->usb_handle, 
0x82, tmp, 64, 1000, &transferred) != ERROR_OK) {
                                timeout++;
                                if (timeout > 10)
                                        break;
@@ -450,6 +452,7 @@ static void usbprog_jtag_read_tdo(struct usbprog_jtag 
*usbprog_jtag, char *buffe
 {
        char tmp[64];   /* fastest packet size for usb controller */
        int send_bits, fillindex = 0, i, loops;
+       int transferred;
 
        char swap;
        /* 61 byte can be transferred (488 bit) */
@@ -469,12 +472,12 @@ static void usbprog_jtag_read_tdo(struct usbprog_jtag 
*usbprog_jtag, char *buffe
                tmp[1] = (char)(send_bits >> 8);        /* high */
                tmp[2] = (char)(send_bits);                     /* low */
 
-               usb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 3, 1000);
+               jtag_libusb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 3, 
1000, &transferred);
 
                /* LOG_INFO("HALLLLOOO3 %i",(int)tmp[0]); */
                int timeout = 0;
                usleep(1);
-               while (usb_bulk_read(usbprog_jtag->usb_handle, 0x82, tmp, 64, 
10) < 1) {
+               while (jtag_libusb_bulk_read(usbprog_jtag->usb_handle, 0x82, 
tmp, 64, 10, &transferred) != ERROR_OK) {
                        timeout++;
                        if (timeout > 10)
                                break;
@@ -491,6 +494,7 @@ static void usbprog_jtag_write_tdi(struct usbprog_jtag 
*usbprog_jtag, char *buff
 {
        char tmp[64];   /* fastest packet size for usb controller */
        int send_bits, bufindex = 0, i, loops;
+       int transferred;
 
        /* 61 byte can be transferred (488 bit) */
        while (size > 0) {
@@ -513,7 +517,7 @@ static void usbprog_jtag_write_tdi(struct usbprog_jtag 
*usbprog_jtag, char *buff
                        tmp[3 + i] = buffer[bufindex];
                        bufindex++;
                }
-               usb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 64, 1000);
+               jtag_libusb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 64, 
1000, &transferred);
        }
 }
 
@@ -583,6 +587,8 @@ static void usbprog_jtag_tms_collect(char tms_scan)
 static void usbprog_jtag_tms_send(struct usbprog_jtag *usbprog_jtag)
 {
        int i;
+       int transferred;
+
        /* LOG_INFO("TMS SEND"); */
        if (tms_chain_index > 0) {
                char tmp[tms_chain_index + 2];
@@ -590,7 +596,7 @@ static void usbprog_jtag_tms_send(struct usbprog_jtag 
*usbprog_jtag)
                tmp[1] = (char)(tms_chain_index);
                for (i = 0; i < tms_chain_index + 1; i++)
                        tmp[2 + i] = tms_chain[i];
-               usb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 
tms_chain_index + 2, 1000);
+               jtag_libusb_bulk_write(usbprog_jtag->usb_handle, 3, tmp, 
tms_chain_index + 2, 1000, &transferred);
                tms_chain_index = 0;
        }
 }

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to