X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fcommon%2Fscpi_usbtmc_libusb.c;h=653a0d8c9f4f79f99f76490d7d9ae5ce0131222f;hb=b5bbc3f1b00d5f3096c6800af4069fb07704d3a9;hp=f6c18d9316328050123cb0111aa2383ce408ec46;hpb=50e6311a1b76ead9e082d99bdea91c1cba08fd4e;p=libsigrok.git diff --git a/hardware/common/scpi_usbtmc_libusb.c b/hardware/common/scpi_usbtmc_libusb.c index f6c18d93..653a0d8c 100644 --- a/hardware/common/scpi_usbtmc_libusb.c +++ b/hardware/common/scpi_usbtmc_libusb.c @@ -270,12 +270,12 @@ static int scpi_usbtmc_libusb_open(void *priv) return SR_ERR; } + if (!uscpi->rigol_ds1000) { if ((ret = libusb_clear_halt(usb->devhdl, uscpi->bulk_in_ep)) < 0) { sr_err("Failed to clear halt/stall condition for EP %d: %s.", uscpi->bulk_in_ep, libusb_error_name(ret)); return SR_ERR; } - if (!uscpi->rigol_ds1000) if ((ret = libusb_clear_halt(usb->devhdl, uscpi->bulk_out_ep)) < 0) { sr_err("Failed to clear halt/stall condition for EP %d: %s.", uscpi->bulk_out_ep, libusb_error_name(ret)); @@ -286,6 +286,7 @@ static int scpi_usbtmc_libusb_open(void *priv) uscpi->interrupt_ep, libusb_error_name(ret)); return SR_ERR; } + } /* Get capabilities. */ ret = libusb_control_transfer(usb->devhdl, @@ -316,7 +317,7 @@ static int scpi_usbtmc_libusb_open(void *priv) } static int scpi_usbtmc_libusb_source_add(void *priv, int events, int timeout, - sr_receive_data_callback_t cb, void *cb_data) + sr_receive_data_callback cb, void *cb_data) { struct scpi_usbtmc_libusb *uscpi = priv; (void)events; @@ -528,16 +529,17 @@ static int scpi_usbtmc_libusb_close(void *priv) if (!usb->devhdl) return SR_ERR; + if (!uscpi->rigol_ds1000) { if ((ret = libusb_clear_halt(usb->devhdl, uscpi->bulk_in_ep)) < 0) sr_err("Failed to clear halt/stall condition for EP %d: %s.", uscpi->bulk_in_ep, libusb_error_name(ret)); - if (!uscpi->rigol_ds1000) if ((ret = libusb_clear_halt(usb->devhdl, uscpi->bulk_out_ep)) < 0) sr_err("Failed to clear halt/stall condition for EP %d: %s.", uscpi->bulk_out_ep, libusb_error_name(ret)); if ((ret = libusb_clear_halt(usb->devhdl, uscpi->interrupt_ep)) < 0) sr_err("Failed to clear halt/stall condition for EP %d: %s.", uscpi->interrupt_ep, libusb_error_name(ret)); + } if ((ret = libusb_release_interface(usb->devhdl, uscpi->interface)) < 0) sr_err("Failed to release interface: %s.",