summaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorAlexander Sverdlin <alexander.sverdlin@gmail.com>2017-05-22 16:05:22 +0200
committerBen Hutchings <ben@decadent.org.uk>2017-09-15 18:29:50 +0100
commit9a630200c30a94accf59e514c25389d44eb5dfc8 (patch)
tree188479e795de25322a9cc5adeae30d9334773973 /drivers/dma
parentf396024b4e69a5b449a0fdbd0b52b38a409977b3 (diff)
downloadlinux-stable-9a630200c30a94accf59e514c25389d44eb5dfc8.tar.gz
linux-stable-9a630200c30a94accf59e514c25389d44eb5dfc8.tar.bz2
linux-stable-9a630200c30a94accf59e514c25389d44eb5dfc8.zip
dmaengine: ep93xx: Always start from BASE0
commit 0037ae47812b1f431cc602100d1d51f37d77b61e upstream. The current buffer is being reset to zero on device_free_chan_resources() but not on device_terminate_all(). It could happen that HW is restarted and expects BASE0 to be used, but the driver is not synchronized and will start from BASE1. One solution is to reset the buffer explicitly in m2p_hw_setup(). Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/ep93xx_dma.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
index cb4bf682a708..ed836faa407c 100644
--- a/drivers/dma/ep93xx_dma.c
+++ b/drivers/dma/ep93xx_dma.c
@@ -325,6 +325,8 @@ static int m2p_hw_setup(struct ep93xx_dma_chan *edmac)
| M2P_CONTROL_ENABLE;
m2p_set_control(edmac, control);
+ edmac->buffer = 0;
+
return 0;
}