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)
committerThierry Reding <treding@nvidia.com>
Fri, 8 May 2020 10:42:33 +0000 (12:42 +0200)
commit566c05f7cd9a5c6a257d19d4fb91ce35b3b27fb6
tree513442eb53fa2d181d0ab1c195ad2f0dfb952ced
parent26ca88aaea26cce966e4c9c4eaf2e0bb9a9f28ea
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: Thierry Reding <treding@nvidia.com>
drivers/i2c/busses/i2c-tegra.c