spi: axi-spi-engine: add watchdog timer
authorDavid Lechner <dlechner@baylibre.com>
Mon, 4 Dec 2023 17:33:35 +0000 (11:33 -0600)
committerMark Brown <broonie@kernel.org>
Wed, 6 Dec 2023 14:19:36 +0000 (14:19 +0000)
commit07d33c2810bb5fe67747d11f76980ed68602e287
treea6f75bb44fde74a6bc428538e6e78ca28f5b8d63
parent0db60d821e485a1c9b8080dbec1ba9871efb6a65
spi: axi-spi-engine: add watchdog timer

If there is an issue with the AXI SPI Engine hardware a scheduled
transfer might never be completed and spi_sync() will block forever.
This due to the uninterruptible wait for completion waiting for the
spi_finalize_current_message() that never comes.

Add a watchdog timer that will abort a transfer 5 seconds after it has
been started. This will potentially leave the hardware in a broken state
but it allows software to recover and allow to better diagnose the
underlying issue.

Co-developed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20231204-axi-spi-engine-series-2-v1-9-063672323fce@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-axi-spi-engine.c