提交 d9ec4641 编写于 作者: S Sylvain Lesne 提交者: Vinod Koul

dmaengine: altera: fix response FIFO emptying

Commit 6084fc2e ("dmaengine: altera: Use macros instead of structs
to describe the registers") introduced a minus sign before a register
offset.

This leads to soft-locks of the DMA controller, since reading the last
status byte is required to pop the response from the FIFO. Failing to
do so will lead to a full FIFO, which means that the DMA controller
will stop processing descriptors.
Signed-off-by: NSylvain Lesne <lesne@alse-fr.com>
Reviewed-by: NStefan Roese <sr@denx.de>
Signed-off-by: NVinod Koul <vinod.koul@intel.com>
上级 2ccb4837
...@@ -698,7 +698,7 @@ static void msgdma_tasklet(unsigned long data) ...@@ -698,7 +698,7 @@ static void msgdma_tasklet(unsigned long data)
* bits. So we need to just drop these values. * bits. So we need to just drop these values.
*/ */
size = ioread32(mdev->resp + MSGDMA_RESP_BYTES_TRANSFERRED); size = ioread32(mdev->resp + MSGDMA_RESP_BYTES_TRANSFERRED);
status = ioread32(mdev->resp - MSGDMA_RESP_STATUS); status = ioread32(mdev->resp + MSGDMA_RESP_STATUS);
msgdma_complete_descriptor(mdev); msgdma_complete_descriptor(mdev);
msgdma_chan_desc_cleanup(mdev); msgdma_chan_desc_cleanup(mdev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册