[alsa-devel] MMAP in ALSA

Clemens Ladisch clemens at ladisch.de
Tue May 25 10:55:18 CEST 2010


Varadarajan, Srikanth wrote:
> If we have one application using the hardware through ALSA, other
> applications are unable to get access to it. So, we want to have
> PulseAudio on top and use the pulse virtual device to render audio
> through ALSA. Is this a recommended way of having multiple applications
> access one audio HW simultaneously?

Usually yes.

> Is there any other way of handling multiple applications get access to
> the same hardware?

With ALSA's dmix plugin, but this requires that the hardware supports
mmap, i.e., DMA to/from the main memory.

> Also, why are mmap and munmap operations required in ALSA?

They aren't, except for dmix.

> Right now, we do not have mmap and munmap operations exposed.
> Though the hardware constraints have "SNDRV_PCM_INFO_MMAP |
> SNDRV_PCM_INFO_MMAP_VALID" defined.

In most drivers, the buffer management, including mmap, is automatically
handled by the ALSA framework.

> If there is a close enough ALSA implementation in the current Linux
> kernel that I can lookup, please point me to that.

Close to what?  What kind of buffer does your device use, DMA in main
memory, memory-mapped device memory, or PIO?


Regards,
Clemens


More information about the Alsa-devel mailing list