]> git.baikalelectronics.ru Git - kernel.git/commit
i2c: designware: fix poll-after-enable regression
authorAlexander Monakov <amonakov@ispras.ru>
Sat, 28 Apr 2018 13:56:06 +0000 (16:56 +0300)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 10 May 2018 10:30:20 +0000 (12:30 +0200)
commit68a5e4862d4efe62b48637c01d52825e2a95c578
tree06acef331b438d39e151dd3b2ab909bbc5c0d690
parentacf35ddd98f2303df8a1a9dfa778b1b7c07f29b9
i2c: designware: fix poll-after-enable regression

Not all revisions of DW I2C controller implement the enable status register.
On platforms where that's the case (e.g. BG2CD and SPEAr ARM SoCs), waiting
for enable will time out as reading the unimplemented register yields zero.

It was observed that reading the IC_ENABLE_STATUS register once suffices to
avoid getting it stuck on Bay Trail hardware, so replace polling with one
dummy read of the register.

Fixes: 22397face603 ("i2c: designware: must wait for enable")
Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
Tested-by: Ben Gardner <gardner.ben@gmail.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
drivers/i2c/busses/i2c-designware-master.c