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

Commit bce6c2b5 authored by Matt Ranostay's avatar Matt Ranostay Committed by Takashi Iwai
Browse files

[ALSA] hda: disable power management on fixed ports



Power management can't be enabled on fixed ports, since the presence
will always return false and prevent output.

Signed-off-by: default avatarMatthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3c9a3203
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3016,12 +3016,16 @@ static int stac92xx_init(struct hda_codec *codec)
					? STAC_HP_EVENT : STAC_PWR_EVENT;
		int pinctl = snd_hda_codec_read(codec, spec->pwr_nids[i],
					0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
		int def_conf = snd_hda_codec_read(codec, spec->pwr_nids[i],
					0, AC_VERB_GET_CONFIG_DEFAULT, 0);
		/* outputs are only ports capable of power management
		 * any attempts on powering down a input port cause the
		 * referenced VREF to act quirky.
		 */
		if (pinctl & AC_PINCTL_IN_EN)
			continue;
		if (get_defcfg_connect(def_conf) != AC_JACK_PORT_FIXED)
			continue;
		enable_pin_detect(codec, spec->pwr_nids[i], event | i);
		codec->patch_ops.unsol_event(codec, (event | i) << 26);
	}