In kernels 3.0 and 3.1, no automute control was created unless Headphone pins were present. This patch enables automute for the case where there are just Line Out and Speaker pins.
BugLink: http://bugs.launchpad.net/bugs/882693 Cc: stable@kernel.org (3.0 and 3.1) Tested-by: Marc Legris marc.legris@canonical.com Signed-off-by: David Henningsson david.henningsson@canonical.com --- sound/pci/hda/patch_realtek.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index e7dc034..c85ce60 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1605,7 +1605,7 @@ static void alc_init_auto_hp(struct hda_codec *codec) spec->automute = 1; spec->automute_mode = ALC_AUTOMUTE_PIN; } - if (spec->automute && cfg->line_out_pins[0] && + if (cfg->line_out_pins[0] && cfg->speaker_pins[0] && cfg->line_out_pins[0] != cfg->hp_pins[0] && cfg->line_out_pins[0] != cfg->speaker_pins[0]) { @@ -1619,6 +1619,10 @@ static void alc_init_auto_hp(struct hda_codec *codec) AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_FRONT_EVENT); spec->detect_line = 1; + if (!spec->automute) { + spec->automute = 1; + spec->automute_mode = ALC_AUTOMUTE_PIN; + } } spec->automute_lines = spec->detect_line; }