diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-10-31 09:18:24 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-10-31 12:21:08 -0400 |
commit | 4605b718e8b8f0dd3d811ddf90f630fd0835b7bf (patch) | |
tree | 6e8c8712415387cac7bc23e7837bdaaca68c81c0 /sound | |
parent | 0cbf00980f0fc4cc064a15ab3dfce19b5fae9130 (diff) |
ALSA: hda - Disable broken mic auto-muting in Realtek codes
The recent addition of automatic mic-muting is broken in some cases.
The code assumes that the pin nids <= 0x18, but the digital pins can
be less than 0x18.
Also, it assumes the front-mic being the internal mic, but it depends
on the hardware implementation actually.
Instead of complex case-fixes, better to disable the code as now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 4eceab9bd109..a80d57cbc352 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -829,6 +829,7 @@ static void alc_sku_automute(struct hda_codec *codec) | |||
829 | spec->jack_present ? 0 : PIN_OUT); | 829 | spec->jack_present ? 0 : PIN_OUT); |
830 | } | 830 | } |
831 | 831 | ||
832 | #if 0 /* it's broken in some acses -- temporarily disabled */ | ||
832 | static void alc_mic_automute(struct hda_codec *codec) | 833 | static void alc_mic_automute(struct hda_codec *codec) |
833 | { | 834 | { |
834 | struct alc_spec *spec = codec->spec; | 835 | struct alc_spec *spec = codec->spec; |
@@ -849,6 +850,9 @@ static void alc_mic_automute(struct hda_codec *codec) | |||
849 | snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic, | 850 | snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic, |
850 | HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); | 851 | HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); |
851 | } | 852 | } |
853 | #else | ||
854 | #define alc_mic_automute(codec) /* NOP */ | ||
855 | #endif /* disabled */ | ||
852 | 856 | ||
853 | /* unsolicited event for HP jack sensing */ | 857 | /* unsolicited event for HP jack sensing */ |
854 | static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) | 858 | static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) |
@@ -1058,12 +1062,14 @@ do_sku: | |||
1058 | AC_VERB_SET_UNSOLICITED_ENABLE, | 1062 | AC_VERB_SET_UNSOLICITED_ENABLE, |
1059 | AC_USRSP_EN | ALC880_HP_EVENT); | 1063 | AC_USRSP_EN | ALC880_HP_EVENT); |
1060 | 1064 | ||
1065 | #if 0 /* it's broken in some acses -- temporarily disabled */ | ||
1061 | if (spec->autocfg.input_pins[AUTO_PIN_MIC] && | 1066 | if (spec->autocfg.input_pins[AUTO_PIN_MIC] && |
1062 | spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC]) | 1067 | spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC]) |
1063 | snd_hda_codec_write(codec, | 1068 | snd_hda_codec_write(codec, |
1064 | spec->autocfg.input_pins[AUTO_PIN_MIC], 0, | 1069 | spec->autocfg.input_pins[AUTO_PIN_MIC], 0, |
1065 | AC_VERB_SET_UNSOLICITED_ENABLE, | 1070 | AC_VERB_SET_UNSOLICITED_ENABLE, |
1066 | AC_USRSP_EN | ALC880_MIC_EVENT); | 1071 | AC_USRSP_EN | ALC880_MIC_EVENT); |
1072 | #endif /* disabled */ | ||
1067 | 1073 | ||
1068 | spec->unsol_event = alc_sku_unsol_event; | 1074 | spec->unsol_event = alc_sku_unsol_event; |
1069 | } | 1075 | } |