On 18/05/2021 10:43, Tony Lindgren wrote: > There's no need to restore DMA context on CPU_CLUSTER_PM_ENTER_FAILED as > the DMA context won't be lost on errors. > > Note that this does not cause invalid context restore as we already check > for busy DMA with omap_dma_busy() in CPU_CLUSTER_PM_ENTER, and block any > deeper idle states for the SoC by returning NOTIFY_BAD if busy. > > If other drivers block deeper idle states with cpu_pm, we now just do a > pointless restore, but only if dma was not busy on CPU_CLUSTER_PM_ENTER. > > Let's update the CPU_CLUSTER_PM_ENTER_FAILED handling for correctness, > and add a comment. Make sense, Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxx> > Cc: Aaro Koskinen <aaro.koskinen@xxxxxx> > Cc: Adam Ford <aford173@xxxxxxxxx> > Cc: Andreas Kemnade <andreas@xxxxxxxxxxxx> > Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > drivers/dma/ti/omap-dma.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c > --- a/drivers/dma/ti/omap-dma.c > +++ b/drivers/dma/ti/omap-dma.c > @@ -1608,7 +1608,8 @@ static int omap_dma_context_notifier(struct notifier_block *nb, > return NOTIFY_BAD; > omap_dma_context_save(od); > break; > - case CPU_CLUSTER_PM_ENTER_FAILED: > + case CPU_CLUSTER_PM_ENTER_FAILED: /* No need to restore context */ > + break; > case CPU_CLUSTER_PM_EXIT: > omap_dma_context_restore(od); > break; > -- Péter