Factor out common ezusb_upload_firmware().
This commit is contained in:
parent
9d2933fbe9
commit
edf60d0575
|
@ -78,3 +78,38 @@ int ezusb_install_firmware(libusb_device_handle *hdl, const char *filename)
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ezusb_upload_firmware(libusb_device *dev, int configuration,
|
||||||
|
const char *filename)
|
||||||
|
{
|
||||||
|
struct libusb_device_handle *hdl;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
g_message("uploading firmware to device on %d.%d",
|
||||||
|
libusb_get_bus_number(dev), libusb_get_device_address(dev));
|
||||||
|
|
||||||
|
err = libusb_open(dev, &hdl);
|
||||||
|
if (err != 0) {
|
||||||
|
g_warning("failed to open device: %d", err);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = libusb_set_configuration(hdl, configuration);
|
||||||
|
if (err != 0) {
|
||||||
|
g_warning("Unable to set configuration: %d", err);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ezusb_reset(hdl, 1)) < 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (ezusb_install_firmware(hdl, filename) != 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if ((ezusb_reset(hdl, 0)) < 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
libusb_close(hdl);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -275,34 +275,10 @@ struct sigrok_device_instance *sl_open_device(int device_index)
|
||||||
|
|
||||||
int upload_firmware(libusb_device *dev)
|
int upload_firmware(libusb_device *dev)
|
||||||
{
|
{
|
||||||
struct libusb_device_handle *hdl;
|
int ret;
|
||||||
int err;
|
|
||||||
|
|
||||||
g_message("uploading firmware to device on %d.%d",
|
if (ret = ezusb_upload_firmware(dev, USB_CONFIGURATION, FIRMWARE) != 0)
|
||||||
libusb_get_bus_number(dev), libusb_get_device_address(dev));
|
|
||||||
|
|
||||||
err = libusb_open(dev, &hdl);
|
|
||||||
if (err != 0) {
|
|
||||||
g_warning("failed to open device: %d", err);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
err = libusb_set_configuration(hdl, USB_CONFIGURATION);
|
|
||||||
if (err != 0) {
|
|
||||||
g_warning("Unable to set configuration: %d", err);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((ezusb_reset(hdl, 1)) < 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (ezusb_install_firmware(hdl, FIRMWARE) != 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if ((ezusb_reset(hdl, 0)) < 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
libusb_close(hdl);
|
|
||||||
|
|
||||||
/* Remember when the last firmware update was done. */
|
/* Remember when the last firmware update was done. */
|
||||||
g_get_current_time(&firmware_updated);
|
g_get_current_time(&firmware_updated);
|
||||||
|
|
2
sigrok.h
2
sigrok.h
|
@ -394,6 +394,8 @@ int session_save(char *filename);
|
||||||
|
|
||||||
int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
|
int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
|
||||||
int ezusb_install_firmware(libusb_device_handle *hdl, char *filename);
|
int ezusb_install_firmware(libusb_device_handle *hdl, char *filename);
|
||||||
|
int ezusb_upload_firmware(libusb_device *dev, int configuration,
|
||||||
|
const char *filename);
|
||||||
|
|
||||||
GSList *list_serial_ports(void);
|
GSList *list_serial_ports(void);
|
||||||
int serial_open(const char *pathname, int flags);
|
int serial_open(const char *pathname, int flags);
|
||||||
|
|
Loading…
Reference in New Issue