summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-09-26 18:22:00 +0800
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 08:05:43 -0500
commit0b62fda65996c691856e288628cc3f5d7f80c894 (patch)
tree2dc5a4ba108b7631da31918f3af98d014b1621a2 /drivers/dma
parentfa286268797b1ba0fc55248eb7d0034fd2814870 (diff)
ENGR00280852-9 mxc: asrc: Use threshold to clear dma request
Previously, we used sdma's event pending to forcibly re-schedule sdma for work round, because sdma channel for ASRC input task would fail to be opened due to its dma request always keeping high after ASRC opens the pair, which cause sdma miss the trigger point of dma request. Now, instead of using event pending, we clear the dma request on ASRC driver side by setting its thresholds to an impossible trigger area during its stall state. Since ASRC would stall its process when input fifo is near empty or output fifo is near full, during the stall state, the specific thresholds, 0 for input fifo and 63 for output fifo, would never let asrc meet this condition. So dma request can be cleared and raised again after we restore the true required thresholds. Accordingly, since we don't need event pending any more, we dropped the code from the sdma driver. Signed-off-by: Nicolin Chen <b42378@freescale.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/imx-sdma.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 705add4e893e..83ea9c14a965 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -1291,21 +1291,6 @@ static void sdma_issue_pending(struct dma_chan *chan)
sdma_enable_channel(sdma, sdmac->channel);
}
-void sdma_set_event_pending(struct dma_chan *chan)
-{
- struct sdma_channel *sdmac = to_sdma_chan(chan);
- struct sdma_engine *sdma = sdmac->sdma;
- u32 channel = sdmac->channel;
- u32 reg;
-
- reg = readl_relaxed(sdma->regs + SDMA_H_EVTPEND);
- reg |= 1 << channel;
- writel_relaxed(reg, sdma->regs + SDMA_H_EVTPEND);
-
- return;
-}
-EXPORT_SYMBOL(sdma_set_event_pending);
-
#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1 38
static void sdma_add_scripts(struct sdma_engine *sdma,