scpi_usbtmc_libusb: disable bulk_out clear_halt for Rigol DS1000
fix hangup issue with Rigol firmware version 00.02.02.02.00
This commit is contained in:
parent
eb28f1b7b2
commit
50e6311a1b
|
@ -43,6 +43,7 @@ struct scpi_usbtmc_libusb {
|
|||
int response_length;
|
||||
int response_bytes_read;
|
||||
int remaining_length;
|
||||
int rigol_ds1000;
|
||||
};
|
||||
|
||||
/* Some USBTMC-specific enums, as defined in the USBTMC standard. */
|
||||
|
@ -234,6 +235,8 @@ static int scpi_usbtmc_libusb_open(void *priv)
|
|||
}
|
||||
}
|
||||
found = 1;
|
||||
uscpi->rigol_ds1000 = des.idVendor == 0x1ab1 &&
|
||||
des.idProduct == 0x0588;
|
||||
}
|
||||
libusb_free_config_descriptor(confdes);
|
||||
if (found)
|
||||
|
@ -272,6 +275,7 @@ static int scpi_usbtmc_libusb_open(void *priv)
|
|||
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));
|
||||
|
@ -527,6 +531,7 @@ static int scpi_usbtmc_libusb_close(void *priv)
|
|||
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));
|
||||
|
|
Loading…
Reference in New Issue