aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-09-17 04:26:37 -0400
committerTakashi Iwai <tiwai@suse.de>2010-09-17 04:28:20 -0400
commit41c89ef3aafea5f35601fa75edba90e7417f604e (patch)
tree77d93174e8411c8f0faf76d4985d4cecbbc54c64 /sound
parent9907790aa06bfc04bf78b445e732ea10039c61e4 (diff)
ALSA: hda - Fix mic attribute check for internal mics
Now Windows claims that the BIOS sets pins for internal mics to be BOTH connection instead of FIXED. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_codec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 08d81b873022..9f668efbe420 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -4648,8 +4648,11 @@ enum {
4648static int get_mic_pin_attr(unsigned int def_conf) 4648static int get_mic_pin_attr(unsigned int def_conf)
4649{ 4649{
4650 unsigned int loc = get_defcfg_location(def_conf); 4650 unsigned int loc = get_defcfg_location(def_conf);
4651 if (get_defcfg_connect(def_conf) == AC_JACK_PORT_FIXED || 4651 unsigned int conn = get_defcfg_connect(def_conf);
4652 (loc & 0x30) == AC_JACK_LOC_INTERNAL) 4652 /* Windows may claim the internal mic to be BOTH, too */
4653 if (conn == AC_JACK_PORT_FIXED || conn == AC_JACK_PORT_BOTH)
4654 return MIC_ATTR_INT;
4655 if ((loc & 0x30) == AC_JACK_LOC_INTERNAL)
4653 return MIC_ATTR_INT; 4656 return MIC_ATTR_INT;
4654 if ((loc & 0x30) == AC_JACK_LOC_SEPARATE) 4657 if ((loc & 0x30) == AC_JACK_LOC_SEPARATE)
4655 return MIC_ATTR_DOCK; 4658 return MIC_ATTR_DOCK;