From: Gerhard Sittig Date: Fri, 26 May 2017 00:18:33 +0000 (+0200) Subject: asix-sigma: Fixup the download of the last data acquisition chunk X-Git-Tag: libsigrok-0.5.0~33 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=547c4cdc60ad5c463e37c57d82dd33111061ac86;p=libsigrok.git asix-sigma: Fixup the download of the last data acquisition chunk Correctly determine the size of a download chunk for the last DRAM row that's involved in the recent data acquisition. This commit is based on work done by jry@. This addresses bug #838 (trailing garbage). It's assumed that the previously downloaded excess data was "swallowed" by the sample count enforcement logic that was applied earlier, so the (remainder of the) issue could have gone unnoticed, unless some other termination condition than sample count was used. --- diff --git a/src/hardware/asix-sigma/protocol.c b/src/hardware/asix-sigma/protocol.c index 6fda3908..a80e4d10 100644 --- a/src/hardware/asix-sigma/protocol.c +++ b/src/hardware/asix-sigma/protocol.c @@ -1076,7 +1076,7 @@ static int download_capture(struct sr_dev_inst *sdi) while (dl_lines_total > dl_lines_done) { /* We can download only up-to 32 DRAM lines in one go! */ - dl_lines_curr = MIN(chunks_per_read, dl_lines_total); + dl_lines_curr = MIN(chunks_per_read, dl_lines_total - dl_lines_done); bufsz = sigma_read_dram(dl_lines_done, dl_lines_curr, (uint8_t *)dram_line, devc);