dmaengine: ep93xx: Always start from BASE0
authorAlexander Sverdlin <alexander.sverdlin@gmail.com>
Mon, 22 May 2017 14:05:22 +0000 (16:05 +0200)
committerVinod Koul <vinod.koul@intel.com>
Wed, 24 May 2017 04:22:46 +0000 (09:52 +0530)
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>
Cc: stable@vger.kernel.org
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/ep93xx_dma.c

index d37e8dda807900fe9725aa153c20c1c2bc927a52..deb009c3121f29cc53f3011c6f379a5aa18472cc 100644 (file)
@@ -323,6 +323,8 @@ static int m2p_hw_setup(struct ep93xx_dma_chan *edmac)
                | M2P_CONTROL_ENABLE;
        m2p_set_control(edmac, control);
 
+       edmac->buffer = 0;
+
        return 0;
 }