Alan Stern wrote:
- The first interface is probed, which might contain the mixer controls
- snd_card_register is called, which sends a signal to userspace
- PulseAudio probes the device and notices that it has no PCMs, so it
ignores the device 4) The second interface is probed, which adds the PCMs 5) snd_card_register is again called, which is a no-op since the card already exist 6) User is unhappy because his plugged in sound card did not show up in PulseAudio.
So, assuming all this is right, it seems like we need some type of callback from the usb driver when all the interfaces for the sound card has been probed, so we can call snd_card_register at that point instead. Thoughts?
The driver probably doesn't know when all the interfaces have been probed. Maybe it would be better to send a signal to userspace each time snd_card_register is called, even if nothing is done.
New devices will result in a signal because they result in new device nodes.
Alternatively, when the first interface is probed, the driver could claim all the other interfaces belonging to the same association.
The driver already does this.
Regards, Clemens