[alsa-devel] MMAP in ALSA
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?
> 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?
More information about the Alsa-devel