浏览代码

dmaengine: ep93xx: Always start from BASE0

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>
Alexander Sverdlin 8 年之前
父节点
当前提交
0037ae4781
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/dma/ep93xx_dma.c

+ 2 - 0
drivers/dma/ep93xx_dma.c

@@ -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;
 }