ASoC: Run bias level changes for all DAPM contexts in parallel
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 Feb 2011 19:49:43 +0000 (11:49 -0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 22 Feb 2011 18:40:54 +0000 (10:40 -0800)
commit9d0624a740b773d961fe0dc454d748c60d892b71
treeab7f2dde596391491d74ae2bc93935dd44b51893
parented5a4c472346e4bc1de37f84bb8d2aca26e59538
ASoC: Run bias level changes for all DAPM contexts in parallel

As bias level changes can be quite time consuming and the bias changes
for multiple devices aren't strongly tied to each other (if anything it
can be advantageous to bring different devices up together) we can improve
the state transition time for multi-component systems by running the bias
level changes for all the devices in parallel. This is very simple to
achieve using the kernel async functionality so use that to schedule the
work.

This should have no practical effect for the overwhelming majority of
systems which have a single DAPM context - we'll bounce into another
thread to do the bias level change but otherwise everything will happen
in exactly the same order as it did before.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/soc-dapm.c