summaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2021-08-08 09:01:16 +0200
committerTakashi Iwai <tiwai@suse.de>2021-08-09 07:52:31 +0200
commitdc0dc8a73e8e4dc33fba93dfe23356cc5a500c57 (patch)
tree4c0c7a98a67476e0f81dcee18a0bbf5c146a5177 /sound/core
parent739d0959fbed23838a96c48fbce01dd2f6fb2c5f (diff)
downloadlinux-dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57.tar.gz
linux-dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57.tar.bz2
linux-dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57.zip
ALSA: pcm: Fix mmap breakage without explicit buffer setup
The recent fix c4824ae7db41 ("ALSA: pcm: Fix mmap capability check") restricts the mmap capability only to the drivers that properly set up the buffers, but it caused a regression for a few drivers that manage the buffer on its own way. For those with UNKNOWN buffer type (i.e. the uninitialized / unused substream->dma_buffer), just assume that the driver handles the mmap properly and blindly trust the hardware info bit. Fixes: c4824ae7db41 ("ALSA: pcm: Fix mmap capability check") Reported-and-tested-by: Jeff Woods <jwoods@fnordco.com> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/s5him0gpghv.wl-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/pcm_native.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 09c0e2a6489c..71323d807dbf 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
switch (substream->dma_buffer.dev.type) {
case SNDRV_DMA_TYPE_UNKNOWN:
- return false;
+ /* we can't know the device, so just assume that the driver does
+ * everything right
+ */
+ return true;
case SNDRV_DMA_TYPE_CONTINUOUS:
case SNDRV_DMA_TYPE_VMALLOC:
return true;