diff options
author | Nicolin Chen <b42378@freescale.com> | 2013-06-28 19:09:16 +0800 |
---|---|---|
committer | Nicolin Chen <b42378@freescale.com> | 2013-06-28 20:27:56 +0800 |
commit | 4ff49264357050d640191b1ca6710b4ad94cc651 (patch) | |
tree | b794c90387958b857a8ef4a4c6ed93390718bd7c | |
parent | 5f9fee37ad99ec244f8175d7672ccbb904ef2b8a (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.c | 4 |
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); |