]> sigrok.org Git - libsigrok.git/commitdiff
asix-sigma: Propagate errors from firmware upload
authorGerhard Sittig <redacted>
Sun, 25 Jun 2017 10:01:43 +0000 (12:01 +0200)
committerUwe Hermann <redacted>
Tue, 27 Jun 2017 11:28:25 +0000 (13:28 +0200)
The firmware upload code paths in the asix-sigma driver used to return
either the SR_OK code, or the magic number 0 for error conditions. Which
happens to be identical and cannot be told apart by callers.

Provide proper SR_ERR return codes for error conditions, such that
callers can tell whether the firmware upload succeeded.

This fixes part of bug #471.

Suggested-By: Marian Cingel <redacted>
src/hardware/asix-sigma/protocol.c

index 48de1b954ba4559d1de20f6355335212cffbb2f8..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. */