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

Commit bfc89dec authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda/idt - Clean up power-map check code



Turn off the power-map for unused ports and check the jack-detection
capability in the first place.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f153c6af
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -4365,10 +4365,18 @@ static int stac92xx_init(struct hda_codec *codec)
		hda_nid_t nid = spec->pwr_nids[i];
		int pinctl, def_conf;

		def_conf = snd_hda_codec_get_pincfg(codec, nid);
		def_conf = get_defcfg_connect(def_conf);
		if (def_conf == AC_JACK_PORT_NONE) {
			/* power off unused ports */
			stac_toggle_power_map(codec, nid, 0);
			continue;
		}
		/* power on when no jack detection is available */
		/* or when the VREF is used for controlling LED */
		if (!spec->hp_detect ||
		    spec->vref_mute_led_nid == nid) {
		    spec->vref_mute_led_nid == nid ||
		    !is_jack_detectable(codec, nid)) {
			stac_toggle_power_map(codec, nid, 1);
			continue;
		}
@@ -4386,15 +4394,6 @@ static int stac92xx_init(struct hda_codec *codec)
			stac_toggle_power_map(codec, nid, 1);
			continue;
		}
		def_conf = snd_hda_codec_get_pincfg(codec, nid);
		def_conf = get_defcfg_connect(def_conf);
		/* skip any ports that don't have jacks since presence
 		 * detection is useless */
		if (def_conf != AC_JACK_PORT_NONE &&
		    !is_jack_detectable(codec, nid)) {
			stac_toggle_power_map(codec, nid, 1);
			continue;
		}
		if (enable_pin_detect(codec, nid, STAC_PWR_EVENT)) {
			stac_issue_unsol_event(codec, nid);
			continue;