Messages in this thread Patch in this message | | | Subject | Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain | From | Andy Shevchenko <> | Date | Mon, 21 Dec 2015 21:34:12 +0200 |
| |
On Mon, 2015-12-21 at 19:10 +0000, Mans Rullgard wrote: > The datasheet requires that the LLP_[SD]_EN bits be cleared whenever > LLP.LOC is zero, i.e. in the last descriptor of a multi-block chain. > Make the driver do this.
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Mans Rullgard <mans@mansr.com> > --- > drivers/dma/dw/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c > index 7067b6ddc1db..ca7cafc82f6b 100644 > --- a/drivers/dma/dw/core.c > +++ b/drivers/dma/dw/core.c > @@ -751,6 +751,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, > dma_addr_t dest, dma_addr_t src, > prev->lli.ctllo |= DWC_CTLL_INT_EN; > > prev->lli.llp = 0; > + prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN); > first->txd.flags = flags; > first->total_len = len; > > @@ -912,6 +913,7 @@ slave_sg_fromdev_fill_desc: > prev->lli.ctllo |= DWC_CTLL_INT_EN; > > prev->lli.llp = 0; > + prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN); > first->total_len = total_len; > > return &first->txd;
-- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy
| |