diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-09-17 04:26:37 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-09-17 04:28:20 -0400 |
commit | 41c89ef3aafea5f35601fa75edba90e7417f604e (patch) | |
tree | 77d93174e8411c8f0faf76d4985d4cecbbc54c64 /sound | |
parent | 9907790aa06bfc04bf78b445e732ea10039c61e4 (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.c | 7 |
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 { | |||
4648 | static int get_mic_pin_attr(unsigned int def_conf) | 4648 | static 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; |