summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-09-26 18:22:00 +0800
committerJason Liu <r64343@freescale.com>2013-10-30 09:55:51 +0800
commitfd781ec17700b4bbda31a262c82967ca69cfe969 (patch)
tree9fa8becfc57c1a814c59ea9eee032a74d00bee25 /drivers/dma
parent781e416b42406d5d7731e84f9cb7be54a772ef19 (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,