Commit f3bf3e45 authored by Mark Brown's avatar Mark Brown

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: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 9b8a83b2
...@@ -1260,11 +1260,18 @@ static void dapm_widget_set_power(struct snd_soc_dapm_widget *w, bool power, ...@@ -1260,11 +1260,18 @@ static void dapm_widget_set_power(struct snd_soc_dapm_widget *w, bool power,
path->connect); path->connect);
} }
} }
list_for_each_entry(path, &w->sinks, list_source) { switch (w->id) {
if (path->sink) { case snd_soc_dapm_supply:
dapm_widget_set_peer_power(path->sink, power, /* Supplies can't affect their outputs, only their inputs */
path->connect); break;
default:
list_for_each_entry(path, &w->sinks, list_source) {
if (path->sink) {
dapm_widget_set_peer_power(path->sink, power,
path->connect);
}
} }
break;
} }
if (power) if (power)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment