ASoC: Do DAPM control updates in the middle of DAPM sequences
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 14 Dec 2010 16:13:57 +0000 (16:13 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 17 Dec 2010 11:18:04 +0000 (11:18 +0000)
commit97404f2e0386ac147cec00fc5d89ea475b04bd78
treec84f883afed54cb7d20e74818302a6f960c59317
parent7be31be880ee00c6f8d38184368e8a834923b469
ASoC: Do DAPM control updates in the middle of DAPM sequences

Attempt to minimise audible effects from mixer and mux updates by
implementing the actual register changes between powering down widgets
that have become unused and powering up widgets that are newly used.

This means that we're making the change with the minimum set of widgets
powered, that the input path is connected when we're powering up widgets
(so things like DC offset correction can run with their signal active)
and that we bring things down to cold before switching away.  Since
hardware tends to be designed for the power on/off case more than for
dynamic reconfiguration this should minimise pops and clicks during
reconfiguration while active.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
include/sound/soc-dapm.h
sound/soc/soc-dapm.c