X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Ffx2lafw%2Fprotocol.c;h=11e3504e7948b7b6a8899fe51f9e601d85181ab5;hp=bd0d4fb89e69e2ce1b6ab464a5c1cc18d087d2b0;hb=55462b8ba9f48931de9b9a7bfbc182a1d113b3b5;hpb=6fcf3f0a22e3dd2467fd09b0cad92b36e0409fc4 diff --git a/src/hardware/fx2lafw/protocol.c b/src/hardware/fx2lafw/protocol.c index bd0d4fb8..11e3504e 100644 --- a/src/hardware/fx2lafw/protocol.c +++ b/src/hardware/fx2lafw/protocol.c @@ -38,6 +38,8 @@ struct cmd_start_acquisition { #pragma pack(pop) +#define USB_TIMEOUT 100 + static int command_get_fw_version(libusb_device_handle *devhdl, struct version_info *vi) { @@ -45,7 +47,7 @@ static int command_get_fw_version(libusb_device_handle *devhdl, ret = libusb_control_transfer(devhdl, LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_IN, CMD_GET_FW_VERSION, 0x0000, 0x0000, - (unsigned char *)vi, sizeof(struct version_info), 100); + (unsigned char *)vi, sizeof(struct version_info), USB_TIMEOUT); if (ret < 0) { sr_err("Unable to get version info: %s.", @@ -65,7 +67,7 @@ static int command_get_revid_version(struct sr_dev_inst *sdi, uint8_t *revid) cmd = devc->dslogic ? DS_CMD_GET_REVID_VERSION : CMD_GET_REVID_VERSION; ret = libusb_control_transfer(devhdl, LIBUSB_REQUEST_TYPE_VENDOR | - LIBUSB_ENDPOINT_IN, cmd, 0x0000, 0x0000, revid, 1, 100); + LIBUSB_ENDPOINT_IN, cmd, 0x0000, 0x0000, revid, 1, USB_TIMEOUT); if (ret < 0) { sr_err("Unable to get REVID: %s.", libusb_error_name(ret)); @@ -126,7 +128,7 @@ SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi) /* Send the control message. */ ret = libusb_control_transfer(usb->devhdl, LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_OUT, CMD_START, 0x0000, 0x0000, - (unsigned char *)&cmd, sizeof(cmd), 100); + (unsigned char *)&cmd, sizeof(cmd), USB_TIMEOUT); if (ret < 0) { sr_err("Unable to send start command: %s.", libusb_error_name(ret)); @@ -163,13 +165,13 @@ SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer, if (libusb_get_string_descriptor_ascii(hdl, des.iManufacturer, strdesc, sizeof(strdesc)) < 0) break; - if (strncmp((const char *)strdesc, manufacturer, 6)) + if (strcmp((const char *)strdesc, manufacturer)) break; if (libusb_get_string_descriptor_ascii(hdl, des.iProduct, strdesc, sizeof(strdesc)) < 0) break; - if (strncmp((const char *)strdesc, product, 7)) + if (strcmp((const char *)strdesc, product)) break; ret = TRUE; @@ -373,7 +375,7 @@ static void resubmit_transfer(struct libusb_transfer *transfer) } -SR_PRIV void fx2lafw_receive_transfer(struct libusb_transfer *transfer) +SR_PRIV void LIBUSB_CALL fx2lafw_receive_transfer(struct libusb_transfer *transfer) { struct sr_dev_inst *sdi; struct dev_context *devc; @@ -396,8 +398,8 @@ SR_PRIV void fx2lafw_receive_transfer(struct libusb_transfer *transfer) return; } - sr_dbg("receive_transfer(): status %d received %d bytes.", - transfer->status, transfer->actual_length); + sr_dbg("receive_transfer(): status %s received %d bytes.", + libusb_error_name(transfer->status), transfer->actual_length); /* Save incoming transfer before reusing the transfer struct. */ unitsize = devc->sample_wide ? 2 : 1;