summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Martin <javier.martin@vista-silicon.com>2012-10-30 15:58:50 +0000
committerVinod Koul <vinod.koul@intel.com>2013-01-08 07:44:56 -0800
commitbef2a8d3f6cb91bc8743bdd63d3eb6a37bf27b12 (patch)
tree42f3b88674d7d7c836c88cd7ef0e9d352bb2cecf
parentac4989874af56435c308bdde9ad9c837a26f8b23 (diff)
downloadop-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.c5
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;
OpenPOWER on IntegriCloud