diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c index ed5b0993edfa794c0bd477a07dd74386aeb3554a..3a2adb131d462597c2ee07fe7819de75e4ef239e 100644 --- a/drivers/dma/sh/shdma-base.c +++ b/drivers/dma/sh/shdma-base.c @@ -391,6 +391,8 @@ static dma_async_tx_callback __ld_cleanup(struct shdma_chan *schan, bool all) dev_dbg(schan->dev, "Bring down channel %d\n", schan->id); pm_runtime_put(schan->dev); schan->pm_state = SHDMA_PM_ESTABLISHED; + } else if (schan->pm_state == SHDMA_PM_PENDING) { + shdma_chan_xfer_ld_queue(schan); } } }