sr: fx2lafw: Abort pending transfers when sampling is stopped
authorLars-Peter Clausen <lars@metafoo.de>
Tue, 3 Jul 2012 21:58:38 +0000 (23:58 +0200)
committerBert Vermeulen <bert@biot.com>
Tue, 3 Jul 2012 23:11:50 +0000 (01:11 +0200)
commitfcf61b6a47c488bc1bf8448cf8a895f29b875aec
treecda18b978492c50fce4d668ff3f7baf66bfff05b
parent465095386c602a6513f41c76c04a61fafe2d8764
sr: fx2lafw: Abort pending transfers when sampling is stopped

The recent reworks of the fx2lafw made sure that the total buffer size is large
enough hold 500ms of data. This was done to improve performance and stability.
That the timeout value for a transfer was also increased to over 500ms, a side
effect of this is that when sampling is stopped there will be a additional delay
of 500ms. This is because the driver waits for all transfers to be freed
before it sends a SR_DF_END packet. Once sampling has stopped this will only
happen once a transfer times out. This patch cancels all pending transfers when
sampling is stopped, this will cause them to be freed almost immediately and the
additional delay will disappear.

Also make sure, that if we know, that we just have received the last transfer to
not resubmit this transfer again.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
libsigrok/hardware/fx2lafw/fx2lafw.c
libsigrok/hardware/fx2lafw/fx2lafw.h