]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/asix-sigma/protocol.c
asix-sigma: Propagate errors from firmware upload
[libsigrok.git] / src / hardware / asix-sigma / protocol.c
index 60c6a34843c6c415f55df1c02a78bb0f4d589e89..a81ec2f62f05344c877488ea1deeb9ebcc752cda 100644 (file)
@@ -462,14 +462,14 @@ static int upload_firmware(struct sr_context *ctx,
        if (ret < 0) {
                sr_err("ftdi_usb_open failed: %s",
                       ftdi_get_error_string(ftdic));
-               return 0;
+               return SR_ERR;
        }
 
        ret = ftdi_set_bitmode(ftdic, 0xdf, BITMODE_BITBANG);
        if (ret < 0) {
                sr_err("ftdi_set_bitmode failed: %s",
                       ftdi_get_error_string(ftdic));
-               return 0;
+               return SR_ERR;
        }
 
        /* Four times the speed of sigmalogan - Works well. */
@@ -477,7 +477,7 @@ static int upload_firmware(struct sr_context *ctx,
        if (ret < 0) {
                sr_err("ftdi_set_baudrate failed: %s",
                       ftdi_get_error_string(ftdic));
-               return 0;
+               return SR_ERR;
        }
 
        /* Initialize the FPGA for firmware upload. */
@@ -1138,7 +1138,7 @@ static int sigma_capture_mode(struct sr_dev_inst *sdi)
 {
        struct dev_context *devc;
        uint64_t running_msec;
-       struct timeval tv;
+       uint64_t current_time;
 
        devc = sdi->priv;
 
@@ -1146,9 +1146,8 @@ static int sigma_capture_mode(struct sr_dev_inst *sdi)
         * Check if the selected sampling duration passed. Sample count
         * limits are covered by this enforced timeout as well.
         */
-       gettimeofday(&tv, 0);
-       running_msec = (tv.tv_sec - devc->start_tv.tv_sec) * 1000 +
-                      (tv.tv_usec - devc->start_tv.tv_usec) / 1000;
+       current_time = g_get_monotonic_time();
+       running_msec = (current_time - devc->start_time) / 1000;
        if (running_msec >= devc->limit_msec)
                return download_capture(sdi);