ALSA: hda/realtek - Fixed single output machine get empty hp sense
authorKailang Yang <kailang@realtek.com>
Thu, 3 Apr 2014 09:28:39 +0000 (17:28 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 3 Apr 2014 09:48:33 +0000 (11:48 +0200)
If it only has single output of HP out of machine.
The driver parser will copy hp_pins to line_out_pins.
hp_pins will empty for alc283_init and alc283_shutup functions.
This will cause not have value for hp_pin_sense.
Add check line_out_type code will solve it .

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index ea2351d119f0a0ff5f10b722995eb0e7b4774688..dba297288398f718eaf3f4272906c1a7fcb78afb 100644 (file)
@@ -3026,6 +3026,11 @@ static void alc283_init(struct hda_codec *codec)
        bool hp_pin_sense;
        int val;
 
+       if (!spec->gen.autocfg.hp_outs) {
+               if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+                       hp_pin = spec->gen.autocfg.line_out_pins[0];
+       }
+
        alc283_restore_default_value(codec);
 
        if (!hp_pin)
@@ -3062,6 +3067,11 @@ static void alc283_shutup(struct hda_codec *codec)
        bool hp_pin_sense;
        int val;
 
+       if (!spec->gen.autocfg.hp_outs) {
+               if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+                       hp_pin = spec->gen.autocfg.line_out_pins[0];
+       }
+
        if (!hp_pin) {
                alc269_shutup(codec);
                return;