[alsa-devel] [PATCH 0/7] DAPM power sequencing changes

Mark Brown broonie at opensource.wolfsonmicro.com
Mon Jun 8 16:27:40 CEST 2009

I've implemented what I hope are some improvements to the DAPM power
sequence application.  Currently when it is implementing power changes
DAPM will do one register write per widget.  Normally this leads to
multiple writes to the same register since power control tends to be
clustered in a few registers, slowing things down.  This can get
noticable on slow or heavily contended buses, especially around resume.
The overall effect of these changes is that DAPM will try to minimise
the number of register writes it does when implementing power sequences.

As with any substantial change in the power sequencing there is a risk
that there may have been some performance regressions on some systems -
my biggest concern is that some thing were being helped by the delays
introduced by the repeated register writes and may require special
handling to fix.  My hope is that this won't happen if anything it should
fix some problems by ensuring that both left and right channels of
stereo paths get powered up together but without wide testing that's
hard to guarantee.  Any testing that you can do on your systems would be
greatly appreciated.

Obviously this is quite an invasive change so I don't intend to submit
to ALSA until after the 2.6.31 merge window has closed.  The patches can
be found here for the time being:

  git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git dapm

Mark Brown (7):
      ASoC: Sort DAPM power sequences while building lists
      ASoC: Factor out DAPM sequence execution
      ASoC: Coalesce register writes for DAPM sequences
      ASoC: Sort specialised mixers and muxes together
      ASoC: Coalesce power updates for DAPM widgets with events
      ASoC: Coalesce power updates for PGAs
      ASoC: Make DAPM power sequence lists local variables

 include/sound/soc.h  |    2 -
 sound/soc/soc-dapm.c |  302 +++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 227 insertions(+), 77 deletions(-)

More information about the Alsa-devel mailing list