Clean up the way decode_chunk_ts() is called a little. Introduce a variable which will not be -1 only in case a trigger happened on the particular DRAM line.
Signed-off-by: Marek Vasut <[email protected]> --- hardware/asix-sigma/asix-sigma.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index a4d6076..e573732 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -1083,7 +1083,7 @@ static int download_capture(struct sr_dev_inst *sdi) uint32_t i; uint32_t dl_lines_total, dl_lines_curr, dl_lines_done; uint32_t dl_trailing_events; - uint32_t trg_line; + uint32_t trg_line = ~0; dram_line = g_try_malloc0(chunks_per_read * sizeof(*dram_line)); if (!dram_line) @@ -1106,8 +1106,6 @@ static int download_capture(struct sr_dev_inst *sdi) modestatus = sigma_get_register(READ_MODE, devc); if (modestatus & 0x20) trg_line = triggerpos >> 9; - else - trg_line = ~0; /* * Determine how many 1024b "DRAM lines" do we need to read from the @@ -1135,22 +1133,19 @@ static int download_capture(struct sr_dev_inst *sdi) for (i = 0; i < dl_lines_curr; i++) { uint32_t dl_limit = 0; + int trigger_line = -1; /* The last "DRAM line" can be only partially full. */ if (dl_lines_done + i == dl_lines_total - 1) dl_limit = dl_trailing_events; + /* Test if the trigger happened on this line. */ if (dl_lines_done + i == trg_line) - decode_chunk_ts(buf + (i * CHUNK_SIZE), - &devc->state.lastts, - &devc->state.lastsample, - triggerpos & 0x1ff, - dl_limit, sdi); - else - decode_chunk_ts(buf + (i * CHUNK_SIZE), - &devc->state.lastts, - &devc->state.lastsample, - -1, - dl_limit, sdi); + trigger_line = trg_line; + + decode_chunk_ts(buf + (i * CHUNK_SIZE), + &devc->state.lastts, + &devc->state.lastsample, + trigger_line, dl_limit, sdi); } dl_lines_done += dl_lines_curr; -- 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

