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

Commit a2826e66 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Vinod Koul
Browse files

dmaengine: idma64: clear LLP_[SD]_EN bits in last descriptor



The datasheet requires that the user must clear LLP_[SD]_EN bits whenever
LLP.LOC is zero, i.e. in the last descriptor of a multi-block chain.

Make the driver do this.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 92e963f5
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -289,6 +289,9 @@ static void idma64_desc_fill(struct idma64_chan *idma64c,


	/* Trigger an interrupt after the last block is transfered */
	/* Trigger an interrupt after the last block is transfered */
	lli->ctllo |= IDMA64C_CTLL_INT_EN;
	lli->ctllo |= IDMA64C_CTLL_INT_EN;

	/* Disable LLP transfer in the last block */
	lli->ctllo &= ~(IDMA64C_CTLL_LLP_S_EN | IDMA64C_CTLL_LLP_D_EN);
}
}


static struct dma_async_tx_descriptor *idma64_prep_slave_sg(
static struct dma_async_tx_descriptor *idma64_prep_slave_sg(