Messages in this thread | | | Date | Mon, 9 Apr 2012 09:09:33 +0200 | Subject | Re: [dmaengine] Cyclic DMA regression. | From | javier Martin <> |
| |
On 5 April 2012 08:08, Vinod Koul <vinod.koul@linux.intel.com> wrote: > this is not right fix. The problem is that we shouldn't mark the cyclic > descriptor as complete. So for all drivers using cyclic API they should > do something like this. Can you test if this fixes your issue. > ----------------- > diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c > index a45b5d2..0c7362a 100644 > --- a/drivers/dma/imx-dma.c > +++ b/drivers/dma/imx-dma.c > @@ -571,11 +571,14 @@ static void imxdma_tasklet(unsigned long data) > if (desc->desc.callback) > desc->desc.callback(desc->desc.callback_param); > > - dma_cookie_complete(&desc->desc); > - > - /* If we are dealing with a cyclic descriptor keep it on ld_active */ > + /* If we are dealing with a cyclic descriptor keep it on ld_active > + * and don't mark the descriptor as complete. > + * Only in non-cyclic cases it would be marked as complete > + */ > if (imxdma_chan_is_doing_cyclic(imxdmac)) > goto out; > + else > + dma_cookie_complete(&desc->desc); > > /* Free 2D slot if it was an interleaved transfer */ > if (imxdmac->enabled_2d) { > > > -- > ~Vinod >
Hi Vinod, thank you for your patch.
It works fine for me:
Tested-by: Javier Martin <javier.martin@vista-silicon.com>
Could you apply it in your tree as a fix for 3.4?
Regards. -- Javier Martin Vista Silicon S.L. CDTUC - FASE C - Oficina S-345 Avda de los Castros s/n 39005- Santander. Cantabria. Spain +34 942 25 32 60 www.vista-silicon.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |