spi: spl022: fix sleeping in interrupt context
authorMark Brown <broonie@kernel.org>
Mon, 4 Dec 2023 12:31:42 +0000 (12:31 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 4 Dec 2023 12:31:42 +0000 (12:31 +0000)
commit06891af2709b5dfa4081ff1f07b9f4c2743834b7
tree672f337b94d3af79268a54b5307af1392f708a1a
parent7a030abc0185b30a3fd19a7431347c6f5a82c588
parent9b2ef250b31d46f7ef522bd1bd84942f998bb3f9
spi: spl022: fix sleeping in interrupt context

Merge series from Nam Cao <namcao@linutronix.de>:

While running the spl022, I got the following warning:
BUG: sleeping function called from invalid context at drivers/spi/spi.c:1428

This is because between spi transfers, spi_transfer_delay_exec() (who
may sleep if the delay is >10us) is called in interrupt context. This is
a problem for anyone who runs this driver and need more than 10us delay.

Patch 1 adds an error reporting mechanism, needed by patch 2 who switch
to use the default spi_transfer_one_message(), which fix the problem.

The series is tested with polling transfer mode and interrupt transfer
mode. I can't test the DMA mode, so some help testing here is very
appreciated.
MAINTAINERS
include/linux/spi/spi.h