usb.c: Bail out of e1-tracer doesn't accept set_configuration(2)

This likely means it's not an e1-tracer after all, or it's an old
firmware that doesn't yet expose the e1d-compatible USB configuration.

Related: OS#5734
Change-Id: If5a9bc20084d84885d5d97b4f982e94801612d24
This commit is contained in:
Harald Welte 2022-11-01 18:24:29 +01:00
parent cfe7ab300e
commit 7533197639
1 changed files with 7 additions and 2 deletions

View File

@ -876,8 +876,13 @@ _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev, bool is_tr
}
/* we have prior knowledge that the e1-tracer firmware configuration 2 is the e1d compatible mode. */
if (is_tracer)
libusb_set_configuration(devh, 2);
if (is_tracer) {
if (libusb_set_configuration(devh, 2) != LIBUSB_SUCCESS) {
LOGP(DE1D, LOGL_ERROR, "Cannot set configuration 2 of e1-tracer device. Maybe too old firmware?\n");
libusb_close(devh);
return -EIO;
}
}
INIT_LLIST_HEAD(&intf_data->ctrl_inprogress);