The last param set in a transfer should always be pointing to dummy
param set in non-cyclic mode. When system wakes from low power state
EDMA PARAM slots may be reset to random values. Hence, re-initialize
dummy slot to dummy param set on system resume.

Signed-off-by: Vignesh R <vigne...@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfal...@ti.com>
---
 drivers/dma/edma.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 77242b37ef87..3879f80a4815 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -2451,6 +2451,9 @@ static int edma_pm_resume(struct device *dev)
        int i;
        s8 (*queue_priority_mapping)[2];
 
+       /* re initialize dummy slot to dummy param set */
+       edma_write_slot(ecc, ecc->dummy_slot, &dummy_paramset);
+
        queue_priority_mapping = ecc->info->queue_priority_mapping;
 
        /* Event queue priority mapping */
-- 
2.10.2

Reply via email to