Browse Source

staging: nvec: Add battery quirk to ignore incomplete responses

The nvec_power system polls nvec for battery information. In some
cases, that part seems to be overloaded and unable to respond
fast in which case it sends an incomplete response. We need to
mark the transfer as completed, though, in order to prevent
endless retries which can kill nvec.

Signed-off-by: Julian Andres Klode <jak@jak-linux.org>
Acked-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Julian Andres Klode 14 years ago
parent
commit
d6bdcf2e10
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/staging/nvec/nvec.c

+ 5 - 0
drivers/staging/nvec/nvec.c

@@ -446,6 +446,11 @@ static void nvec_rx_completed(struct nvec_chip *nvec)
 
 		nvec_msg_free(nvec, nvec->rx);
 		nvec->state = 0;
+
+		/* Battery quirk - Often incomplete, and likes to crash */
+		if (nvec->rx->data[0] == NVEC_BAT)
+			complete(&nvec->ec_transfer);
+
 		return;
 	}