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

Commit 9dbfbd35 authored by Jonas Aaberg's avatar Jonas Aaberg Committed by Dan Williams
Browse files

DMAENGINE: ste_dma40: corrected is_paused behavior



The handling of pause detection was slightly incorrect.

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 767a9675
Loading
Loading
Loading
Loading
+10 −4
Original line number Original line Diff line number Diff line
@@ -1521,16 +1521,22 @@ static bool d40_is_paused(struct d40_chan *d40c)
	}
	}


	if (d40c->dma_cfg.dir == STEDMA40_MEM_TO_PERIPH ||
	if (d40c->dma_cfg.dir == STEDMA40_MEM_TO_PERIPH ||
	    d40c->dma_cfg.dir == STEDMA40_MEM_TO_MEM)
	    d40c->dma_cfg.dir == STEDMA40_MEM_TO_MEM) {
		event = D40_TYPE_TO_EVENT(d40c->dma_cfg.dst_dev_type);
		event = D40_TYPE_TO_EVENT(d40c->dma_cfg.dst_dev_type);
	else if (d40c->dma_cfg.dir == STEDMA40_PERIPH_TO_MEM)
		status = readl(d40c->base->virtbase + D40_DREG_PCBASE +
			       d40c->phy_chan->num * D40_DREG_PCDELTA +
			       D40_CHAN_REG_SDLNK);
	} else if (d40c->dma_cfg.dir == STEDMA40_PERIPH_TO_MEM) {
		event = D40_TYPE_TO_EVENT(d40c->dma_cfg.src_dev_type);
		event = D40_TYPE_TO_EVENT(d40c->dma_cfg.src_dev_type);
	else {
		status = readl(d40c->base->virtbase + D40_DREG_PCBASE +
			       d40c->phy_chan->num * D40_DREG_PCDELTA +
			       D40_CHAN_REG_SSLNK);
	} else {
		dev_err(&d40c->chan.dev->device,
		dev_err(&d40c->chan.dev->device,
			"[%s] Unknown direction\n", __func__);
			"[%s] Unknown direction\n", __func__);
		goto _exit;
		goto _exit;
	}
	}
	status = d40_chan_has_events(d40c);

	status = (status & D40_EVENTLINE_MASK(event)) >>
	status = (status & D40_EVENTLINE_MASK(event)) >>
		D40_EVENTLINE_POS(event);
		D40_EVENTLINE_POS(event);