i2c: tegra: Wait for config load atomically while in ISR
authorMikko Perttunen <mperttunen@nvidia.com>
Mon, 11 Jan 2021 16:08:32 +0000 (18:08 +0200)
committerWolfram Sang <wsa@kernel.org>
Mon, 11 Jan 2021 21:38:22 +0000 (22:38 +0100)
commit27b7c6e096264cc7b91bb80a4f65f8c0a66f079f
treeb159892cc68e17e7b6a4cf89e6da2d5b89d83cda
parent7c53f6b671f4aba70ff15e1b05148b10d58c2837
i2c: tegra: Wait for config load atomically while in ISR

Upon a communication error, the interrupt handler can call
tegra_i2c_disable_packet_mode. This causes a sleeping poll to happen
unless the current transaction was marked atomic. Fix this by
making the poll happen atomically if we are in an IRQ.

This matches the behavior prior to the patch mentioned
in the Fixes tag.

Fixes: ede2299f7101 ("i2c: tegra: Support atomic transfers")
Cc: stable@vger.kernel.org
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-tegra.c