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: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
92e963f50f
commit
a2826e662e
1 changed files with 3 additions and 0 deletions
|
@ -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(
|
||||||
|
|
Loading…
Reference in a new issue