[alsa-devel] Device creation order

Wu Fengguang fengguang.wu at intel.com
Sun Apr 5 15:16:05 CEST 2009

On Fri, Apr 03, 2009 at 01:56:47PM +0200, Lennart Poettering wrote:
> On Fri, 03.04.09 09:38, Clemens Ladisch (clemens at ladisch.de) wrote:
> > > - 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.
> > 
> > The current implementation of the ALSA framework guarantees that the
> > control device file is that latest one to be created for all the devices
> > created at initialization.  Any devices created later depend on some
> > userspace action, so a small timeout won't help in this case.
> > 
> > In other words:
> > 1) When the control device file has been created, all other devices
> >    (that are created during sound card initialization) are
> >    available.
> OK. Very good. I'll then change PA to rely on this behaviour and hope
> that this is considered part of the ALSA userspace API and is not
> changed in the future...
> > 2) When some device file for a specific sound card is created after the
> >    card's control device, the sound card configuration has changed.
> I'll ignore this for now since Jaroslav mentioned drivers doing this
> are still experimental. But eventually we'd need to know some kind of
> 'end notification' for this as well: i..e if the reconfiguration
> causes multiple device nodes to disappear/appear we also need to know
> when they are all complete. A possible simple fix would be to issue an
> udev 'change' event on the control device after the reconfiguration
> finished.

btw, HDMI sink devices could be taught to generate more event types:

- hotplug
  The user connected/disconnected a HDMI device.

- reconfiguration
  The update of HDMI audio capabilities due to some user actions.

- pause/play of audio stream
  An advanced feature in Consumer Electronics Control (CEC) for
  high-level user control of HDMI-connected devices.

The HDMI audio devices will be created at module loading time, and
won't be dynamically created/tear down on hotplug events.  I wonder 
if PA is interested in the HDMI current-connectivity state?


More information about the Alsa-devel mailing list