Commit dc0dc8a7 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: pcm: Fix mmap breakage without explicit buffer setup

The recent fix c4824ae7 ("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: c4824ae7 ("ALSA: pcm: Fix mmap capability check")
Reported-and-tested-by: default avatarJeff Woods <jwoods@fnordco.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/s5him0gpghv.wl-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 739d0959
...@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream) ...@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
switch (substream->dma_buffer.dev.type) { switch (substream->dma_buffer.dev.type) {
case SNDRV_DMA_TYPE_UNKNOWN: 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_CONTINUOUS:
case SNDRV_DMA_TYPE_VMALLOC: case SNDRV_DMA_TYPE_VMALLOC:
return true; return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment