All of lore.kernel.org
 help / color / mirror / Atom feed
* Bug#631963: [PATCH] ALSA: hda - Disable automute feature by default
@ 2011-07-14  2:07 Ben Hutchings
  2011-07-14  8:01 ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Ben Hutchings @ 2011-07-14  2:07 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Toni Mueller, Elimar Riesebieter, 631963, alsa-devel

The default behaviour should be the same as before this feature
was introduced, to avoid user confusion.

Reported-by: Toni Mueller <support@oeko.net>
References: http://bugs.debian.org/631963
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
The code is rather inconsistent in whether 'mode' means the behaviour or
mechanism of automute.  I didn't touch that but you might want to
consider some renaming.

Ben.

 sound/pci/hda/patch_realtek.c |   74 ++---------------------------------------
 1 files changed, 3 insertions(+), 71 deletions(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b48fb43..1247a04 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -306,7 +306,7 @@ struct alc_multi_io {
 };
 
 enum {
-	ALC_AUTOMUTE_PIN,	/* change the pin control */
+	ALC_AUTOMUTE_PIN = 1,	/* change the pin control */
 	ALC_AUTOMUTE_AMP,	/* mute/unmute the pin AMP */
 	ALC_AUTOMUTE_MIXER,	/* mute/unmute mixer widget AMP */
 };
@@ -1599,10 +1599,9 @@ static void alc_init_auto_hp(struct hda_codec *codec)
 		snd_hda_codec_write_cache(codec, nid, 0,
 				  AC_VERB_SET_UNSOLICITED_ENABLE,
 				  AC_USRSP_EN | ALC880_HP_EVENT);
-		spec->automute = 1;
 		spec->automute_mode = ALC_AUTOMUTE_PIN;
 	}
