* [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
@ 2019-08-05 9:11 Christoph Hellwig
2019-08-05 9:22 ` Takashi Iwai
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Christoph Hellwig @ 2019-08-05 9:11 UTC (permalink / raw)
To: linux-sh
Replace the local hack with the dma_can_mmap helper to check if
a given device supports mapping DMA allocations to userspace.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
sound/core/pcm_native.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 703857aab00f..81c82c3ee8a2 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -220,12 +220,11 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
{
if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_MMAP))
return false;
- /* architecture supports dma_mmap_coherent()? */
-#if defined(CONFIG_ARCH_NO_COHERENT_DMA_MMAP) || !defined(CONFIG_HAS_DMA)
+ if (!dma_can_mmap(substream->dma_buffer.dev.dev))
+ return false;
if (!substream->ops->mmap &&
substream->dma_buffer.dev.type = SNDRV_DMA_TYPE_DEV)
return false;
-#endif
return true;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
2019-08-05 9:11 [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_* Christoph Hellwig
@ 2019-08-05 9:22 ` Takashi Iwai
2019-08-06 5:29 ` Christoph Hellwig
2019-08-06 6:00 ` Takashi Iwai
2 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2019-08-05 9:22 UTC (permalink / raw)
To: linux-sh
On Mon, 05 Aug 2019 11:11:56 +0200,
Christoph Hellwig wrote:
>
> Replace the local hack with the dma_can_mmap helper to check if
> a given device supports mapping DMA allocations to userspace.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> sound/core/pcm_native.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> index 703857aab00f..81c82c3ee8a2 100644
> --- a/sound/core/pcm_native.c
> +++ b/sound/core/pcm_native.c
> @@ -220,12 +220,11 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
> {
> if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_MMAP))
> return false;
> - /* architecture supports dma_mmap_coherent()? */
> -#if defined(CONFIG_ARCH_NO_COHERENT_DMA_MMAP) || !defined(CONFIG_HAS_DMA)
> + if (!dma_can_mmap(substream->dma_buffer.dev.dev))
> + return false;
> if (!substream->ops->mmap &&
> substream->dma_buffer.dev.type = SNDRV_DMA_TYPE_DEV)
> return false;
> -#endif
This won't work as expected, unfortunately. It's a bit tricky check,
since the driver may have its own mmap implementation via
substream->ops->mmap, and the dma_buffer.dev.dev might point to
another object depending on the dma_buffer.dev.type.
So please replace with something like below:
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -221,11 +221,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_MMAP))
return false;
/* architecture supports dma_mmap_coherent()? */
-#if defined(CONFIG_ARCH_NO_COHERENT_DMA_MMAP) || !defined(CONFIG_HAS_DMA)
if (!substream->ops->mmap &&
- substream->dma_buffer.dev.type = SNDRV_DMA_TYPE_DEV)
+ substream->dma_buffer.dev.type = SNDRV_DMA_TYPE_DEV &&
+ !dma_can_mmap(substream->dma_buffer.dev.dev))
return false;
-#endif
return true;
}
Thanks!
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
2019-08-05 9:11 [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_* Christoph Hellwig
2019-08-05 9:22 ` Takashi Iwai
@ 2019-08-06 5:29 ` Christoph Hellwig
2019-08-06 6:00 ` Takashi Iwai
2 siblings, 0 replies; 4+ messages in thread
From: Christoph Hellwig @ 2019-08-06 5:29 UTC (permalink / raw)
To: linux-sh
On Mon, Aug 05, 2019 at 11:22:03AM +0200, Takashi Iwai wrote:
> This won't work as expected, unfortunately. It's a bit tricky check,
> since the driver may have its own mmap implementation via
> substream->ops->mmap, and the dma_buffer.dev.dev might point to
> another object depending on the dma_buffer.dev.type.
>
> So please replace with something like below:
From my gut feeling I'd reorder it a bit to make it more clear like
this:
http://git.infradead.org/users/hch/misc.git/commitdiff/958fccf54d00c16740522f818d23f9350498e911
if this is fine it'll be in the next version, waiting for a little more
feedback on the other patches.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
2019-08-05 9:11 [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_* Christoph Hellwig
2019-08-05 9:22 ` Takashi Iwai
2019-08-06 5:29 ` Christoph Hellwig
@ 2019-08-06 6:00 ` Takashi Iwai
2 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2019-08-06 6:00 UTC (permalink / raw)
To: linux-sh
On Tue, 06 Aug 2019 07:29:49 +0200,
Christoph Hellwig wrote:
>
> On Mon, Aug 05, 2019 at 11:22:03AM +0200, Takashi Iwai wrote:
> > This won't work as expected, unfortunately. It's a bit tricky check,
> > since the driver may have its own mmap implementation via
> > substream->ops->mmap, and the dma_buffer.dev.dev might point to
> > another object depending on the dma_buffer.dev.type.
> >
> > So please replace with something like below:
>
> >From my gut feeling I'd reorder it a bit to make it more clear like
> this:
>
> http://git.infradead.org/users/hch/misc.git/commitdiff/958fccf54d00c16740522f818d23f9350498e911
>
> if this is fine it'll be in the next version, waiting for a little more
> feedback on the other patches.
Yes, the new one looks good.
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Thanks!
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-08-06 6:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-05 9:11 [PATCH 4/7] ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_* Christoph Hellwig
2019-08-05 9:22 ` Takashi Iwai
2019-08-06 5:29 ` Christoph Hellwig
2019-08-06 6:00 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox