Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d392a7b authored by Jonas Aaberg's avatar Jonas Aaberg Committed by Dan Williams
Browse files

DMAENGINE: ste_dma40: no premature stop



Correct bug that could cause paused channels to stop.

Signed-off-by: default avatarJonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 2123a61e
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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) {