All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: alsa-devel@alsa-project.org
Subject: [PATCH 0/7] DAPM power sequencing changes
Date: Mon, 8 Jun 2009 15:27:40 +0100	[thread overview]
Message-ID: <20090608142734.GA6137@rakim.wolfsonmicro.main> (raw)

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(-)

             reply	other threads:[~2009-06-08 14:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-08 14:27 Mark Brown [this message]
2009-06-08 14:28 ` [PATCH 1/7] ASoC: Sort DAPM power sequences while building lists Mark Brown
2009-06-08 14:28 ` [PATCH 2/7] ASoC: Factor out DAPM sequence execution Mark Brown
2009-06-08 14:28 ` [PATCH 3/7] ASoC: Coalesce register writes for DAPM sequences Mark Brown
2009-06-08 14:28 ` [PATCH 4/7] ASoC: Sort specialised mixers and muxes together Mark Brown
2009-06-08 14:28 ` [PATCH 5/7] ASoC: Coalesce power updates for DAPM widgets with events Mark Brown
2009-06-08 14:28 ` [PATCH 6/7] ASoC: Coalesce power updates for PGAs Mark Brown
2009-06-08 14:28 ` [PATCH 7/7] ASoC: Make DAPM power sequence lists local variables Mark Brown

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=20090608142734.GA6137@rakim.wolfsonmicro.main \
    --to=broonie@opensource.wolfsonmicro.com \
    --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.