diff options
author | Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com> | 2011-05-09 03:09:37 -0400 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2011-05-09 07:42:23 -0400 |
commit | 60092d0bde4c8741198da4a69b693d3709385bf1 (patch) | |
tree | 0f15316b472b4ab1abbe4e425ae049d208a10d9f /drivers/dma | |
parent | 08645fdc7bab4564f7dfd07525da8a1761f8f106 (diff) |
pch_dma: Fix DMA setting issue
Currently, Direct-Start mode(*) is enabled.
Our IOH's devices must not use this mode.
This causes unexpected behavior.
This patch deletes Direct-Start setting.
(*) This mode is used in order for CPU to generate the DMA request.
Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/pch_dma.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c index afd6fba08a6f..4e4667204061 100644 --- a/drivers/dma/pch_dma.c +++ b/drivers/dma/pch_dma.c | |||
@@ -254,9 +254,6 @@ static bool pdc_is_idle(struct pch_dma_chan *pd_chan) | |||
254 | 254 | ||
255 | static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) | 255 | static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) |
256 | { | 256 | { |
257 | struct pch_dma *pd = to_pd(pd_chan->chan.device); | ||
258 | u32 val; | ||
259 | |||
260 | if (!pdc_is_idle(pd_chan)) { | 257 | if (!pdc_is_idle(pd_chan)) { |
261 | dev_err(chan2dev(&pd_chan->chan), | 258 | dev_err(chan2dev(&pd_chan->chan), |
262 | "BUG: Attempt to start non-idle channel\n"); | 259 | "BUG: Attempt to start non-idle channel\n"); |
@@ -282,10 +279,6 @@ static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) | |||
282 | channel_writel(pd_chan, NEXT, desc->txd.phys); | 279 | channel_writel(pd_chan, NEXT, desc->txd.phys); |
283 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG); | 280 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG); |
284 | } | 281 | } |
285 | |||
286 | val = dma_readl(pd, CTL2); | ||
287 | val |= 1 << (DMA_CTL2_START_SHIFT_BITS + pd_chan->chan.chan_id); | ||
288 | dma_writel(pd, CTL2, val); | ||
289 | } | 282 | } |
290 | 283 | ||
291 | static void pdc_chain_complete(struct pch_dma_chan *pd_chan, | 284 | static void pdc_chain_complete(struct pch_dma_chan *pd_chan, |