At Fri, 29 Nov 2013 14:30:48 +0800, David Henningsson wrote:
2013-11-28 22:57, Lin, Mengdong skrev:
Hi Takashi,
We're trying to reduce the HD-A driver initialization time when more than one codecs are connected to the bus, but are blocked. Would you please share some advices on this?
Usually, there is one HD-A controller connecting to two codecs: one on-board codec and one integrated display codec. During initialization, the codecs are created and configured in a serial way.
Creating a codec may cost 6~20ms, and then building controls make cost about 15~30ms.
Sorry for interrupting, but I just wonder - I assume you have a maximum of 4 CPUs. Can't the other 3 CPUs be used to load other non-audio hardware in parallel instead? It sounds you're going to run into lock contention instead if you try to modify the same card from two threads simultaneously.
IIRC, PCI device probes are done sequentially because asynchronous probe caused too many troubles. And if it's a module, it's anyway more strictly serialized.
BTW, reading the description above again, I wonder why building controls takes so long time. It's essentially only a bunch of ctl element creations, so it should be almost purely a CPU-bound task...
Takashi