drivers/am335xgpio: Add AM335x driver for bitbang support on BeagleBones
[fw/openocd] / src / jtag / drivers / rlink.c
index 07e22ffb79c37a63049621a1319952dc7bc88631..0cf9dbbb23a63c67a5607724650989346d83cb2a 100644 (file)
@@ -59,8 +59,6 @@
 #define USB_EP2IN_SIZE          (USB_EP2OUT_SIZE)
 #define USB_EP2BANK_SIZE        (512)
 
-#define USB_TIMEOUT_MS          (3 * 1000)
-
 #define DTC_STATUS_POLL_BYTE    (ST7_USB_BUF_EP0OUT + 0xff)
 
 #define ST7_PD_NBUSY_LED                ST7_PD0
@@ -133,7 +131,7 @@ static int ep1_generic_commandl(struct libusb_device_handle *hdev_param, size_t
                        hdev_param,
                        USB_EP1OUT_ADDR,
                        (char *)usb_buffer, sizeof(usb_buffer),
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
 
@@ -176,7 +174,7 @@ static ssize_t ep1_memory_read(
                usb_ret = jtag_libusb_bulk_write(
                                hdev_param, USB_EP1OUT_ADDR,
                                (char *)usb_buffer, sizeof(usb_buffer),
-                               USB_TIMEOUT_MS,
+                               LIBUSB_TIMEOUT_MS,
                                &transferred
                                );
 
@@ -186,7 +184,7 @@ static ssize_t ep1_memory_read(
                usb_ret = jtag_libusb_bulk_read(
                                hdev_param, USB_EP1IN_ADDR,
                                (char *)buffer, length,
-                               USB_TIMEOUT_MS,
+                               LIBUSB_TIMEOUT_MS,
                                &transferred
                                );
 
@@ -241,7 +239,7 @@ static ssize_t ep1_memory_write(struct libusb_device_handle *hdev_param, uint16_
                usb_ret = jtag_libusb_bulk_write(
                                hdev_param, USB_EP1OUT_ADDR,
                                (char *)usb_buffer, sizeof(usb_buffer),
-                               USB_TIMEOUT_MS,
+                               LIBUSB_TIMEOUT_MS,
                                &transferred
                                );
 
@@ -432,7 +430,7 @@ static int dtc_start_download(void)
        usb_err = jtag_libusb_bulk_read(
                        hdev, USB_EP1IN_ADDR,
                        (char *)&ep2txr, 1,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
        if (usb_err != ERROR_OK)
@@ -462,7 +460,7 @@ static int dtc_start_download(void)
        usb_err = jtag_libusb_bulk_read(
                        hdev, USB_EP1IN_ADDR,
                        (char *)&ep2txr, 1,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
 
@@ -488,7 +486,7 @@ static int dtc_run_download(
                        hdev_param,
                        USB_EP2OUT_ADDR,
                        (char *)command_buffer, USB_EP2BANK_SIZE,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
        if (usb_err < 0)
@@ -512,7 +510,7 @@ static int dtc_run_download(
                                hdev_param,
                                USB_EP1IN_ADDR,
                                &dtc_status, 1,
-                               USB_TIMEOUT_MS,
+                               LIBUSB_TIMEOUT_MS,
                                &transferred
                                );
                if (usb_err < 0)
@@ -533,7 +531,7 @@ static int dtc_run_download(
                                hdev_param,
                                USB_EP2IN_ADDR,
                                (char *)reply_buffer, reply_buffer_size,
-                               USB_TIMEOUT_MS,
+                               LIBUSB_TIMEOUT_MS,
                                &transferred
                                );
 
@@ -608,7 +606,7 @@ static inline struct dtc_reply_queue_entry *dtc_queue_enqueue_reply(
        struct dtc_reply_queue_entry *rq_entry;
 
        rq_entry = malloc(sizeof(struct dtc_reply_queue_entry));
-       if (rq_entry != NULL) {
+       if (rq_entry) {
                rq_entry->scan.type = type;
                rq_entry->scan.buffer = buffer;
                rq_entry->scan.size = size;
@@ -617,7 +615,7 @@ static inline struct dtc_reply_queue_entry *dtc_queue_enqueue_reply(
                rq_entry->cmd = cmd;
                rq_entry->next = NULL;
 
-               if (dtc_queue.rq_head == NULL)
+               if (!dtc_queue.rq_head)
                        dtc_queue.rq_head = rq_entry;
                else
                        dtc_queue.rq_tail->next = rq_entry;
@@ -665,7 +663,7 @@ static int dtc_queue_run(void)
                exit(1);
        }
 
-       if (dtc_queue.rq_head != NULL) {
+       if (dtc_queue.rq_head) {
                /* process the reply, which empties the reply queue and frees its entries */
                dtc_p = reply_buffer;
 
@@ -677,7 +675,7 @@ static int dtc_queue_run(void)
 
                for (
                        rq_p = dtc_queue.rq_head;
-                       rq_p != NULL;
+                       rq_p;
                        rq_p = rq_next
                        ) {
                        tdo_p = rq_p->scan.buffer + (rq_p->scan.offset / 8);
@@ -954,7 +952,7 @@ static void rlink_reset(int trst, int srst)
        usb_err = jtag_libusb_bulk_read(
                        hdev, USB_EP1IN_ADDR,
                        (char *)&bitmap, 1,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
        if (usb_err != ERROR_OK || transferred < 1) {
@@ -990,7 +988,7 @@ static void rlink_reset(int trst, int srst)
        usb_err = jtag_libusb_bulk_read(
                        hdev, USB_EP1IN_ADDR,
                        (char *)&bitmap, 1,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
        if (usb_err != ERROR_OK || transferred < 1) {
@@ -1021,7 +1019,7 @@ static void rlink_reset(int trst, int srst)
        usb_err = jtag_libusb_bulk_read(
                        hdev, USB_EP1IN_ADDR,
                        (char *)&bitmap, 1,
-                       USB_TIMEOUT_MS,
+                       LIBUSB_TIMEOUT_MS,
                        &transferred
                        );
        if (usb_err != ERROR_OK || transferred < 1) {
@@ -1148,11 +1146,8 @@ static int rlink_scan(struct jtag_command *cmd, enum scan_type type,
                byte_bits -= chunk_bits;
 
                if (type != SCAN_OUT) {
-                       if (dtc_queue_enqueue_reply(
-                                       type, buffer, scan_size, tdi_bit_offset,
-                                       chunk_bits,
-                                       cmd
-                               ) == NULL) {
+                       if (!dtc_queue_enqueue_reply(type, buffer, scan_size, tdi_bit_offset,
+                                       chunk_bits, cmd)) {
                                LOG_ERROR("enqueuing DTC reply entry: %s", strerror(errno));
                                exit(1);
                        }
@@ -1208,11 +1203,8 @@ static int rlink_scan(struct jtag_command *cmd, enum scan_type type,
                 * and one reply byte */
                dtc_queue_run_if_full(type == SCAN_IN ? 1 : 2, 1);
 
-               if (dtc_queue_enqueue_reply(
-                               type, buffer, scan_size, tdi_bit_offset,
-                               extra_bits,
-                               cmd
-                       ) == NULL) {
+               if (!dtc_queue_enqueue_reply(type, buffer, scan_size, tdi_bit_offset,
+                               extra_bits, cmd)) {
                        LOG_ERROR("enqueuing DTC reply entry: %s", strerror(errno));
                        exit(1);
                }
@@ -1260,11 +1252,8 @@ static int rlink_scan(struct jtag_command *cmd, enum scan_type type,
                        DTC_CMD_SHIFT_TMS_TDI_BIT_PAIR(1, (*tdi_p & tdi_mask), 0);
 
        } else {
-               if (dtc_queue_enqueue_reply(
-                               type, buffer, scan_size, tdi_bit_offset,
-                               1,
-                               cmd
-                               ) == NULL) {
+               if (!dtc_queue_enqueue_reply(type, buffer, scan_size, tdi_bit_offset,
+                               1, cmd)) {
                        LOG_ERROR("enqueuing DTC reply entry: %s", strerror(errno));
                        exit(1);
                }
@@ -1470,7 +1459,7 @@ static int rlink_init(void)
 
        const uint16_t vids[] = { USB_IDVENDOR, 0 };
        const uint16_t pids[] = { USB_IDPRODUCT, 0 };
-       if (jtag_libusb_open(vids, pids, NULL, &hdev, NULL) != ERROR_OK)
+       if (jtag_libusb_open(vids, pids, &hdev, NULL) != ERROR_OK)
                return ERROR_FAIL;
 
        struct libusb_device_descriptor descriptor;
@@ -1585,7 +1574,7 @@ static int rlink_init(void)
        jtag_libusb_bulk_read(
                hdev, USB_EP1IN_ADDR,
                (char *)reply_buffer, 1,
-               USB_TIMEOUT_MS,
+               LIBUSB_TIMEOUT_MS,
                &transferred
                );
 
@@ -1610,7 +1599,7 @@ static int rlink_init(void)
        jtag_libusb_bulk_read(
                hdev, USB_EP1IN_ADDR,
                (char *)reply_buffer, 1,
-               USB_TIMEOUT_MS,
+               LIBUSB_TIMEOUT_MS,
                &transferred
                );