Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Andy Shevchenko and committed by
Vinod Koul
a2826e66 92e963f5

+3
+3
drivers/dma/idma64.c
··· 289 289 290 290 /* Trigger an interrupt after the last block is transfered */ 291 291 lli->ctllo |= IDMA64C_CTLL_INT_EN; 292 + 293 + /* Disable LLP transfer in the last block */ 294 + lli->ctllo &= ~(IDMA64C_CTLL_LLP_S_EN | IDMA64C_CTLL_LLP_D_EN); 292 295 } 293 296 294 297 static struct dma_async_tx_descriptor *idma64_prep_slave_sg(