Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e5341b9 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Introduce hda_call_check_power_status() helper



Replace the explicit ifdef check and call of check_power_status ops with
a new helper function, hda_call_check_power_status().

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 9396d317
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -2228,10 +2228,7 @@ int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol,
		change |= snd_hda_codec_amp_update(codec, nid, 1, dir, idx,
						   HDA_AMP_MUTE,
						   *valp ? 0 : HDA_AMP_MUTE);
#ifdef CONFIG_SND_HDA_POWER_SAVE
	if (codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, nid);
#endif
	hda_call_check_power_status(codec, nid);
	snd_hda_power_down(codec);
	return change;
}
+12 −0
Original line number Diff line number Diff line
@@ -989,6 +989,18 @@ int snd_hda_suspend(struct hda_bus *bus);
int snd_hda_resume(struct hda_bus *bus);
#endif

#ifdef CONFIG_SND_HDA_POWER_SAVE
static inline
int hda_call_check_power_status(struct hda_codec *codec, hda_nid_t nid)
{
	if (codec->patch_ops.check_power_status)
		return codec->patch_ops.check_power_status(codec, nid);
	return 0;
}
#else	
#define hda_call_check_power_status(codec, nid)		0
#endif

/*
 * get widget information
 */
+3 −8
Original line number Diff line number Diff line
@@ -3729,10 +3729,7 @@ static int alc_init(struct hda_codec *codec)
	if (spec->init_hook)
		spec->init_hook(codec);
#ifdef CONFIG_SND_HDA_POWER_SAVE
	if (codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, 0x01);
#endif
	hda_call_check_power_status(codec, 0x01);
	return 0;
}
@@ -4128,8 +4125,7 @@ static int alc_resume(struct hda_codec *codec)
	codec->patch_ops.init(codec);
	snd_hda_codec_resume_amp(codec);
	snd_hda_codec_resume_cache(codec);
	if (codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, 0x01);
	hda_call_check_power_status(codec, 0x01);
	return 0;
}
#endif
@@ -14703,8 +14699,7 @@ static int alc269_resume(struct hda_codec *codec)
	snd_hda_codec_resume_amp(codec);
	snd_hda_codec_resume_cache(codec);
	if (codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, 0x01);
	hda_call_check_power_status(codec, 0x01);
	return 0;
}
#endif /* SND_HDA_NEEDS_RESUME */
+4 −8
Original line number Diff line number Diff line
@@ -4372,11 +4372,9 @@ static int stac92xx_init(struct hda_codec *codec)
			stac_issue_unsol_event(codec, nid);
	}

#ifdef CONFIG_SND_HDA_POWER_SAVE
	/* sync mute LED */
	if (spec->gpio_led && codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, 0x01);
#endif	
	if (spec->gpio_led)
		hda_call_check_power_status(codec, 0x01);
	if (spec->dac_list)
		stac92xx_power_down(codec);
	return 0;
@@ -4958,11 +4956,9 @@ static int stac92xx_resume(struct hda_codec *codec)
			stac_issue_unsol_event(codec,
					       spec->autocfg.line_out_pins[0]);
	}
#ifdef CONFIG_SND_HDA_POWER_SAVE
	/* sync mute LED */
	if (spec->gpio_led && codec->patch_ops.check_power_status)
		codec->patch_ops.check_power_status(codec, 0x01);
#endif	
	if (spec->gpio_led)
		hda_call_check_power_status(codec, 0x01);
	return 0;
}