diff options
author | Javier Martin <javier.martin@vista-silicon.com> | 2012-10-30 15:58:50 +0000 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2013-01-08 07:44:56 -0800 |
commit | bef2a8d3f6cb91bc8743bdd63d3eb6a37bf27b12 (patch) | |
tree | 42f3b88674d7d7c836c88cd7ef0e9d352bb2cecf | |
parent | ac4989874af56435c308bdde9ad9c837a26f8b23 (diff) | |
download | op-kernel-dev-bef2a8d3f6cb91bc8743bdd63d3eb6a37bf27b12.zip op-kernel-dev-bef2a8d3f6cb91bc8743bdd63d3eb6a37bf27b12.tar.gz |
dmaengine: imx-dma: Disable use of hw_chain to fix sg_dma transfers.
HW chaining is currently broken in imx-dma. It can be easily reproduced doing
intensive accesses to a external MMC card and checking how the file system
is corrupted.
Preventing the driver to use HW chaining solves these issues.
Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r-- | drivers/dma/imx-dma.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c index dbf0e6f..a7dcf78 100644 --- a/drivers/dma/imx-dma.c +++ b/drivers/dma/imx-dma.c @@ -684,9 +684,8 @@ static int imxdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, break; } - imxdmac->hw_chaining = 1; - if (!imxdma_hw_chain(imxdmac)) - return -EINVAL; + imxdmac->hw_chaining = 0; + imxdmac->ccr_from_device = (mode | IMX_DMA_TYPE_FIFO) | ((IMX_DMA_MEMSIZE_32 | IMX_DMA_TYPE_LINEAR) << 2) | CCR_REN; |