linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dmaengine: fix cyclic dma usage
@ 2012-05-11  6:24 Vinod Koul
  2012-05-11  9:41 ` Nicolas Ferre
  2012-05-12 19:32 ` Mika Westerberg
  0 siblings, 2 replies; 4+ messages in thread
From: Vinod Koul @ 2012-05-11  6:24 UTC (permalink / raw)
  To: linux-kernel; +Cc: rmk, Nicolas Ferre, Mika Westerberg


>From 24db9e25a31ac46327253f11908463c48518dec8 Mon Sep 17 00:00:00 2001
From: Vinod Koul <vinod.koul@linux.intel.com>
Date: Fri, 11 May 2012 11:48:21 +0530
Subject: [PATCH] dmaengine: fix cyclic dma usage

for cyclic dma, dont mark the descriptor as complete.
Fix the remaining users of cyclic dma which do so

Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
---
Looking for tested by for these two
---
 drivers/dma/at_hdmac.c   |    4 +++-
 drivers/dma/ep93xx_dma.c |    4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 445fdf8..bf0d7e4 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -245,7 +245,9 @@ atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
 	dev_vdbg(chan2dev(&atchan->chan_common),
 		"descriptor %u complete\n", txd->cookie);
 
-	dma_cookie_complete(txd);
+	/* mark the descriptor as complete for non cyclic cases only */
+	if (!atc_chan_is_cyclic(atchan))
+		dma_cookie_complete(txd);
 
 	/* move children to free_list */
 	list_splice_init(&desc->tx_list, &atchan->free_list);
diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
index e6f133b..f6e9b57 100644
--- a/drivers/dma/ep93xx_dma.c
+++ b/drivers/dma/ep93xx_dma.c
@@ -703,7 +703,9 @@ static void ep93xx_dma_tasklet(unsigned long data)
 	desc = ep93xx_dma_get_active(edmac);
 	if (desc) {
 		if (desc->complete) {
-			dma_cookie_complete(&desc->txd);
+			/* mark descriptor complete for non cyclic case only */
+			if (!test_bit(EP93XX_DMA_IS_CYCLIC, &edmac->flags))
+				dma_cookie_complete(&desc->txd);
 			list_splice_init(&edmac->active, &list);
 		}
 		callback = desc->txd.callback;
-- 
1.7.0.4


-- 
~Vinod


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] dmaengine: fix cyclic dma usage
  2012-05-11  6:24 [PATCH] dmaengine: fix cyclic dma usage Vinod Koul
@ 2012-05-11  9:41 ` Nicolas Ferre
  2012-05-12 19:32 ` Mika Westerberg
  1 sibling, 0 replies; 4+ messages in thread
From: Nicolas Ferre @ 2012-05-11  9:41 UTC (permalink / raw)
  To: Vinod Koul; +Cc: linux-kernel, rmk, Mika Westerberg

On 05/11/2012 08:24 AM, Vinod Koul :
> 
>>From 24db9e25a31ac46327253f11908463c48518dec8 Mon Sep 17 00:00:00 2001
> From: Vinod Koul <vinod.koul@linux.intel.com>
> Date: Fri, 11 May 2012 11:48:21 +0530
> Subject: [PATCH] dmaengine: fix cyclic dma usage
> 
> for cyclic dma, dont mark the descriptor as complete.
> Fix the remaining users of cyclic dma which do so
> 
> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

Vinod,

Thanks for taking care of this, I have tested:
Tested-by: Nicolas Ferre <nicolas.ferre@atmel.com>
and:
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>


> ---
> Looking for tested by for these two
> ---
>  drivers/dma/at_hdmac.c   |    4 +++-
>  drivers/dma/ep93xx_dma.c |    4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> index 445fdf8..bf0d7e4 100644
> --- a/drivers/dma/at_hdmac.c
> +++ b/drivers/dma/at_hdmac.c
> @@ -245,7 +245,9 @@ atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
>  	dev_vdbg(chan2dev(&atchan->chan_common),
>  		"descriptor %u complete\n", txd->cookie);
>  
> -	dma_cookie_complete(txd);
> +	/* mark the descriptor as complete for non cyclic cases only */
> +	if (!atc_chan_is_cyclic(atchan))
> +		dma_cookie_complete(txd);
>  
>  	/* move children to free_list */
>  	list_splice_init(&desc->tx_list, &atchan->free_list);
> diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
> index e6f133b..f6e9b57 100644
> --- a/drivers/dma/ep93xx_dma.c
> +++ b/drivers/dma/ep93xx_dma.c
> @@ -703,7 +703,9 @@ static void ep93xx_dma_tasklet(unsigned long data)
>  	desc = ep93xx_dma_get_active(edmac);
>  	if (desc) {
>  		if (desc->complete) {
> -			dma_cookie_complete(&desc->txd);
> +			/* mark descriptor complete for non cyclic case only */
> +			if (!test_bit(EP93XX_DMA_IS_CYCLIC, &edmac->flags))
> +				dma_cookie_complete(&desc->txd);
>  			list_splice_init(&edmac->active, &list);
>  		}
>  		callback = desc->txd.callback;


-- 
Nicolas Ferre

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] dmaengine: fix cyclic dma usage
  2012-05-11  6:24 [PATCH] dmaengine: fix cyclic dma usage Vinod Koul
  2012-05-11  9:41 ` Nicolas Ferre
@ 2012-05-12 19:32 ` Mika Westerberg
  2012-05-15  3:14   ` Vinod Koul
  1 sibling, 1 reply; 4+ messages in thread
From: Mika Westerberg @ 2012-05-12 19:32 UTC (permalink / raw)
  To: Vinod Koul; +Cc: linux-kernel, rmk, Nicolas Ferre

On Fri, May 11, 2012 at 11:54:09AM +0530, Vinod Koul wrote:
> 
> >From 24db9e25a31ac46327253f11908463c48518dec8 Mon Sep 17 00:00:00 2001
> From: Vinod Koul <vinod.koul@linux.intel.com>
> Date: Fri, 11 May 2012 11:48:21 +0530
> Subject: [PATCH] dmaengine: fix cyclic dma usage
> 
> for cyclic dma, dont mark the descriptor as complete.
> Fix the remaining users of cyclic dma which do so
> 
> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>

On ep93xx works perfectly.

Tested-by: Mika Westerberg <mika.westerberg@iki.fi>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] dmaengine: fix cyclic dma usage
  2012-05-12 19:32 ` Mika Westerberg
@ 2012-05-15  3:14   ` Vinod Koul
  0 siblings, 0 replies; 4+ messages in thread
From: Vinod Koul @ 2012-05-15  3:14 UTC (permalink / raw)
  To: Mika Westerberg, Nicolas Ferre; +Cc: linux-kernel, rmk

On Sat, 2012-05-12 at 22:32 +0300, Mika Westerberg wrote:
> On Fri, May 11, 2012 at 11:54:09AM +0530, Vinod Koul wrote:
> > 
> > >From 24db9e25a31ac46327253f11908463c48518dec8 Mon Sep 17 00:00:00 2001
> > From: Vinod Koul <vinod.koul@linux.intel.com>
> > Date: Fri, 11 May 2012 11:48:21 +0530
> > Subject: [PATCH] dmaengine: fix cyclic dma usage
> > 
> > for cyclic dma, dont mark the descriptor as complete.
> > Fix the remaining users of cyclic dma which do so
> > 
> > Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
> 
> On ep93xx works perfectly.
> 
> Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Thanks, applied now.

-- 
~Vinod


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-05-15  3:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-11  6:24 [PATCH] dmaengine: fix cyclic dma usage Vinod Koul
2012-05-11  9:41 ` Nicolas Ferre
2012-05-12 19:32 ` Mika Westerberg
2012-05-15  3:14   ` Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).