]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-realtek-mic-automute-fix
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / alsa-hda-realtek-mic-automute-fix
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-realtek-mic-automute-fix b/src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-realtek-mic-automute-fix
new file mode 100644 (file)
index 0000000..350b3e8
--- /dev/null
@@ -0,0 +1,54 @@
+From: Takashi Iwai <tiwai@suse.de>
+Subject: ALSA: hda - Disable broken mic auto-muting in Realtek codes
+Patch-mainline: 
+References: bnc#440626
+
+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>
+
+---
+ sound/pci/hda/patch_realtek.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- 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_
+                           spec->jack_present ? 0 : PIN_OUT);
+ }
++#if 0 /* it's broken in some acses -- temporarily disabled */
+ static void alc_mic_automute(struct hda_codec *codec)
+ {
+       struct alc_spec *spec = codec->spec;
+@@ -849,6 +850,9 @@ static void alc_mic_automute(struct hda_
+       snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic,
+                        HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0);
+ }
++#else
++#define alc_mic_automute(codec) /* NOP */
++#endif /* disabled */
+ /* unsolicited event for HP jack sensing */
+ static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res)
+@@ -1060,12 +1064,14 @@ do_sku:
+                       AC_VERB_SET_UNSOLICITED_ENABLE,
+                       AC_USRSP_EN | ALC880_HP_EVENT);
++#if 0 /* it's broken in some acses -- temporarily disabled */
+       if (spec->autocfg.input_pins[AUTO_PIN_MIC] &&
+               spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC])
+               snd_hda_codec_write(codec,
+                       spec->autocfg.input_pins[AUTO_PIN_MIC], 0,
+                       AC_VERB_SET_UNSOLICITED_ENABLE,
+                       AC_USRSP_EN | ALC880_MIC_EVENT);
++#endif /* disabled */
+       spec->unsol_event = alc_sku_unsol_event;
+ }