ALSA: hda/realtek - Avoid bogus HP-pin assignment
authorTakashi Iwai <tiwai@suse.de>
Mon, 26 Sep 2011 08:41:21 +0000 (10:41 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 26 Sep 2011 09:13:43 +0000 (11:13 +0200)
When the headphone pin is assigned as primary output to line_out_pins[],
the automatic HP-pin assignment by ASSID must be suppressed.  Otherwise
a wrong pin might be assigned to the headphone and breaks the auto-mute.

Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
sound/pci/hda/patch_realtek.c

index 0503c999e7d361290ac99945dc4eef7509ca0ed3..91a538173c977e75fcabcdb8767b24d8dd6207a9 100644 (file)
@@ -1321,7 +1321,9 @@ do_sku:
         * 15   : 1 --> enable the function "Mute internal speaker
         *              when the external headphone out jack is plugged"
         */
-       if (!spec->autocfg.hp_pins[0]) {
+       if (!spec->autocfg.hp_pins[0] &&
+           !(spec->autocfg.line_out_pins[0] &&
+             spec->autocfg.line_out_type == AUTO_PIN_HP_OUT)) {
                hda_nid_t nid;
                tmp = (ass >> 11) & 0x3;        /* HP to chassis */
                if (tmp == 0)