]> git.baikalelectronics.ru Git - kernel.git/commit
i2c: Revert "i2c: xiic: Do not reset controller before every transfer"
authorLars-Peter Clausen <lars@metafoo.de>
Mon, 16 Nov 2015 13:42:03 +0000 (14:42 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Fri, 20 Nov 2015 15:04:59 +0000 (16:04 +0100)
commitc8a5b6e8f7106faa9a1b9fa8d87680a8017f8ce4
tree5b54c322b854060ed62d5edd0573e9952d0ccadc
parentf9d42cffa915fca3ac2dadb5ea2a3e762a13d053
i2c: Revert "i2c: xiic: Do not reset controller before every transfer"

Commit f3ccda9e7316 ("i2c: xiic: Do not reset controller before every
transfer") removed the reinitialization of the controller before the start
of each transfer. Apparently this change is not safe to make and the commit
results in random I2C bus failures.

An easy way to trigger the issue is to run i2cdetect.

Without the patch applied:
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 30: -- -- -- -- -- -- -- -- UU UU -- UU 3c -- -- UU
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 70: -- -- -- -- -- -- -- --

With the patch applied every other or so invocation:
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
 20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
 30: -- -- -- -- -- -- -- -- UU UU -- UU 3c -- -- UU
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 70: -- -- -- -- -- -- -- --

So revert the commit for now.

Fixes: f3ccda9e7316 ("i2c: xiic: Do not reset controller before every transfer")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Shubhrajyoti Datta <shubhraj@xilinx.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-xiic.c