[alsa-devel] Device creation order

Lennart Poettering mznyfn at 0pointer.de
Fri Apr 3 03:54:30 CEST 2009


PulseAudio listens for hotplugged audio devices via hal/udev. For each
card ALSA creates a bunch of device nodes in /dev. Before PA can open
the card it needs to make sure that all devices nodes of the card got
properly created. I.e. to make sure that surround sound and SPDIF
works it is not sufficient to wait until one PCM device is available,
but instead that *all* devices that belong to the card are available,
i.e. device nodes created with permissions and ACLs set up
correctly. Unfortunately there is no signal from udev/hal/kernel that
would tell me explicitly that all subdevices of a specific devices are
completely enumerated and device files created for. I have been
discussing this a bit with Kay Sievers and we came to the conclusion
that a simple fix would be if we could rely that the control
(i.e. /dev/snd/controlCxx) device is always the last device to be
created for a card.

Looking at the drivers this seems to be generally the case, so I was
wondering if I can rely on this? Do all drivers behave like this? Do
all drivers expose a control device? Can we officially declare it part
of the userspace API that the control device is the last one to be


Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4

More information about the Alsa-devel mailing list