mirror of https://gitee.com/openkylin/linux.git
ASoC: Factor out widget power check operation
We've got the same code in two different places, let's have it in a single place instead. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
35c64bcad5
commit
d805002bef
|
@ -771,6 +771,14 @@ int dapm_reg_event(struct snd_soc_dapm_widget *w,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(dapm_reg_event);
|
||||
|
||||
static int dapm_widget_power_check(struct snd_soc_dapm_widget *w)
|
||||
{
|
||||
if (w->force)
|
||||
return 1;
|
||||
else
|
||||
return w->power_check(w);
|
||||
}
|
||||
|
||||
/* Generic check to see if a widget should be powered.
|
||||
*/
|
||||
static int dapm_generic_check_power(struct snd_soc_dapm_widget *w)
|
||||
|
@ -840,13 +848,7 @@ static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
|
|||
if (!path->sink)
|
||||
continue;
|
||||
|
||||
if (path->sink->force) {
|
||||
power = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (path->sink->power_check &&
|
||||
path->sink->power_check(path->sink)) {
|
||||
if (dapm_widget_power_check(path->sink)) {
|
||||
power = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1234,10 +1236,7 @@ static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
|
|||
break;
|
||||
|
||||
default:
|
||||
if (!w->force)
|
||||
power = w->power_check(w);
|
||||
else
|
||||
power = 1;
|
||||
power = dapm_widget_power_check(w);
|
||||
|
||||
dapm_widget_set_power(w, power, up_list, down_list);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue