aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTomoya MORINAGA <tomoya-linux@dsn.okisemi.com>2011-05-09 03:09:37 -0400
committerVinod Koul <vinod.koul@intel.com>2011-05-09 07:42:23 -0400
commit60092d0bde4c8741198da4a69b693d3709385bf1 (patch)
tree0f15316b472b4ab1abbe4e425ae049d208a10d9f /drivers
parent08645fdc7bab4564f7dfd07525da8a1761f8f106 (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')
-rw-r--r--drivers/dma/pch_dma.c7
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
255static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) 255static 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
291static void pdc_chain_complete(struct pch_dma_chan *pd_chan, 284static void pdc_chain_complete(struct pch_dma_chan *pd_chan,