dmaengine: edma: re-initialize dummy slot during system resume
diff mbox

Message ID 20161123092755.8522-1-vigneshr@ti.com
State New
Headers show

Commit Message

Vignesh Raghavendra Nov. 23, 2016, 9:27 a.m. UTC
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 <vigneshr@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/edma.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Vinod Koul Nov. 30, 2016, 3:25 a.m. UTC | #1
On Wed, Nov 23, 2016 at 02:57:55PM +0530, Vignesh R wrote:
> 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.

Applied, thanks

Patch
diff mbox

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 */