diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-04 17:43:31 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-05 06:22:30 -0400 |
commit | f3bf3e456a8be9b359a8f4ff458ae1be4fc4c516 (patch) | |
tree | d1800baf16a3fb020f19ab2fb34aeb3aa19901da /sound/soc/soc-dapm.c | |
parent | 9b8a83b205bd07b06784028effd94515fe9278c3 (diff) |
ASoC: Don't mark the outputs of supplies as dirty on state changes
The whole point of supply widgets is that they aren't inputs to their
sinks so a state change in a supply should never affect the state of the
widget being supplied and we don't need to mark them as dirty.
Power Path Neighbour
Before: 69 727 905
After: 63 607 731
This is particularly useful where supplies affect large portions of the
chip (eg, a bandgap supplying the analogue sections).
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index c39146d435e2..cbca1ddb6619 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -1260,11 +1260,18 @@ static void dapm_widget_set_power(struct snd_soc_dapm_widget *w, bool power, | |||
1260 | path->connect); | 1260 | path->connect); |
1261 | } | 1261 | } |
1262 | } | 1262 | } |
1263 | list_for_each_entry(path, &w->sinks, list_source) { | 1263 | switch (w->id) { |
1264 | if (path->sink) { | 1264 | case snd_soc_dapm_supply: |
1265 | dapm_widget_set_peer_power(path->sink, power, | 1265 | /* Supplies can't affect their outputs, only their inputs */ |
1266 | path->connect); | 1266 | break; |
1267 | default: | ||
1268 | list_for_each_entry(path, &w->sinks, list_source) { | ||
1269 | if (path->sink) { | ||
1270 | dapm_widget_set_peer_power(path->sink, power, | ||
1271 | path->connect); | ||
1272 | } | ||
1267 | } | 1273 | } |
1274 | break; | ||
1268 | } | 1275 | } |
1269 | 1276 | ||
1270 | if (power) | 1277 | if (power) |