]> sigrok.org Git - libsigrok.git/commitdiff
asix-sigma: mark FPGA config phase in "state" of dev context
authorGerhard Sittig <redacted>
Sun, 10 May 2020 18:06:16 +0000 (20:06 +0200)
committerGerhard Sittig <redacted>
Fri, 29 May 2020 05:50:18 +0000 (07:50 +0200)
FPGA configuration (netlist upload) of ASIX SIGMA devices is rather
special a phase, and deserves its own state in the device context's
"state" tracking. Not only is the logic analyzer not available during
this period, the FTDI cable is also put into bitbanging mode instead
of regular data communication in FIFO mode, and netlist configuration
takes a considerable amount of time (tenths of a second).

src/hardware/asix-sigma/protocol.c
src/hardware/asix-sigma/protocol.h

index fe90274f22c6ef557fce15c9d0434be97e78afdb..7405c8fdfdd51e7b920acdc9726e07e74a22f870 100644 (file)
@@ -511,6 +511,8 @@ static int upload_firmware(struct sr_context *ctx,
                return SR_OK;
        }
 
+       devc->state.state = SIGMA_CONFIG;
+
        /* Set the cable to bitbang mode. */
        ret = ftdi_set_bitmode(&devc->ftdic, BB_PINMASK, BITMODE_BITBANG);
        if (ret < 0) {
@@ -561,6 +563,7 @@ static int upload_firmware(struct sr_context *ctx,
                return ret;
 
        /* Keep track of successful firmware download completion. */
+       devc->state.state = SIGMA_IDLE;
        devc->cur_firmware = firmware_idx;
        sr_info("Firmware uploaded.");
 
@@ -720,7 +723,6 @@ SR_PRIV int sigma_set_samplerate(const struct sr_dev_inst *sdi)
        if (ret == SR_OK) {
                devc->num_channels = num_channels;
                devc->samples_per_event = 16 / devc->num_channels;
-               devc->state.state = SIGMA_IDLE;
        }
 
        return ret;
index 1379b0710eabee2fcd3b1bc67088b932041bcf27..f1ffcd7c7e777f8e7ccd37aa64b261f2ca33294c 100644 (file)
@@ -284,6 +284,7 @@ enum triggerfunc {
 struct sigma_state {
        enum {
                SIGMA_UNINITIALIZED = 0,
+               SIGMA_CONFIG,
                SIGMA_IDLE,
                SIGMA_CAPTURE,
                SIGMA_STOPPING,