提交 1d392a7b 编写于 作者: J Jonas Aaberg 提交者: Dan Williams

DMAENGINE: ste_dma40: no premature stop

Correct bug that could cause paused channels to stop.
Signed-off-by: NJonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: NDan Williams <dan.j.williams@intel.com>
上级 2123a61e
......@@ -508,6 +508,7 @@ static int d40_channel_execute_command(struct d40_chan *d40c,
void __iomem *active_reg;
int ret = 0;
unsigned long flags;
u32 wmask;
spin_lock_irqsave(&d40c->base->execmd_lock, flags);
......@@ -525,7 +526,9 @@ static int d40_channel_execute_command(struct d40_chan *d40c,
goto done;
}
writel(command << D40_CHAN_POS(d40c->phy_chan->num), active_reg);
wmask = 0xffffffff & ~(D40_CHAN_POS_MASK(d40c->phy_chan->num));
writel(wmask | (command << D40_CHAN_POS(d40c->phy_chan->num)),
active_reg);
if (command == D40_DMA_SUSPEND_REQ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册