On Fri, 3 Apr 2009, Lennart Poettering wrote: > Heya! > > 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 > created? Unfortunately, driver may use more complex scenarios like: - some hardware requires additional firmware - in this case devices might be created, but they are not useable until firmware is loaded - dynamic device creation at runtime - for example we have an experimental HDA driver configuration code which might change the arrangement of PCM devices on request from the user space I would suggest to wait awhile with some small timeout (0.5 sec?) for all devices to get the usual static arrangement working and handle extra dynamic cases, too. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel