Reorder the sigma_capture_mode() function so that the part which handles the download of samples from Sigma is clearly separated from the tests if the download should be started.
Signed-off-by: Marek Vasut <[email protected]> --- hardware/asix-sigma/asix-sigma.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index e7fa7d3..cdc0988 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -1134,23 +1134,26 @@ static int sigma_capture_mode(struct sr_dev_inst *sdi) struct sr_datafeed_packet packet; uint64_t running_msec; struct timeval tv; - int numchunks; uint8_t modestatus; - /* Get the current position. */ - sigma_read_pos(&devc->state.stoppos, &devc->state.triggerpos, - devc); - - numchunks = (devc->state.stoppos + 511) / 512; + uint32_t stoppos, triggerpos; - /* Check if the timer has expired, or memory is full. */ + /* Check if the selected sampling duration passed. */ gettimeofday(&tv, 0); running_msec = (tv.tv_sec - devc->start_tv.tv_sec) * 1000 + - (tv.tv_usec - devc->start_tv.tv_usec) / 1000; + (tv.tv_usec - devc->start_tv.tv_usec) / 1000; + if (running_msec >= devc->limit_msec) + goto download; - if (running_msec < devc->limit_msec && numchunks < 32767) - /* Still capturing. */ - return TRUE; + /* Get the position in DRAM to which the FPGA is writing now. */ + sigma_read_pos(&stoppos, &triggerpos, devc); + /* Test if DRAM is full and if so, download the data. */ + if ((stoppos >> 9) == 32767) + goto download; + + return TRUE; + +download: /* Stop acquisition. */ sigma_set_register(WRITE_MODE, 0x11, devc); -- 1.8.5.3 ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ sigrok-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sigrok-devel

