[linux-yocto] [PATCH 12/12] dmaengine: idma64: clear LLP_[SD]_EN bits in last descriptor
Tan Jui Nee
jui.nee.tan at intel.com
Tue Mar 29 23:24:07 PDT 2016
From: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
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 at linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul at intel.com>
(cherry picked from commit a2826e662eb13a041078260692b4e023ed5cbf62)
Signed-off-by: Tan Jui Nee <jui.nee.tan at intel.com>
---
drivers/dma/idma64.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c
index 3cb7b2c..1953e57 100644
--- a/drivers/dma/idma64.c
+++ b/drivers/dma/idma64.c
@@ -289,6 +289,9 @@ static void idma64_desc_fill(struct idma64_chan *idma64c,
/* Trigger an interrupt after the last block is transfered */
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(
--
1.9.1
More information about the linux-yocto
mailing list