|
@@ -174,8 +174,12 @@ static void cs_automute(struct hda_codec *codec)
|
|
snd_hda_gen_update_outputs(codec);
|
|
snd_hda_gen_update_outputs(codec);
|
|
|
|
|
|
if (spec->gpio_eapd_hp || spec->gpio_eapd_speaker) {
|
|
if (spec->gpio_eapd_hp || spec->gpio_eapd_speaker) {
|
|
- spec->gpio_data = spec->gen.hp_jack_present ?
|
|
|
|
- spec->gpio_eapd_hp : spec->gpio_eapd_speaker;
|
|
|
|
|
|
+ if (spec->gen.automute_speaker)
|
|
|
|
+ spec->gpio_data = spec->gen.hp_jack_present ?
|
|
|
|
+ spec->gpio_eapd_hp : spec->gpio_eapd_speaker;
|
|
|
|
+ else
|
|
|
|
+ spec->gpio_data =
|
|
|
|
+ spec->gpio_eapd_hp | spec->gpio_eapd_speaker;
|
|
snd_hda_codec_write(codec, 0x01, 0,
|
|
snd_hda_codec_write(codec, 0x01, 0,
|
|
AC_VERB_SET_GPIO_DATA, spec->gpio_data);
|
|
AC_VERB_SET_GPIO_DATA, spec->gpio_data);
|
|
}
|
|
}
|