i2c-imx: do not allow interruptions when waiting for I2C to complete
authorMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 21 Jun 2010 07:27:05 +0000 (09:27 +0200)
committerBen Dooks <ben-linux@fluff.org>
Mon, 18 Oct 2010 00:29:04 +0000 (01:29 +0100)
commite39428d53d080ad2615b772d7f99d2a70c2aaab2
treeb6f1ad2bccdaf5576597797a6fdeb97e9f9be3b6
parentc5b4afec8e669bbe265daea24037fccfc42c4fe3
i2c-imx: do not allow interruptions when waiting for I2C to complete

The i2c_imx_trx_complete() function is using
wait_event_interruptible_timeout() to wait for the I2C controller to
signal that it has completed an I2C bus operation. If the process that
causes the I2C operation receives a signal, the wait will be
interrupted, returning an error. It is better to let the I2C operation
finished before handling the signal (i.e. returning into userspace).

It is safe to use wait_event_timeout() instead, because the timeout
will allow the process to exit if the I2C bus hangs. It's also better
to allow the I2C operation to finish, because unacknowledged I2C
operations can cause the I2C bus to hang.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
drivers/i2c/busses/i2c-imx.c