Commit d805002b authored by Mark Brown's avatar Mark Brown
Browse files

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: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 35c64bca
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -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;