X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Ffx2lafw%2Fprotocol.c;h=11e3504e7948b7b6a8899fe51f9e601d85181ab5;hb=94b138a3c3d07cf5581c07536c53a97cebf885d9;hp=7c230f71144560630ff91bf22f9586f7fd9fdda0;hpb=a7d7f93c1ba6f08c243b894dda29b8ac0349bf10;p=libsigrok.git diff --git a/src/hardware/fx2lafw/protocol.c b/src/hardware/fx2lafw/protocol.c index 7c230f71..11e3504e 100644 --- a/src/hardware/fx2lafw/protocol.c +++ b/src/hardware/fx2lafw/protocol.c @@ -21,6 +21,7 @@ #include #include #include "protocol.h" +#include "dslogic.h" #pragma pack(push, 1) @@ -37,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) { @@ -44,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.", @@ -62,9 +65,9 @@ static int command_get_revid_version(struct sr_dev_inst *sdi, uint8_t *revid) libusb_device_handle *devhdl = usb->devhdl; int cmd, ret; - cmd = devc->dslogic ? CMD_DSLOGIC_GET_REVID_VERSION : CMD_GET_REVID_VERSION; + 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)); @@ -107,7 +110,7 @@ SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi) delay = SR_MHZ(30) / samplerate - 1; } - sr_info("GPIF delay = %d, clocksource = %sMHz.", delay, + sr_dbg("GPIF delay = %d, clocksource = %sMHz.", delay, (cmd.flags & CMD_START_FLAGS_CLK_48MHZ) ? "48" : "30"); if (delay <= 0 || delay > MAX_SAMPLE_DELAY) { @@ -125,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)); @@ -139,7 +142,7 @@ SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi) * Check the USB configuration to determine if this is an fx2lafw device. * * @return TRUE if the device's configuration profile matches fx2lafw - * configuration, FALSE otherwise. + * configuration, FALSE otherwise. */ SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer, const char *product) @@ -162,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; @@ -372,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; @@ -395,8 +398,8 @@ SR_PRIV void fx2lafw_receive_transfer(struct libusb_transfer *transfer) return; } - sr_info("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;