jtag_libusb_bulk_read|write: return error code instead of size
[fw/openocd] / src / jtag / drivers / ft232r.c
index 8cda76ed2a9970d5bfa73e1f87a3b2189f5fd474..c20367fc00f8360f3de1bc8485f668174d3b5681 100644 (file)
@@ -132,11 +132,11 @@ static int ft232r_send_recv(void)
                        bytes_to_write = rxfifo_free;
 
                if (bytes_to_write) {
-                       int n = jtag_libusb_bulk_write(adapter, IN_EP,
-                               (char *) ft232r_output + total_written,
-                               bytes_to_write, 1000);
+                       int n;
 
-                       if (n == 0) {
+                       if (jtag_libusb_bulk_write(adapter, IN_EP,
+                                                  (char *) ft232r_output + total_written,
+                                                  bytes_to_write, 1000, &n) != ERROR_OK) {
                                LOG_ERROR("usb bulk write failed");
                                return ERROR_JTAG_DEVICE_ERROR;
                        }
@@ -147,12 +147,10 @@ static int ft232r_send_recv(void)
 
                /* Read */
                uint8_t reply[64];
+               int n;
 
-               int n = jtag_libusb_bulk_read(adapter, OUT_EP,
-                       (char *) reply,
-                       sizeof(reply), 1000);
-
-               if (n == 0) {
+               if (jtag_libusb_bulk_read(adapter, OUT_EP, (char *) reply,
+                                         sizeof(reply), 1000, &n) != ERROR_OK) {
                        LOG_ERROR("usb bulk read failed");
                        return ERROR_JTAG_DEVICE_ERROR;
                }
@@ -914,17 +912,21 @@ static int syncbb_execute_queue(void)
        return retval;
 }
 
-struct jtag_interface ft232r_interface = {
-       .name = "ft232r",
-       .commands = ft232r_command_handlers,
-       .transports = jtag_only,
+static struct jtag_interface ft232r_interface = {
        .supported = DEBUG_CAP_TMS_SEQ,
-
        .execute_queue = syncbb_execute_queue,
+};
+
+struct adapter_driver ft232r_adapter_driver = {
+       .name = "ft232r",
+       .transports = jtag_only,
+       .commands = ft232r_command_handlers,
 
-       .speed = ft232r_speed,
        .init = ft232r_init,
        .quit = ft232r_quit,
-       .speed_div = ft232r_speed_div,
+       .speed = ft232r_speed,
        .khz = ft232r_khz,
+       .speed_div = ft232r_speed_div,
+
+       .jtag_ops = &ft232r_interface,
 };