On Wed, Nov 29, 2023 at 2: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> > --- > Tested with polling mode and interrupt mode, NOT with DMA mode. > Support with testing very appreciated! Oh this is great! Because I think Mark started nagging me something like 10 years ago to fix this in this driver... I have a device using DMA mode, I will dig it out and make sure to get this tested ASAP, in the meantime: Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij