sr: fx2lafw: Move empty_transfer_count to device ctx
If one device is failing it should not affect the transfers of other devices. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
5af666a94e
commit
2769eed991
|
@ -708,8 +708,6 @@ static void resubmit_transfer(struct libusb_transfer *transfer)
|
||||||
|
|
||||||
static void receive_transfer(struct libusb_transfer *transfer)
|
static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
{
|
{
|
||||||
/* TODO: These statics have to move to the ctx struct. */
|
|
||||||
static int empty_transfer_count = 0;
|
|
||||||
gboolean packet_has_error = FALSE;
|
gboolean packet_has_error = FALSE;
|
||||||
struct sr_datafeed_packet packet;
|
struct sr_datafeed_packet packet;
|
||||||
struct sr_datafeed_logic logic;
|
struct sr_datafeed_logic logic;
|
||||||
|
@ -747,8 +745,8 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transfer->actual_length == 0 || packet_has_error) {
|
if (transfer->actual_length == 0 || packet_has_error) {
|
||||||
empty_transfer_count++;
|
ctx->empty_transfer_count++;
|
||||||
if (empty_transfer_count > MAX_EMPTY_TRANSFERS) {
|
if (ctx->empty_transfer_count > MAX_EMPTY_TRANSFERS) {
|
||||||
/*
|
/*
|
||||||
* The FX2 gave up. End the acquisition, the frontend
|
* The FX2 gave up. End the acquisition, the frontend
|
||||||
* will work out that the samplecount is short.
|
* will work out that the samplecount is short.
|
||||||
|
@ -760,7 +758,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
empty_transfer_count = 0;
|
ctx->empty_transfer_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
trigger_offset = 0;
|
trigger_offset = 0;
|
||||||
|
@ -902,6 +900,7 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data)
|
||||||
ctx = sdi->priv;
|
ctx = sdi->priv;
|
||||||
ctx->session_dev_id = cb_data;
|
ctx->session_dev_id = cb_data;
|
||||||
ctx->num_samples = 0;
|
ctx->num_samples = 0;
|
||||||
|
ctx->empty_transfer_count = 0;
|
||||||
|
|
||||||
const unsigned int timeout = get_timeout(ctx);
|
const unsigned int timeout = get_timeout(ctx);
|
||||||
const unsigned int num_transfers = get_number_of_transfers(ctx);
|
const unsigned int num_transfers = get_number_of_transfers(ctx);
|
||||||
|
|
|
@ -84,6 +84,7 @@ struct context {
|
||||||
|
|
||||||
int num_samples;
|
int num_samples;
|
||||||
int submitted_transfers;
|
int submitted_transfers;
|
||||||
|
int empty_transfer_count;
|
||||||
|
|
||||||
void *session_dev_id;
|
void *session_dev_id;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue