linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer
@ 2014-07-16 12:29 Peter Ujfalusi
       [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2014-07-16 12:29 UTC (permalink / raw)
  To: nsekhar, joelf, vinod.koul
  Cc: linux-kernel, linux-omap, davinci-linux-open-source, dmaengine,
	tglx

Hi,

After this series clients can ask to not receive notifications after each period.
In this case we can disable the completion interrupt since the position reporting
does not rely on it for cyclic mode.
Patchset for ASoC part has been sent which allows users space to take adventage
of SNDRV_PCM_INFO_NO_PERIOD_WAKEUP:
[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2014-July/078993.html

When both series applied on top of linux-next:

# cache the audio file in memory
cat some_music.mp3 > /dev/null
# start PA
pulseaudio -v
# in another terminal, play the music via PA
mplayer -ao pulse some_music.mp3
# yet another terminal to monitor the interrupts
watch cat /proc/interrupts
# note the non increasing number of edma interrupts ;)

Regards,
Peter
---
Peter Ujfalusi (2):
  dma: edma: Update caps->residue_granularity to match with reality
  dma: edma: Support to suppress the period interrupts in cyclic mode

 drivers/dma/edma.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

-- 
2.0.0

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

* [PATCH 1/2] dma: edma: Update caps->residue_granularity to match with reality
       [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
@ 2014-07-16 12:29   ` Peter Ujfalusi
  2014-07-28  6:13   ` [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Peter Ujfalusi
  1 sibling, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2014-07-16 12:29 UTC (permalink / raw)
  To: nsekhar-l0cyMroinI0, joelf-l0cyMroinI0,
	vinod.koul-ral2JQCrhuEAvxtiuMwx3w
  Cc: dmaengine-u79uwXL29TY76Z2rM5mHXA,
	davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

The edma can report accurate DMA position so update the residue_granularity
to DMA_RESIDUE_GRANULARITY_BURST.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi-l0cyMroinI0@public.gmane.org>
---
 drivers/dma/edma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index fe55f78ea137..d5017abcf7cb 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -1001,7 +1001,7 @@ static int edma_dma_device_slave_caps(struct dma_chan *dchan,
 	caps->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
 	caps->cmd_pause = true;
 	caps->cmd_terminate = true;
-	caps->residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
+	caps->residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
 
 	return 0;
 }
-- 
2.0.0

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

* [PATCH 2/2] dma: edma: Support to suppress the period interrupts in cyclic mode
  2014-07-16 12:29 [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Peter Ujfalusi
       [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
@ 2014-07-16 12:29 ` Peter Ujfalusi
  2014-07-28 11:34 ` [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Vinod Koul
  2 siblings, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2014-07-16 12:29 UTC (permalink / raw)
  To: nsekhar, joelf, vinod.koul
  Cc: linux-kernel, linux-omap, davinci-linux-open-source, dmaengine,
	tglx

If the client (audio) does not request interrupts for every period we can
disable them.
With updated audio driver stack we can play audio w/o the need to process
any edma interrupts.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/edma.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index d5017abcf7cb..69f1f5250120 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -723,10 +723,10 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic(
 		edesc->absync = ret;
 
 		/*
-		 * Enable interrupts for every period because callback
-		 * has to be called for every period.
+		 * Enable period interrupt only if it is requested
 		 */
-		edesc->pset[i].param.opt |= TCINTEN;
+		if (tx_flags & DMA_PREP_INTERRUPT)
+			edesc->pset[i].param.opt |= TCINTEN;
 	}
 
 	/* Place the cyclic channel to highest priority queue */
-- 
2.0.0

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

* Re: [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer
       [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
  2014-07-16 12:29   ` [PATCH 1/2] dma: edma: Update caps->residue_granularity to match with reality Peter Ujfalusi
@ 2014-07-28  6:13   ` Peter Ujfalusi
  1 sibling, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2014-07-28  6:13 UTC (permalink / raw)
  To: nsekhar-l0cyMroinI0, joelf-l0cyMroinI0,
	vinod.koul-ral2JQCrhuEAvxtiuMwx3w
  Cc: dmaengine-u79uwXL29TY76Z2rM5mHXA,
	davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

On 07/16/2014 03:29 PM, Peter Ujfalusi wrote:
> Hi,
> 
> After this series clients can ask to not receive notifications after each period.
> In this case we can disable the completion interrupt since the position reporting
> does not rely on it for cyclic mode.
> Patchset for ASoC part has been sent which allows users space to take adventage
> of SNDRV_PCM_INFO_NO_PERIOD_WAKEUP:
> [1] http://mailman.alsa-project.org/pipermail/alsa-devel/2014-July/078993.html

ping.

> When both series applied on top of linux-next:
> 
> # cache the audio file in memory
> cat some_music.mp3 > /dev/null
> # start PA
> pulseaudio -v
> # in another terminal, play the music via PA
> mplayer -ao pulse some_music.mp3
> # yet another terminal to monitor the interrupts
> watch cat /proc/interrupts
> # note the non increasing number of edma interrupts ;)
> 
> Regards,
> Peter
> ---
> Peter Ujfalusi (2):
>   dma: edma: Update caps->residue_granularity to match with reality
>   dma: edma: Support to suppress the period interrupts in cyclic mode
> 
>  drivers/dma/edma.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 


-- 
Péter

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

* Re: [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer
  2014-07-16 12:29 [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Peter Ujfalusi
       [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
  2014-07-16 12:29 ` [PATCH 2/2] dma: edma: Support to suppress the period interrupts in cyclic mode Peter Ujfalusi
@ 2014-07-28 11:34 ` Vinod Koul
  2 siblings, 0 replies; 5+ messages in thread
From: Vinod Koul @ 2014-07-28 11:34 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: nsekhar, joelf, linux-kernel, linux-omap,
	davinci-linux-open-source, dmaengine, tglx

On Wed, Jul 16, 2014 at 03:29:19PM +0300, Peter Ujfalusi wrote:
> Hi,
> 
> After this series clients can ask to not receive notifications after each period.
> In this case we can disable the completion interrupt since the position reporting
> does not rely on it for cyclic mode.
> Patchset for ASoC part has been sent which allows users space to take adventage
> of SNDRV_PCM_INFO_NO_PERIOD_WAKEUP:
> [1] http://mailman.alsa-project.org/pipermail/alsa-devel/2014-July/078993.html

Applied, thanks

Please use right subsystem name for patches, i have fixed that while
applying

-- 
~Vinod

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

end of thread, other threads:[~2014-07-28 11:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-16 12:29 [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Peter Ujfalusi
     [not found] ` <1405513761-23739-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org>
2014-07-16 12:29   ` [PATCH 1/2] dma: edma: Update caps->residue_granularity to match with reality Peter Ujfalusi
2014-07-28  6:13   ` [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer Peter Ujfalusi
2014-07-16 12:29 ` [PATCH 2/2] dma: edma: Support to suppress the period interrupts in cyclic mode Peter Ujfalusi
2014-07-28 11:34 ` [PATCH 0/2] dma: edma: Allow to disable eDMA IRQ during cyclic transfer 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).