-	if (spec->automute && cfg->line_out_pins[0] &&
+	if (spec->automute_mode && cfg->line_out_pins[0] &&
 	    cfg->line_out_pins[0] != cfg->hp_pins[0] &&
 	    cfg->line_out_pins[0] != cfg->speaker_pins[0]) {
 		for (i = 0; i < cfg->line_outs; i++) {
@@ -1619,7 +1618,7 @@ static void alc_init_auto_hp(struct hda_codec *codec)
 		spec->automute_lines = spec->detect_line;
 	}
 
-	if (spec->automute) {
+	if (spec->automute_mode) {
 		/* create a control for automute mode */
 		alc_add_automute_mode_enum(codec);
 		spec->unsol_event = alc_sku_unsol_event;
@@ -2241,7 +2240,6 @@ static void alc889_automute_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[2] = 0x17;
 	spec->autocfg.speaker_pins[3] = 0x19;
 	spec->autocfg.speaker_pins[4] = 0x1a;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -2259,7 +2257,6 @@ static void alc888_fujitsu_xa3530_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[1] = 0x1b; /* hp */
 	spec->autocfg.speaker_pins[0] = 0x14; /* speaker */
 	spec->autocfg.speaker_pins[1] = 0x15; /* bass */
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -2543,7 +2540,6 @@ static void alc888_acer_aspire_4930g_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->autocfg.speaker_pins[2] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -2555,7 +2551,6 @@ static void alc888_acer_aspire_6530g_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->autocfg.speaker_pins[2] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -2567,7 +2562,6 @@ static void alc888_acer_aspire_7730g_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->autocfg.speaker_pins[2] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -2579,7 +2573,6 @@ static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->autocfg.speaker_pins[2] = 0x1b;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -3667,7 +3660,6 @@ static void alc880_uniwill_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x16;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -3699,7 +3691,6 @@ static void alc880_uniwill_p53_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -3969,7 +3960,6 @@ static void alc880_lg_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -4055,7 +4045,6 @@ static void alc880_lg_lw_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -4128,7 +4117,6 @@ static void alc880_medion_rim_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x1b;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -6277,7 +6265,6 @@ static void alc260_hp_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x0f;
 	spec->autocfg.speaker_pins[0] = 0x10;
 	spec->autocfg.speaker_pins[1] = 0x11;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -6308,7 +6295,6 @@ static void alc260_hp_3013_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x10;
 	spec->autocfg.speaker_pins[1] = 0x11;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -6352,7 +6338,6 @@ static void alc260_hp_3012_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x0f;
 	spec->autocfg.speaker_pins[1] = 0x11;
 	spec->autocfg.speaker_pins[2] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -8887,7 +8872,6 @@ static void alc885_imac24_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x18;
 	spec->autocfg.speaker_pins[1] = 0x1a;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -8901,7 +8885,6 @@ static void alc885_mba21_setup(struct hda_codec *codec)
 
        spec->autocfg.hp_pins[0] = 0x14;
        spec->autocfg.speaker_pins[0] = 0x18;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -8913,7 +8896,6 @@ static void alc885_mbp3_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -8924,7 +8906,6 @@ static void alc885_imac91_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x18;
 	spec->autocfg.speaker_pins[1] = 0x1a;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -8958,7 +8939,6 @@ static void alc882_targa_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x1b;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9405,7 +9385,6 @@ static void alc883_medion_wim2160_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1a;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9559,7 +9538,6 @@ static void alc883_mitac_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9725,7 +9703,6 @@ static void alc888_3st_hp_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->autocfg.speaker_pins[2] = 0x18;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9786,7 +9763,6 @@ static void alc888_lenovo_ms7195_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.line_out_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9797,7 +9773,6 @@ static void alc883_lenovo_nb0763_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9811,7 +9786,6 @@ static void alc883_clevo_m720_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9841,7 +9815,6 @@ static void alc883_2ch_fujitsu_pi2515_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9851,7 +9824,6 @@ static void alc883_haier_w66_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9862,7 +9834,6 @@ static void alc883_lenovo_101e_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.line_out_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->detect_line = 1;
 	spec->automute_lines = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
@@ -9876,7 +9847,6 @@ static void alc883_acer_aspire_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[1] = 0x16;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9907,7 +9877,6 @@ static void alc888_6st_dell_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[1] = 0x15;
 	spec->autocfg.speaker_pins[2] = 0x16;
 	spec->autocfg.speaker_pins[3] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9921,7 +9890,6 @@ static void alc888_lenovo_sky_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[2] = 0x16;
 	spec->autocfg.speaker_pins[3] = 0x17;
 	spec->autocfg.speaker_pins[4] = 0x1a;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9932,7 +9900,6 @@ static void alc883_vaiott_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -9959,7 +9926,6 @@ static void alc883_mode2_setup(struct hda_codec *codec)
 	spec->ext_mic.mux_idx = 0;
 	spec->int_mic.mux_idx = 1;
 	spec->auto_mic = 1;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -11470,7 +11436,6 @@ static void alc262_hp_bpc_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x16;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -11480,7 +11445,6 @@ static void alc262_hp_wildwest_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x16;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -11560,7 +11524,6 @@ static void alc262_hp_t5735_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -11674,7 +11637,6 @@ static void alc262_hippo_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -11684,7 +11646,6 @@ static void alc262_hippo1_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -11748,7 +11709,6 @@ static void alc262_tyan_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -11893,7 +11853,6 @@ static void alc262_toshiba_s06_setup(struct hda_codec *codec)
 	spec->int_mic.pin = 0x12;
 	spec->int_mic.mux_idx = 9;
 	spec->auto_mic = 1;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -11998,7 +11957,6 @@ static void alc262_fujitsu_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.hp_pins[1] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -12045,7 +12003,6 @@ static void alc262_lenovo_3000_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[1] = 0x16;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -13255,7 +13212,6 @@ static void alc268_acer_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -13339,7 +13295,6 @@ static void alc268_acer_lc_setup(struct hda_codec *codec)
 	struct alc_spec *spec = codec->spec;
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -13379,7 +13334,6 @@ static void alc268_dell_setup(struct hda_codec *codec)
 	spec->int_mic.pin = 0x19;
 	spec->int_mic.mux_idx = 1;
 	spec->auto_mic = 1;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -13411,7 +13365,6 @@ static void alc267_quanta_il1_setup(struct hda_codec *codec)
 	spec->int_mic.pin = 0x19;
 	spec->int_mic.mux_idx = 1;
 	spec->auto_mic = 1;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 }
 
@@ -14415,7 +14368,6 @@ static void alc269_quanta_fl1_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -14437,7 +14389,6 @@ static void alc269_lifebook_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[1] = 0x1a;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 }
 
@@ -14510,7 +14461,6 @@ static void alc269_laptop_amic_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -14525,7 +14475,6 @@ static void alc269_laptop_dmic_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -14540,7 +14489,6 @@ static void alc269vb_laptop_amic_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -14555,7 +14503,6 @@ static void alc269vb_laptop_dmic_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -16878,7 +16825,6 @@ static void alc861vd_lenovo_setup(struct hda_codec *codec)
 	struct alc_spec *spec = codec->spec;
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -16953,7 +16899,6 @@ static void alc861vd_dallas_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -18222,7 +18167,6 @@ static void alc662_lenovo_101e_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.line_out_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x15;
-	spec->automute = 1;
 	spec->detect_line = 1;
 	spec->automute_lines = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
@@ -18246,7 +18190,6 @@ static void alc662_eeepc_ep20_setup(struct hda_codec *codec)
 
 	spec->autocfg.hp_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x1b;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
@@ -18256,7 +18199,6 @@ static void alc663_m51va_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18272,7 +18214,6 @@ static void alc663_mode1_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18287,7 +18228,6 @@ static void alc662_mode2_setup(struct hda_codec *codec)
 	struct alc_spec *spec = codec->spec;
 	spec->autocfg.hp_pins[0] = 0x1b;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18303,7 +18243,6 @@ static void alc663_mode3_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18321,7 +18260,6 @@ static void alc663_mode4_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->automute_mixer_nid[0] = 0x0c;
 	spec->automute_mixer_nid[1] = 0x0e;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18339,7 +18277,6 @@ static void alc663_mode5_setup(struct hda_codec *codec)
 	spec->autocfg.speaker_pins[1] = 0x16;
 	spec->automute_mixer_nid[0] = 0x0c;
 	spec->automute_mixer_nid[1] = 0x0e;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18356,7 +18293,6 @@ static void alc663_mode6_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->automute_mixer_nid[0] = 0x0c;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_MIXER;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18373,7 +18309,6 @@ static void alc663_mode7_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18390,7 +18325,6 @@ static void alc663_mode8_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[1] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
 	spec->autocfg.speaker_pins[0] = 0x17;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_PIN;
 	spec->ext_mic.pin = 0x18;
 	spec->ext_mic.mux_idx = 0;
@@ -18405,7 +18339,6 @@ static void alc663_g71v_setup(struct hda_codec *codec)
 	spec->autocfg.hp_pins[0] = 0x21;
 	spec->autocfg.line_out_pins[0] = 0x15;
 	spec->autocfg.speaker_pins[0] = 0x14;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 	spec->detect_line = 1;
 	spec->automute_lines = 1;
@@ -19818,7 +19751,6 @@ static void alc680_base_setup(struct hda_codec *codec)
 	spec->autocfg.inputs[0].type = AUTO_PIN_MIC;
 	spec->autocfg.inputs[1].pin = 0x19;
 	spec->autocfg.inputs[1].type = AUTO_PIN_LINE_IN;
-	spec->automute = 1;
 	spec->automute_mode = ALC_AUTOMUTE_AMP;
 }
 
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ALSA: hda - Disable automute feature by default
  2011-07-14  2:07 Bug#631963: [PATCH] ALSA: hda - Disable automute feature by default Ben Hutchings
@ 2011-07-14  8:01 ` Takashi Iwai
  2011-07-14 13:59   ` Ben Hutchings
  0 siblings, 1 reply; 4+ messages in thread
From: Takashi Iwai @ 2011-07-14  8:01 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: 631963, alsa-devel, Toni Mueller

[I resend this again since it didn't get out due to domain problem of
 alsa-project.org.  If you've already seen the mail, please disregard.]

At Thu, 14 Jul 2011 03:07:51 +0100,
Ben Hutchings wrote:
> 
> The default behaviour should be the same as before this feature
> was introduced, to avoid user confusion.
> 
> Reported-by: Toni Mueller <support@oeko.net>
> References: http://bugs.debian.org/631963
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> ---
> The code is rather inconsistent in whether 'mode' means the behaviour or
> mechanism of automute.  I didn't touch that but you might want to
> consider some renaming.

Sorry, I can't take this.

First, the fix is touching a wrong place.  There are several flags to
control the auto-mute behavior.  spec->automute is a flag to control
the all auto-mute feature including the headphone jack.  For the
line-out jack, it's spec->automute_lines flag.

Secondly, this is a fix of long-standing bug.  With this change, the
driver finally behaves consistently in a way seen in other OS.


thanks,

Takashi

> 
> Ben.
> 
>  sound/pci/hda/patch_realtek.c |   74 ++---------------------------------------
>  1 files changed, 3 insertions(+), 71 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index b48fb43..1247a04 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -306,7 +306,7 @@ struct alc_multi_io {
>  };
>  
>  enum {
> -	ALC_AUTOMUTE_PIN,	/* change the pin control */
> +	ALC_AUTOMUTE_PIN = 1,	/* change the pin control */
>  	ALC_AUTOMUTE_AMP,	/* mute/unmute the pin AMP */
>  	ALC_AUTOMUTE_MIXER,	/* mute/unmute mixer widget AMP */
>  };
> @@ -1599,10 +1599,9 @@ static void alc_init_auto_hp(struct hda_codec *codec)
>  		snd_hda_codec_write_cache(codec, nid, 0,
>  				  AC_VERB_SET_UNSOLICITED_ENABLE,
>  				  AC_USRSP_EN | ALC880_HP_EVENT);
> -		spec->automute = 1;
>  		spec->automute_mode = ALC_AUTOMUTE_PIN;
>  	}
> -	if (spec->automute && cfg->line_out_pins[0] &&
> +	if (spec->automute_mode && cfg->line_out_pins[0] &&
>  	    cfg->line_out_pins[0] != cfg->hp_pins[0] &&
>  	    cfg->line_out_pins[0] != cfg->speaker_pins[0]) {
>  		for (i = 0; i < cfg->line_outs; i++) {
> @@ -1619,7 +1618,7 @@ static void alc_init_auto_hp(struct hda_codec *codec)
>  		spec->automute_lines = spec->detect_line;
>  	}
>  
> -	if (spec->automute) {
> +	if (spec->automute_mode) {
>  		/* create a control for automute mode */
>  		alc_add_automute_mode_enum(codec);
>  		spec->unsol_event = alc_sku_unsol_event;
> @@ -2241,7 +2240,6 @@ static void alc889_automute_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[2] = 0x17;
>  	spec->autocfg.speaker_pins[3] = 0x19;
>  	spec->autocfg.speaker_pins[4] = 0x1a;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -2259,7 +2257,6 @@ static void alc888_fujitsu_xa3530_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[1] = 0x1b; /* hp */
>  	spec->autocfg.speaker_pins[0] = 0x14; /* speaker */
>  	spec->autocfg.speaker_pins[1] = 0x15; /* bass */
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -2543,7 +2540,6 @@ static void alc888_acer_aspire_4930g_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->autocfg.speaker_pins[2] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -2555,7 +2551,6 @@ static void alc888_acer_aspire_6530g_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->autocfg.speaker_pins[2] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -2567,7 +2562,6 @@ static void alc888_acer_aspire_7730g_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->autocfg.speaker_pins[2] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -2579,7 +2573,6 @@ static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->autocfg.speaker_pins[2] = 0x1b;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -3667,7 +3660,6 @@ static void alc880_uniwill_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x16;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -3699,7 +3691,6 @@ static void alc880_uniwill_p53_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -3969,7 +3960,6 @@ static void alc880_lg_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -4055,7 +4045,6 @@ static void alc880_lg_lw_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -4128,7 +4117,6 @@ static void alc880_medion_rim_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x1b;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -6277,7 +6265,6 @@ static void alc260_hp_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x0f;
>  	spec->autocfg.speaker_pins[0] = 0x10;
>  	spec->autocfg.speaker_pins[1] = 0x11;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -6308,7 +6295,6 @@ static void alc260_hp_3013_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x10;
>  	spec->autocfg.speaker_pins[1] = 0x11;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -6352,7 +6338,6 @@ static void alc260_hp_3012_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x0f;
>  	spec->autocfg.speaker_pins[1] = 0x11;
>  	spec->autocfg.speaker_pins[2] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -8887,7 +8872,6 @@ static void alc885_imac24_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x18;
>  	spec->autocfg.speaker_pins[1] = 0x1a;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -8901,7 +8885,6 @@ static void alc885_mba21_setup(struct hda_codec *codec)
>  
>         spec->autocfg.hp_pins[0] = 0x14;
>         spec->autocfg.speaker_pins[0] = 0x18;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -8913,7 +8896,6 @@ static void alc885_mbp3_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -8924,7 +8906,6 @@ static void alc885_imac91_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x18;
>  	spec->autocfg.speaker_pins[1] = 0x1a;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -8958,7 +8939,6 @@ static void alc882_targa_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x1b;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9405,7 +9385,6 @@ static void alc883_medion_wim2160_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1a;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9559,7 +9538,6 @@ static void alc883_mitac_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9725,7 +9703,6 @@ static void alc888_3st_hp_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->autocfg.speaker_pins[2] = 0x18;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9786,7 +9763,6 @@ static void alc888_lenovo_ms7195_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.line_out_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9797,7 +9773,6 @@ static void alc883_lenovo_nb0763_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9811,7 +9786,6 @@ static void alc883_clevo_m720_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9841,7 +9815,6 @@ static void alc883_2ch_fujitsu_pi2515_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9851,7 +9824,6 @@ static void alc883_haier_w66_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9862,7 +9834,6 @@ static void alc883_lenovo_101e_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.line_out_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->detect_line = 1;
>  	spec->automute_lines = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
> @@ -9876,7 +9847,6 @@ static void alc883_acer_aspire_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[1] = 0x16;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9907,7 +9877,6 @@ static void alc888_6st_dell_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[1] = 0x15;
>  	spec->autocfg.speaker_pins[2] = 0x16;
>  	spec->autocfg.speaker_pins[3] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9921,7 +9890,6 @@ static void alc888_lenovo_sky_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[2] = 0x16;
>  	spec->autocfg.speaker_pins[3] = 0x17;
>  	spec->autocfg.speaker_pins[4] = 0x1a;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9932,7 +9900,6 @@ static void alc883_vaiott_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -9959,7 +9926,6 @@ static void alc883_mode2_setup(struct hda_codec *codec)
>  	spec->ext_mic.mux_idx = 0;
>  	spec->int_mic.mux_idx = 1;
>  	spec->auto_mic = 1;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -11470,7 +11436,6 @@ static void alc262_hp_bpc_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x16;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -11480,7 +11445,6 @@ static void alc262_hp_wildwest_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x16;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -11560,7 +11524,6 @@ static void alc262_hp_t5735_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -11674,7 +11637,6 @@ static void alc262_hippo_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -11684,7 +11646,6 @@ static void alc262_hippo1_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -11748,7 +11709,6 @@ static void alc262_tyan_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -11893,7 +11853,6 @@ static void alc262_toshiba_s06_setup(struct hda_codec *codec)
>  	spec->int_mic.pin = 0x12;
>  	spec->int_mic.mux_idx = 9;
>  	spec->auto_mic = 1;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -11998,7 +11957,6 @@ static void alc262_fujitsu_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.hp_pins[1] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -12045,7 +12003,6 @@ static void alc262_lenovo_3000_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[1] = 0x16;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -13255,7 +13212,6 @@ static void alc268_acer_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -13339,7 +13295,6 @@ static void alc268_acer_lc_setup(struct hda_codec *codec)
>  	struct alc_spec *spec = codec->spec;
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -13379,7 +13334,6 @@ static void alc268_dell_setup(struct hda_codec *codec)
>  	spec->int_mic.pin = 0x19;
>  	spec->int_mic.mux_idx = 1;
>  	spec->auto_mic = 1;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -13411,7 +13365,6 @@ static void alc267_quanta_il1_setup(struct hda_codec *codec)
>  	spec->int_mic.pin = 0x19;
>  	spec->int_mic.mux_idx = 1;
>  	spec->auto_mic = 1;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  }
>  
> @@ -14415,7 +14368,6 @@ static void alc269_quanta_fl1_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -14437,7 +14389,6 @@ static void alc269_lifebook_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[1] = 0x1a;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  }
>  
> @@ -14510,7 +14461,6 @@ static void alc269_laptop_amic_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -14525,7 +14475,6 @@ static void alc269_laptop_dmic_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -14540,7 +14489,6 @@ static void alc269vb_laptop_amic_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -14555,7 +14503,6 @@ static void alc269vb_laptop_dmic_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -16878,7 +16825,6 @@ static void alc861vd_lenovo_setup(struct hda_codec *codec)
>  	struct alc_spec *spec = codec->spec;
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -16953,7 +16899,6 @@ static void alc861vd_dallas_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -18222,7 +18167,6 @@ static void alc662_lenovo_101e_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.line_out_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x15;
> -	spec->automute = 1;
>  	spec->detect_line = 1;
>  	spec->automute_lines = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
> @@ -18246,7 +18190,6 @@ static void alc662_eeepc_ep20_setup(struct hda_codec *codec)
>  
>  	spec->autocfg.hp_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x1b;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> @@ -18256,7 +18199,6 @@ static void alc663_m51va_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18272,7 +18214,6 @@ static void alc663_mode1_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18287,7 +18228,6 @@ static void alc662_mode2_setup(struct hda_codec *codec)
>  	struct alc_spec *spec = codec->spec;
>  	spec->autocfg.hp_pins[0] = 0x1b;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18303,7 +18243,6 @@ static void alc663_mode3_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18321,7 +18260,6 @@ static void alc663_mode4_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->automute_mixer_nid[0] = 0x0c;
>  	spec->automute_mixer_nid[1] = 0x0e;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18339,7 +18277,6 @@ static void alc663_mode5_setup(struct hda_codec *codec)
>  	spec->autocfg.speaker_pins[1] = 0x16;
>  	spec->automute_mixer_nid[0] = 0x0c;
>  	spec->automute_mixer_nid[1] = 0x0e;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18356,7 +18293,6 @@ static void alc663_mode6_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->automute_mixer_nid[0] = 0x0c;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_MIXER;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18373,7 +18309,6 @@ static void alc663_mode7_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18390,7 +18325,6 @@ static void alc663_mode8_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[1] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
>  	spec->autocfg.speaker_pins[0] = 0x17;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_PIN;
>  	spec->ext_mic.pin = 0x18;
>  	spec->ext_mic.mux_idx = 0;
> @@ -18405,7 +18339,6 @@ static void alc663_g71v_setup(struct hda_codec *codec)
>  	spec->autocfg.hp_pins[0] = 0x21;
>  	spec->autocfg.line_out_pins[0] = 0x15;
>  	spec->autocfg.speaker_pins[0] = 0x14;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  	spec->detect_line = 1;
>  	spec->automute_lines = 1;
> @@ -19818,7 +19751,6 @@ static void alc680_base_setup(struct hda_codec *codec)
>  	spec->autocfg.inputs[0].type = AUTO_PIN_MIC;
>  	spec->autocfg.inputs[1].pin = 0x19;
>  	spec->autocfg.inputs[1].type = AUTO_PIN_LINE_IN;
> -	spec->automute = 1;
>  	spec->automute_mode = ALC_AUTOMUTE_AMP;
>  }
>  
> -- 
> 1.7.5.4
> 
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ALSA: hda - Disable automute feature by default
  2011-07-14  8:01 ` Takashi Iwai
@ 2011-07-14 13:59   ` Ben Hutchings
  2011-07-14 14:02     ` Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Ben Hutchings @ 2011-07-14 13:59 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: 631963, alsa-devel, Toni Mueller


[-- Attachment #1.1: Type: text/plain, Size: 1367 bytes --]

On Thu, 2011-07-14 at 10:01 +0200, Takashi Iwai wrote:
> [I resend this again since it didn't get out due to domain problem of
>  alsa-project.org.  If you've already seen the mail, please disregard.]
> 
> At Thu, 14 Jul 2011 03:07:51 +0100,
> Ben Hutchings wrote:
> > 
> > The default behaviour should be the same as before this feature
> > was introduced, to avoid user confusion.
> > 
> > Reported-by: Toni Mueller <support@oeko.net>
> > References: http://bugs.debian.org/631963
> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> > ---
> > The code is rather inconsistent in whether 'mode' means the behaviour or
> > mechanism of automute.  I didn't touch that but you might want to
> > consider some renaming.
> 
> Sorry, I can't take this.
> 
> First, the fix is touching a wrong place.  There are several flags to
> control the auto-mute behavior.  spec->automute is a flag to control
> the all auto-mute feature including the headphone jack.  For the
> line-out jack, it's spec->automute_lines flag.

OK.

> Secondly, this is a fix of long-standing bug.  With this change, the
> driver finally behaves consistently in a way seen in other OS.
[...]

But why would Linux users know or care how it behaves in the other OS?

Ben.

-- 
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ALSA: hda - Disable automute feature by default
  2011-07-14 13:59   ` Ben Hutchings
@ 2011-07-14 14:02     ` Takashi Iwai
  0 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2011-07-14 14:02 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: 631963, alsa-devel, Toni Mueller

At Thu, 14 Jul 2011 14:59:32 +0100,
Ben Hutchings wrote:
> 
> On Thu, 2011-07-14 at 10:01 +0200, Takashi Iwai wrote:
> > [I resend this again since it didn't get out due to domain problem of
> >  alsa-project.org.  If you've already seen the mail, please disregard.]
> > 
> > At Thu, 14 Jul 2011 03:07:51 +0100,
> > Ben Hutchings wrote:
> > > 
> > > The default behaviour should be the same as before this feature
> > > was introduced, to avoid user confusion.
> > > 
> > > Reported-by: Toni Mueller <support@oeko.net>
> > > References: http://bugs.debian.org/631963
> > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> > > ---
> > > The code is rather inconsistent in whether 'mode' means the behaviour or
> > > mechanism of automute.  I didn't touch that but you might want to
> > > consider some renaming.
> > 
> > Sorry, I can't take this.
> > 
> > First, the fix is touching a wrong place.  There are several flags to
> > control the auto-mute behavior.  spec->automute is a flag to control
> > the all auto-mute feature including the headphone jack.  For the
> > line-out jack, it's spec->automute_lines flag.
> 
> OK.
> 
> > Secondly, this is a fix of long-standing bug.  With this change, the
> > driver finally behaves consistently in a way seen in other OS.
> [...]
> 
> But why would Linux users know or care how it behaves in the other OS?

Why not?

This change also makes the behavior consistent even within Linux, now
behaving same as other HD-audio codec drivers.


Takashi

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-14 14:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-14  2:07 Bug#631963: [PATCH] ALSA: hda - Disable automute feature by default Ben Hutchings
2011-07-14  8:01 ` Takashi Iwai
2011-07-14 13:59   ` Ben Hutchings
2011-07-14 14:02     ` Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.