On Wed, Nov 29, 2023 at 5:32 PM Nam Cao <namcao@xxxxxxxxxxxxx> wrote: > Except for polling mode, this driver's transfer_one_message() makes use > of interrupt handler and tasklet. This is problematic because > spi_transfer_delay_exec(), who may sleep, is called in interrupt handler > and tasklet. This causes the following warning: > BUG: sleeping function called from invalid context at drivers/spi/spi.c:1428 > > Switch to use the default spi_transfer_one_message() instead, which > calls spi_transfer_delay_exec() appropriately. > > Signed-off-by: Nam Cao <namcao@xxxxxxxxxxxxx> > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > Tested with polling mode and interrupt mode, NOT with DMA mode. > Support with testing very appreciated! FWIW I tested this now on a device using DMA for the transfers and everything works fine like before. Yours, Linus Walleij