ALSA: hda - Record the current speaker / LO mute status in hda_gen_spec
authorTakashi Iwai <tiwai@suse.de>
Wed, 16 Jan 2013 17:18:00 +0000 (18:18 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 16 Jan 2013 17:19:50 +0000 (18:19 +0100)
... to be referred by the codec driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_generic.h

index 0d6c4f7c1c85720c295481f7233fdd5a90eb2b17..186a5546fcb8cd6f45235785b91b020cb73687d8 100644 (file)
@@ -3047,6 +3047,7 @@ void snd_hda_gen_update_outputs(struct hda_codec *codec)
        else
                on = spec->hp_jack_present | spec->line_jack_present;
        on |= spec->master_mute;
+       spec->speaker_muted = on;
        do_automute(codec, ARRAY_SIZE(spec->autocfg.speaker_pins),
                    spec->autocfg.speaker_pins, on);
 
@@ -3060,6 +3061,7 @@ void snd_hda_gen_update_outputs(struct hda_codec *codec)
        else
                on = spec->hp_jack_present;
        on |= spec->master_mute;
+       spec->line_out_muted = on;
        do_automute(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
                    spec->autocfg.line_out_pins, on);
 }
index 6ba580540081dd41b8a3f3e9b74cb477839c3479..d4abf87c969f97e88616a7882842fa88abc0949d 100644 (file)
@@ -170,6 +170,8 @@ struct hda_gen_spec {
        unsigned int auto_mic:1;
        unsigned int automute_speaker:1; /* automute speaker outputs */
        unsigned int automute_lo:1; /* automute LO outputs */
+       unsigned int speaker_muted:1; /* current status of speaker mute */
+       unsigned int line_out_muted:1; /* current status of LO mute */
        unsigned int detect_hp:1;       /* Headphone detection enabled */
        unsigned int detect_lo:1;       /* Line-out detection enabled */
        unsigned int automute_speaker_possible:1; /* there are speakers and either LO or HP */