linux/drivers/i2c
Ville Syrjala 8ee161ce5e i2c-algo-bit: Fix spurious SCL timeouts under heavy load
When the system is under heavy load, there can be a significant delay
between the getscl() and time_after() calls inside sclhi(). That delay
may cause the time_after() check to trigger after SCL has gone high,
causing sclhi() to return -ETIMEDOUT.

To fix the problem, double check that SCL is still low after the
timeout has been reached, before deciding to return -ETIMEDOUT.

Signed-off-by: Ville Syrjala <syrjala@sci.fi>
Cc: stable@vger.kernel.org
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2012-03-15 18:11:05 +01:00
..
algos i2c-algo-bit: Fix spurious SCL timeouts under heavy load 2012-03-15 18:11:05 +01:00
busses i2c: mxs: only flag completion when queue is completely done 2012-02-24 22:28:27 +01:00
muxes i2c/gpio-i2cmux: Convert to use module_platform_driver() 2012-01-12 20:32:04 +01:00
Kconfig doc: Kconfig: Typo: square -> squared 2011-07-11 14:22:32 +02:00
Makefile i2c: Deprecate i2c_driver.attach_adapter and .detach_adapter 2011-03-20 14:50:53 +01:00
i2c-boardinfo.c i2c: add export.h to i2c-boardinfo.c for EXPORT_SYMBOL 2011-10-31 19:31:29 -04:00
i2c-core.c i2c-core: Comment says "transmitted" but means "received" 2012-03-15 18:11:05 +01: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-dev: Use memdup_user 2012-01-12 20:32:04 +01:00
i2c-mux.c i2c: Mark i2c_adapter.id as deprecated 2010-11-15 22:40:38 +01:00
i2c-smbus.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00