alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently
@ 2011-08-25 13:54 Wolfram Sang
  2011-08-25 13:54 ` [RFC 2/2] ASoC: imx: use more robust checking of available streams Wolfram Sang
  2011-08-25 14:19 ` [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Sascha Hauer
  0 siblings, 2 replies; 6+ messages in thread
From: Wolfram Sang @ 2011-08-25 13:54 UTC (permalink / raw)
  To: alsa-devel; +Cc: Sascha Hauer, Mark Brown, Wolfram Sang, Liam Girdwood

If the channel is allocated as writecombine, then mmaping it should also
use writecombine. Also, add a proper device for the call. Ported from a
similar fix for mach-mxs.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
 sound/soc/imx/imx-ssi.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index 10a8e27..3b8d5cd 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -357,8 +357,8 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream,
 	struct snd_pcm_runtime *runtime = substream->runtime;
 	int ret;
 
-	ret = dma_mmap_coherent(NULL, vma, runtime->dma_area,
-			runtime->dma_addr, runtime->dma_bytes);
+	ret = dma_mmap_writecombine(substream->pcm->card->dev, vma,
+		runtime->dma_area, runtime->dma_addr, runtime->dma_bytes);
 
 	pr_debug("%s: ret: %d %p 0x%08x 0x%08x\n", __func__, ret,
 			runtime->dma_area,
-- 
1.7.5.4

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

* [RFC 2/2] ASoC: imx: use more robust checking of available streams
  2011-08-25 13:54 [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Wolfram Sang
@ 2011-08-25 13:54 ` Wolfram Sang
  2011-08-25 14:19 ` [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Sascha Hauer
  1 sibling, 0 replies; 6+ messages in thread
From: Wolfram Sang @ 2011-08-25 13:54 UTC (permalink / raw)
  To: alsa-devel; +Cc: Sascha Hauer, Mark Brown, Wolfram Sang, Liam Girdwood

Replace the channels_min check with a check for the relevant substream
being present. Suggested here [1] when mxs implemented the
audio-support.

[1] http://www.spinics.net/lists/arm-kernel/msg133010.html

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
 sound/soc/imx/imx-pcm-fiq.c |   11 +++++------
 sound/soc/imx/imx-ssi.c     |    4 ++--
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/sound/soc/imx/imx-pcm-fiq.c b/sound/soc/imx/imx-pcm-fiq.c
index 309c59e..ac790e8 100644
--- a/sound/soc/imx/imx-pcm-fiq.c
+++ b/sound/soc/imx/imx-pcm-fiq.c
@@ -243,23 +243,22 @@ static int imx_pcm_fiq_new(struct snd_soc_pcm_runtime *rtd)
 	struct snd_card *card = rtd->card->snd_card;
 	struct snd_soc_dai *dai = rtd->cpu_dai;
 	struct snd_pcm *pcm = rtd->pcm;
+	struct snd_pcm_substream *substream;
 	int ret;
 
 	ret = imx_pcm_new(rtd);
 	if (ret)
 		return ret;
 
-	if (dai->driver->playback.channels_min) {
-		struct snd_pcm_substream *substream =
-			pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream;
+	substream = pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream;
+	if (substream) {
 		struct snd_dma_buffer *buf = &substream->dma_buffer;
 
 		imx_ssi_fiq_tx_buffer = (unsigned long)buf->area;
 	}
 
-	if (dai->driver->capture.channels_min) {
-		struct snd_pcm_substream *substream =
-			pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
+	substream = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
+	if (substream) {
 		struct snd_dma_buffer *buf = &substream->dma_buffer;
 
 		imx_ssi_fiq_rx_buffer = (unsigned long)buf->area;
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index 3b8d5cd..4297cb6 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -399,14 +399,14 @@ int imx_pcm_new(struct snd_soc_pcm_runtime *rtd)
 		card->dev->dma_mask = &imx_pcm_dmamask;
 	if (!card->dev->coherent_dma_mask)
 		card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
-	if (dai->driver->playback.channels_min) {
+	if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) {
 		ret = imx_pcm_preallocate_dma_buffer(pcm,
 			SNDRV_PCM_STREAM_PLAYBACK);
 		if (ret)
 			goto out;
 	}
 
-	if (dai->driver->capture.channels_min) {
+	if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) {
 		ret = imx_pcm_preallocate_dma_buffer(pcm,
 			SNDRV_PCM_STREAM_CAPTURE);
 		if (ret)
-- 
1.7.5.4

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

* Re: [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently
  2011-08-25 13:54 [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Wolfram Sang
  2011-08-25 13:54 ` [RFC 2/2] ASoC: imx: use more robust checking of available streams Wolfram Sang
@ 2011-08-25 14:19 ` Sascha Hauer
  2011-08-25 16:21   ` Liam Girdwood
  1 sibling, 1 reply; 6+ messages in thread
From: Sascha Hauer @ 2011-08-25 14:19 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: alsa-devel, Mark Brown, Liam Girdwood

On Thu, Aug 25, 2011 at 03:54:55PM +0200, Wolfram Sang wrote:
> If the channel is allocated as writecombine, then mmaping it should also
> use writecombine. Also, add a proper device for the call. Ported from a
> similar fix for mach-mxs.
> 
> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Liam Girdwood <lrg@ti.com>
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>

both:

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>


> ---
>  sound/soc/imx/imx-ssi.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
> index 10a8e27..3b8d5cd 100644
> --- a/sound/soc/imx/imx-ssi.c
> +++ b/sound/soc/imx/imx-ssi.c
> @@ -357,8 +357,8 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream,
>  	struct snd_pcm_runtime *runtime = substream->runtime;
>  	int ret;
>  
> -	ret = dma_mmap_coherent(NULL, vma, runtime->dma_area,
> -			runtime->dma_addr, runtime->dma_bytes);
> +	ret = dma_mmap_writecombine(substream->pcm->card->dev, vma,
> +		runtime->dma_area, runtime->dma_addr, runtime->dma_bytes);
>  
>  	pr_debug("%s: ret: %d %p 0x%08x 0x%08x\n", __func__, ret,
>  			runtime->dma_area,
> -- 
> 1.7.5.4
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

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

* Re: [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently
  2011-08-25 14:19 ` [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Sascha Hauer
@ 2011-08-25 16:21   ` Liam Girdwood
  2011-08-31 19:33     ` Wolfram Sang
  0 siblings, 1 reply; 6+ messages in thread
From: Liam Girdwood @ 2011-08-25 16:21 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: alsa-devel@alsa-project.org, Mark Brown, Wolfram Sang

On 25/08/11 15:19, Sascha Hauer wrote:
> On Thu, Aug 25, 2011 at 03:54:55PM +0200, Wolfram Sang wrote:
>> If the channel is allocated as writecombine, then mmaping it should also
>> use writecombine. Also, add a proper device for the call. Ported from a
>> similar fix for mach-mxs.
>>
>> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
>> Cc: Sascha Hauer <s.hauer@pengutronix.de>
>> Cc: Liam Girdwood <lrg@ti.com>
>> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> 
> both:
> 
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> 

Acked-by: Liam Girdwood <lrg@ti.com>

> 
>> ---
>>  sound/soc/imx/imx-ssi.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
>> index 10a8e27..3b8d5cd 100644
>> --- a/sound/soc/imx/imx-ssi.c
>> +++ b/sound/soc/imx/imx-ssi.c
>> @@ -357,8 +357,8 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream,
>>  	struct snd_pcm_runtime *runtime = substream->runtime;
>>  	int ret;
>>  
>> -	ret = dma_mmap_coherent(NULL, vma, runtime->dma_area,
>> -			runtime->dma_addr, runtime->dma_bytes);
>> +	ret = dma_mmap_writecombine(substream->pcm->card->dev, vma,
>> +		runtime->dma_area, runtime->dma_addr, runtime->dma_bytes);
>>  
>>  	pr_debug("%s: ret: %d %p 0x%08x 0x%08x\n", __func__, ret,
>>  			runtime->dma_area,
>> -- 
>> 1.7.5.4
>>
>>
> 

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

* Re: [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently
  2011-08-25 16:21   ` Liam Girdwood
@ 2011-08-31 19:33     ` Wolfram Sang
  2011-08-31 19:34       ` Mark Brown
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfram Sang @ 2011-08-31 19:33 UTC (permalink / raw)
  To: Liam Girdwood; +Cc: Sascha Hauer, Mark Brown, alsa-devel@alsa-project.org


[-- Attachment #1.1: Type: text/plain, Size: 891 bytes --]

On Thu, Aug 25, 2011 at 05:21:32PM +0100, Liam Girdwood wrote:
> On 25/08/11 15:19, Sascha Hauer wrote:
> > On Thu, Aug 25, 2011 at 03:54:55PM +0200, Wolfram Sang wrote:
> >> If the channel is allocated as writecombine, then mmaping it should also
> >> use writecombine. Also, add a proper device for the call. Ported from a
> >> similar fix for mach-mxs.
> >>
> >> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> >> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> >> Cc: Liam Girdwood <lrg@ti.com>
> >> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> > 
> > both:
> > 
> > Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> > 
> 
> Acked-by: Liam Girdwood <lrg@ti.com>

Mark, can you pick those two up?

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

* Re: [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently
  2011-08-31 19:33     ` Wolfram Sang
@ 2011-08-31 19:34       ` Mark Brown
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2011-08-31 19:34 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: Sascha Hauer, Liam Girdwood, alsa-devel@alsa-project.org

On Wed, Aug 31, 2011 at 09:33:58PM +0200, Wolfram Sang wrote:
> On Thu, Aug 25, 2011 at 05:21:32PM +0100, Liam Girdwood wrote:

> > Acked-by: Liam Girdwood <lrg@ti.com>

> Mark, can you pick those two up?

I already applied them.

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

end of thread, other threads:[~2011-08-31 19:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-25 13:54 [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Wolfram Sang
2011-08-25 13:54 ` [RFC 2/2] ASoC: imx: use more robust checking of available streams Wolfram Sang
2011-08-25 14:19 ` [RFC 1/2] ASoC: imx-ssi: use dma_writecombine consistently Sascha Hauer
2011-08-25 16:21   ` Liam Girdwood
2011-08-31 19:33     ` Wolfram Sang
2011-08-31 19:34       ` Mark Brown

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).