ASoC: Factor out generic widget power checks
This will form a basis for further power check refactoring: the overall goal of these changes is to allow us to check power separately to applying it, allowing improvements in the power sequencing algorithms. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
9b5b0c0159
Коммит
cd0f2d4736
|
@ -581,6 +581,19 @@ static int dapm_generic_apply_power(struct snd_soc_dapm_widget *w)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Generic check to see if a widget should be powered.
|
||||
*/
|
||||
static int dapm_generic_check_power(struct snd_soc_dapm_widget *w)
|
||||
{
|
||||
int in, out;
|
||||
|
||||
in = is_connected_input_ep(w);
|
||||
dapm_clear_walk(w->codec);
|
||||
out = is_connected_output_ep(w);
|
||||
dapm_clear_walk(w->codec);
|
||||
return out != 0 && in != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scan a single DAPM widget for a complete audio path and update the
|
||||
* power status appropriately.
|
||||
|
@ -653,11 +666,7 @@ static int dapm_power_widget(struct snd_soc_codec *codec, int event,
|
|||
}
|
||||
|
||||
/* all other widgets */
|
||||
in = is_connected_input_ep(w);
|
||||
dapm_clear_walk(w->codec);
|
||||
out = is_connected_output_ep(w);
|
||||
dapm_clear_walk(w->codec);
|
||||
power = (out != 0 && in != 0) ? 1 : 0;
|
||||
power = dapm_generic_check_power(w);
|
||||
power_change = (w->power == power) ? 0 : 1;
|
||||
w->power = power;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче