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

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

ALSA: hda/realtek - Selectively call snd_hda_shutup_pins()



Instead of calling snd_hda_shutup_pins() unconditionally, allow it be
called in spec->shutup callback.  In this way, we can avoid calling
this function if it causes a problem like we see in the next patch
following this.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b785a492
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -282,6 +282,7 @@ static void alc_eapd_shutup(struct hda_codec *codec)
{
	alc_auto_setup_eapd(codec, false);
	msleep(200);
	snd_hda_shutup_pins(codec);
}

/* generic EAPD initialization */
@@ -826,6 +827,7 @@ static inline void alc_shutup(struct hda_codec *codec)

	if (spec && spec->shutup)
		spec->shutup(codec);
	else
		snd_hda_shutup_pins(codec);
}

@@ -2573,15 +2575,13 @@ static void alc269_shutup(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;

	if (spec->codec_variant != ALC269_TYPE_ALC269VB)
		return;

	if (spec->codec_variant == ALC269_TYPE_ALC269VB)
		alc269vb_toggle_power_output(codec, 0);
	if (spec->codec_variant == ALC269_TYPE_ALC269VB &&
			(alc_get_coef0(codec) & 0x00ff) == 0x018) {
		msleep(150);
	}
	snd_hda_shutup_pins(codec);
}

static void alc5505_coef_set(struct hda_codec *codec, unsigned int index_reg,