ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
authorChristoph Hellwig <hch@lst.de>
Sat, 3 Aug 2019 10:31:59 +0000 (13:31 +0300)
committerChristoph Hellwig <hch@lst.de>
Wed, 4 Sep 2019 09:13:18 +0000 (11:13 +0200)
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>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_native.c

index 703857a..9763c18 100644 (file)
@@ -220,13 +220,12 @@ 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)
-               return false;
-#endif
-       return true;
+
+       if (substream->ops->mmap ||
+           substream->dma_buffer.dev.type != SNDRV_DMA_TYPE_DEV)
+               return true;
+
+       return dma_can_mmap(substream->dma_buffer.dev.dev);
 }
 
 static int constrain_mask_params(struct snd_pcm_substream *substream,