From 58d6f20748e6b33677da3b4a388ac3b8fcaa12f7 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sun, 20 Apr 2014 19:57:02 +0200 Subject: [PATCH] asix-sigma: Read position only in CAPTURE state Check the position of ForceStop and Trigger events only in case we are in CAPTURE state, it's useless to do this unconditionally when receive_data() is called. Signed-off-by: Marek Vasut --- hardware/asix-sigma/asix-sigma.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index 98607027..4d8f2383 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -1136,13 +1136,14 @@ static int receive_data(int fd, int revents, void *cb_data) sdi = cb_data; devc = sdi->priv; - /* Get the current position. */ - sigma_read_pos(&devc->state.stoppos, &devc->state.triggerpos, devc); - if (devc->state.state == SIGMA_IDLE) return TRUE; if (devc->state.state == SIGMA_CAPTURE) { + /* Get the current position. */ + sigma_read_pos(&devc->state.stoppos, &devc->state.triggerpos, + devc); + numchunks = (devc->state.stoppos + 511) / 512; /* Check if the timer has expired, or memory is full. */