linux/drivers/i2c
Marc Kleine-Budde e39428d53d 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>
2010-10-18 01:29:04 +01:00
..
algos i2c-algo-pca: Fix coding style issues 2010-05-21 18:41:00 +02:00
busses i2c-imx: do not allow interruptions when waiting for I2C to complete 2010-10-18 01:29:04 +01:00
muxes i2c: I2C bus multiplexer driver pca954x 2010-08-11 18:21:03 +02:00
i2c-boardinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i2c-core.c of/i2c: Fix module load order issue caused by of_i2c.c 2010-09-30 14:14:23 +02:00
i2c-core.h i2c: Use rwsem instead of mutex for board info 2009-06-19 16:58:20 +02:00
i2c-dev.c i2c: Multiplexed I2C bus core support 2010-08-11 18:21:02 +02:00
i2c-mux.c i2c: Multiplexed I2C bus core support 2010-08-11 18:21:02 +02:00
i2c-smbus.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
Kconfig i2c: I2C bus multiplexer driver pca954x 2010-08-11 18:21:03 +02:00
Makefile i2c: I2C bus multiplexer driver pca954x 2010-08-11 18:21:03 +02:00