[alsa-devel] [PATCH] hda: disable power management on fixed ports.

Matthew Ranostay mranostay at embeddedalley.com
Fri Feb 29 02:49:42 CET 2008


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

Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
---
diff -r 54a51b975975 pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c	Thu Feb 28 12:46:32 2008 +0100
+++ b/pci/hda/patch_sigmatel.c	Thu Feb 28 20:39:28 2008 -0500
@@ -3015,11 +3015,15 @@ static int stac92xx_init(struct hda_code
 					? 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);


More information about the Alsa-devel mailing list