aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 {
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;