All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lennart Poettering <mznyfn@0pointer.de>
To: alsa-devel@alsa-project.org
Subject: Re: Device creation order
Date: Fri, 3 Apr 2009 13:51:55 +0200	[thread overview]
Message-ID: <20090403115155.GC15646@tango.0pointer.de> (raw)
In-Reply-To: <alpine.LNX.2.00.0904030921280.17368@eeebox2.perex-int.cz>

On Fri, 03.04.09 09:31, Jaroslav Kysela (perex@perex.cz) wrote:

> >> 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.
> >
> > Wouldn't the real fix be to make sure that the event from hal/udev
> > happens after all the initialization has finished, i.e. the device got
> > its firmware, all connected layers finished their work etc? Before all
> > that, the audio device is not really available, right?
> 
> But even with this extension, the user space should handle dynamic device 
> reconfiguration (my second example case). The question is, if it makes 
> sense to handle group of devices per card basis or just take single 
> devices and dynamically handle device changes.
> 
> Lennart, why you need to enumerate all devices per card at one time? I 
> think that having mixer access plus one PCM device is enough for minimal 
> configuration for PA.

PA has no clue how the different PCM device nodes of a card relate to
each other. To my knowledge Creative cards have multiple PCM device
nodes that are combined in userspace via 'multi' to make one surround
device. When PA wants to open that we need to make sure that all PCM
devices that are necessary for that are fully created. Since we have
no clue how the PCM devices relate to each other we have no other
option than to wait for all PCM devices.

Also, as Colin noted we probe a few possible combinations of how we
can open the audio device to know which combinations the sound card
supports. It's a bit ugly and slow but the only option right now since
the name hinting API is too limited for this since it does not tell us
which devices can be used simultaneously and which ones are exclusive.

Lennart

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

  parent reply	other threads:[~2009-04-03 11:51 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-03  1:54 Device creation order Lennart Poettering
2009-04-03  7:12 ` Jaroslav Kysela
2009-04-03  7:20   ` Daniel Mack
2009-04-03  7:31     ` Jaroslav Kysela
2009-04-03  7:40       ` Daniel Mack
2009-04-03 10:34       ` Colin Guthrie
2009-04-03 11:51       ` Lennart Poettering [this message]
2009-04-03 11:43     ` Lennart Poettering
2009-04-03  7:38   ` Clemens Ladisch
2009-04-03  7:50     ` Jaroslav Kysela
2009-04-03 11:58       ` Lennart Poettering
2009-04-03 11:56     ` Lennart Poettering
2009-04-05 13:16       ` Wu Fengguang
2009-04-05 14:40         ` Lennart Poettering
2009-04-05 20:29           ` Mark Brown
2009-04-03 11:42   ` Lennart Poettering

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090403115155.GC15646@tango.0pointer.de \
    --to=mznyfn@0pointer.de \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.