diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-03 21:06:40 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-04 16:50:20 +0100 |
commit | db432b414e20b7218bbd91654d7be9c524a4337a (patch) | |
tree | 5bd14d5a82768553518184e1bf309ad463ce4384 /include/sound/soc-dapm.h | |
parent | 565631008f6dd27c3e975c2103141f344d80b84e (diff) | |
download | linux-db432b414e20b7218bbd91654d7be9c524a4337a.tar.gz linux-db432b414e20b7218bbd91654d7be9c524a4337a.tar.bz2 linux-db432b414e20b7218bbd91654d7be9c524a4337a.zip |
ASoC: Do DAPM power checks only for widgets changed since last run
In order to reduce the number of DAPM power checks we run keep a list of
widgets which have been changed since the last DAPM run and iterate over
that rather than the full widget list. Whenever we change the power state
for a widget we add all the source and sink widgets it has to the dirty
list, ensuring that all widgets in the path are checked.
This covers more widgets than we need to as some of the neighbour widgets
won't be connected but it's simpler as a first step. On one system I tried
this gave:
Power Path Neighbour
Before: 207 1939 2461
After: 114 1066 1327
which seems useful.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound/soc-dapm.h')
-rw-r--r-- | include/sound/soc-dapm.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index bb5953219d0b..c080635b3c35 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h @@ -492,6 +492,7 @@ struct snd_soc_dapm_widget { /* used during DAPM updates */ struct list_head power_list; + struct list_head dirty; }; struct snd_soc_dapm_update { |