mirror of https://gitee.com/openkylin/linux.git
ASoC: Factor write of widget power out into a separate function
Split the decision about what the new power should be out from the implementation of that decision. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
aa59802ded
commit
05623c4314
|
@ -1197,6 +1197,23 @@ static void dapm_post_sequence_async(void *data, async_cookie_t cookie)
|
|||
}
|
||||
}
|
||||
|
||||
static void dapm_widget_set_power(struct snd_soc_dapm_widget *w, bool power,
|
||||
struct list_head *up_list,
|
||||
struct list_head *down_list)
|
||||
{
|
||||
if (w->power == power)
|
||||
return;
|
||||
|
||||
trace_snd_soc_dapm_widget_power(w, power);
|
||||
|
||||
if (power)
|
||||
dapm_seq_insert(w, up_list, true);
|
||||
else
|
||||
dapm_seq_insert(w, down_list, false);
|
||||
|
||||
w->power = power;
|
||||
}
|
||||
|
||||
static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
|
||||
struct list_head *up_list,
|
||||
struct list_head *down_list)
|
||||
|
@ -1241,17 +1258,7 @@ static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
|
|||
}
|
||||
}
|
||||
|
||||
if (w->power == power)
|
||||
break;
|
||||
|
||||
trace_snd_soc_dapm_widget_power(w, power);
|
||||
|
||||
if (power)
|
||||
dapm_seq_insert(w, up_list, true);
|
||||
else
|
||||
dapm_seq_insert(w, down_list, false);
|
||||
|
||||
w->power = power;
|
||||
dapm_widget_set_power(w, power, up_list, down_list);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue