i2c: tegra: Better handle case where CPU0 is busy for a long time
authorDmitry Osipenko <digetx@gmail.com>
Tue, 24 Mar 2020 19:12:16 +0000 (22:12 +0300)
committerWolfram Sang <wsa@the-dreams.de>
Wed, 15 Apr 2020 16:27:25 +0000 (18:27 +0200)
commita900aeac253729411cf33c6cb598c152e9e4137f
tree6da7d9aa0522bc6423900ba220f7a2b4baf94939
parent3c1d1613be80c2e17f1ddf672df1d8a8caebfd0d
i2c: tegra: Better handle case where CPU0 is busy for a long time

Boot CPU0 always handle I2C interrupt and under some rare circumstances
(like running KASAN + NFS root) it may stuck in uninterruptible state for
a significant time. In this case we will get timeout if I2C transfer is
running on a sibling CPU, despite of IRQ being raised. In order to handle
this rare condition, the IRQ status needs to be checked after completion
timeout.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-tegra.c