From b03226883b00a06aefa0bace5f891f2f7c8359b7 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 17 Sep 2010 10:26:37 +0200 Subject: [PATCH] --- yaml --- r: 216695 b: refs/heads/master c: 41c89ef3aafea5f35601fa75edba90e7417f604e h: refs/heads/master i: 216693: 2665ccf30d03ba312437b17c8185777d8a7d11fd 216691: 52df0dacc4cf9c12525785c23b8aa53ec2e91992 216687: 6b264952a80a460e55d369d894ef2317a04496b0 v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/hda_codec.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c26f08ea2e03..ba1351865f1f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9907790aa06bfc04bf78b445e732ea10039c61e4 +refs/heads/master: 41c89ef3aafea5f35601fa75edba90e7417f604e diff --git a/trunk/sound/pci/hda/hda_codec.c b/trunk/sound/pci/hda/hda_codec.c index 08d81b873022..9f668efbe420 100644 --- a/trunk/sound/pci/hda/hda_codec.c +++ b/trunk/sound/pci/hda/hda_codec.c @@ -4648,8 +4648,11 @@ enum { static int get_mic_pin_attr(unsigned int def_conf) { unsigned int loc = get_defcfg_location(def_conf); - if (get_defcfg_connect(def_conf) == AC_JACK_PORT_FIXED || - (loc & 0x30) == AC_JACK_LOC_INTERNAL) + unsigned int conn = get_defcfg_connect(def_conf); + /* Windows may claim the internal mic to be BOTH, too */ + if (conn == AC_JACK_PORT_FIXED || conn == AC_JACK_PORT_BOTH) + return MIC_ATTR_INT; + if ((loc & 0x30) == AC_JACK_LOC_INTERNAL) return MIC_ATTR_INT; if ((loc & 0x30) == AC_JACK_LOC_SEPARATE) return MIC_ATTR_DOCK;