Explorar el Código

i2c: xiic: Do not continue in case of errors in Rx

In case of error conditions like Arbitration lost or NACK lets signal
the waiting process.

Handle error cases in the Rx path

Signed-off-by: Shubhrajyoti Datta <shubhraj@xilinx.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Shubhrajyoti Datta hace 10 años
padre
commit
6b0c8dc310
Se han modificado 1 ficheros con 2 adiciones y 0 borrados
  1. 2 0
      drivers/i2c/busses/i2c-xiic.c

+ 2 - 0
drivers/i2c/busses/i2c-xiic.c

@@ -399,6 +399,8 @@ static irqreturn_t xiic_process(int irq, void *dev_id)
 		 */
 		xiic_reinit(i2c);
 
+		if (i2c->rx_msg)
+			xiic_wakeup(i2c, STATE_ERROR);
 		if (i2c->tx_msg)
 			xiic_wakeup(i2c, STATE_ERROR);
 	}