sr: fx2lafw: Do not start a new acquisition if the old is still running

This may happen if the acquisition_start is called right after calling
acquisition_stop and not all transfers have been freed or on repeated calls to
acquisition_start. If it happens we'll enter an undefined state and all kind of
strange behavior may occur, so error out in such a case.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2012-07-03 23:58:39 +02:00 committed by Bert Vermeulen
parent 0caa1ef0cb
commit c03f045004
1 changed files with 4 additions and 0 deletions

View File

@ -918,6 +918,10 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data)
if (!(sdi = sr_dev_inst_get(dev_insts, dev_index)))
return SR_ERR;
ctx = sdi->priv;
if (ctx->submitted_transfers != 0)
return SR_ERR;
ctx->session_dev_id = cb_data;
ctx->num_samples = 0;
ctx->empty_transfer_count = 0;