From 42018dcf7b584c7d1355b6ead04c06931b4175cb Mon Sep 17 00:00:00 2001 From: Ariff Abdullah Date: Sat, 19 Apr 2008 22:32:23 +0000 Subject: [PATCH] Fix no sound issues for ASUS W6F (ALC861) laptops (buggy BIOS config that deserves its own internet memes). The trick is to force all available, unused pins (that being advertised as "speaker") to behave as microphone pins instead. Reported / Tested by: Dmitry Kutsenko MFC after: 3 days --- sys/dev/sound/pci/hda/hdac.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 5ab6ac5fa51d..31086e430247 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -81,7 +81,7 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20080412_0051" +#define HDA_DRV_TEST_REV "20080420_0052" #define HDA_WIDGET_PARSER_REV 1 SND_DECLARE_FILE("$FreeBSD$"); @@ -2145,6 +2145,16 @@ hdac_widget_pin_getconfig(struct hdac_widget *w) config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); break; + case 12: + case 14: + case 16: + case 31: + case 32: + config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | + HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); + config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | + HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); + break; case 15: config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); @@ -4229,8 +4239,6 @@ static const struct { HDA_QUIRK_EAPDINV, 0 }, { ASUS_F3JC_SUBVENDOR, HDA_CODEC_ALC861, HDA_QUIRK_OVREF, 0 }, - { ASUS_W6F_SUBVENDOR, HDA_CODEC_ALC861, - HDA_QUIRK_OVREF, 0 }, { UNIWILL_9075_SUBVENDOR, HDA_CODEC_ALC861, HDA_QUIRK_OVREF, 0 }, /*{ ASUS_M2N_SUBVENDOR, HDA_CODEC_AD1988,