summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-06-28 19:09:16 +0800
committerNicolin Chen <b42378@freescale.com>2013-06-28 20:27:56 +0800
commit4ff49264357050d640191b1ca6710b4ad94cc651 (patch)
treeb794c90387958b857a8ef4a4c6ed93390718bd7c
parent5f9fee37ad99ec244f8175d7672ccbb904ef2b8a (diff)
ENGR00268944-1 dma: imx-sdma: Use noncacheable allocate for sdma bd
Multiple mapping on cacheable buffer might cause bd status updating delay. So we use strongly order allocate for sdma bd to prevent it. Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit 5b39c20ade01d4f9474c25bdda60ed4839d07601)
-rw-r--r--drivers/dma/imx-sdma.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index b75069b409fc..1cd04a19890f 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -950,7 +950,7 @@ static int sdma_request_channel(struct sdma_channel *sdmac)
int channel = sdmac->channel;
int ret = -EBUSY;
- sdmac->bd = dma_alloc_coherent(NULL, PAGE_SIZE, &sdmac->bd_phys, GFP_KERNEL);
+ sdmac->bd = dma_alloc_noncacheable(NULL, PAGE_SIZE, &sdmac->bd_phys, GFP_KERNEL);
if (!sdmac->bd) {
ret = -ENOMEM;
goto out;
@@ -1057,7 +1057,7 @@ static void sdma_free_chan_resources(struct dma_chan *chan)
sdma_set_channel_priority(sdmac, 0);
- dma_free_coherent(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);
+ dma_free_noncacheable(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);
clk_disable(sdma->clk_ipg);
clk_disable(sdma->clk_ahb);