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>
This commit is contained in:
parent
08645fdc7b
commit
60092d0bde
|
@ -254,9 +254,6 @@ static bool pdc_is_idle(struct pch_dma_chan *pd_chan)
|
||||||
|
|
||||||
static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc)
|
static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc)
|
||||||
{
|
{
|
||||||
struct pch_dma *pd = to_pd(pd_chan->chan.device);
|
|
||||||
u32 val;
|
|
||||||
|
|
||||||
if (!pdc_is_idle(pd_chan)) {
|
if (!pdc_is_idle(pd_chan)) {
|
||||||
dev_err(chan2dev(&pd_chan->chan),
|
dev_err(chan2dev(&pd_chan->chan),
|
||||||
"BUG: Attempt to start non-idle channel\n");
|
"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)
|
||||||
channel_writel(pd_chan, NEXT, desc->txd.phys);
|
channel_writel(pd_chan, NEXT, desc->txd.phys);
|
||||||
pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG);
|
pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG);
|
||||||
}
|
}
|
||||||
|
|
||||||
val = dma_readl(pd, CTL2);
|
|
||||||
val |= 1 << (DMA_CTL2_START_SHIFT_BITS + pd_chan->chan.chan_id);
|
|
||||||
dma_writel(pd, CTL2, val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pdc_chain_complete(struct pch_dma_chan *pd_chan,
|
static void pdc_chain_complete(struct pch_dma_chan *pd_chan,
|
||||||
|
|
Loading…
Reference in New Issue