[PATCH] ALSA: msnd: Use proper mmap method
The old ISA MSND driver basically maps the iomem as the DMA buffer. For this type of buffer, we have already the standard mmap helper, snd_pcm_lib_mmap_iomem(). Set the DMA address and use the standard helper for allowing the mmap on all architectures properly.
Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/isa/msnd/msnd.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/isa/msnd/msnd.c b/sound/isa/msnd/msnd.c index 4fbc22a5bc5a..e23eaf449c50 100644 --- a/sound/isa/msnd/msnd.c +++ b/sound/isa/msnd/msnd.c @@ -473,6 +473,7 @@ static int snd_msnd_playback_open(struct snd_pcm_substream *substream) snd_msnd_enable_irq(chip);
runtime->dma_area = (__force void *)chip->mappedbase; + runtime->dma_addr = chip->base; runtime->dma_bytes = 0x3000;
chip->playback_substream = substream; @@ -566,6 +567,7 @@ static const struct snd_pcm_ops snd_msnd_playback_ops = { .prepare = snd_msnd_playback_prepare, .trigger = snd_msnd_playback_trigger, .pointer = snd_msnd_playback_pointer, + .mmap = snd_pcm_lib_mmap_iomem, };
static int snd_msnd_capture_open(struct snd_pcm_substream *substream) @@ -576,6 +578,7 @@ static int snd_msnd_capture_open(struct snd_pcm_substream *substream) set_bit(F_AUDIO_READ_INUSE, &chip->flags); snd_msnd_enable_irq(chip); runtime->dma_area = (__force void *)chip->mappedbase + 0x3000; + runtime->dma_addr = chip->base + 0x3000; runtime->dma_bytes = 0x3000; memset(runtime->dma_area, 0, runtime->dma_bytes); chip->capture_substream = substream; @@ -662,6 +665,7 @@ static const struct snd_pcm_ops snd_msnd_capture_ops = { .prepare = snd_msnd_capture_prepare, .trigger = snd_msnd_capture_trigger, .pointer = snd_msnd_capture_pointer, + .mmap = snd_pcm_lib_mmap_iomem, };
On Mon, 09 Aug 2021 15:59:26 +0200, Takashi Iwai wrote:
The old ISA MSND driver basically maps the iomem as the DMA buffer. For this type of buffer, we have already the standard mmap helper, snd_pcm_lib_mmap_iomem(). Set the DMA address and use the standard helper for allowing the mmap on all architectures properly.
We need to set the different PCM INFO flag for this. Will resubmit v2 patch covering that, too.
Takashi
participants (1)
-
Takashi Iwai