forked from luck/tmp_suning_uos_patched
DMAENGINE: ste_dma40: no premature stop
Correct bug that could cause paused channels to stop. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
2123a61e17
commit
1d392a7ba4
@ -508,6 +508,7 @@ static int d40_channel_execute_command(struct d40_chan *d40c,
|
|||||||
void __iomem *active_reg;
|
void __iomem *active_reg;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
u32 wmask;
|
||||||
|
|
||||||
spin_lock_irqsave(&d40c->base->execmd_lock, flags);
|
spin_lock_irqsave(&d40c->base->execmd_lock, flags);
|
||||||
|
|
||||||
@ -525,7 +526,9 @@ static int d40_channel_execute_command(struct d40_chan *d40c,
|
|||||||
goto done;
|
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) {
|
if (command == D40_DMA_SUSPEND_REQ) {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user