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 | |
| 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>
| -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, |
