diff options
author | 2019-10-14 02:04:35 +0000 | |
---|---|---|
committer | 2019-10-14 02:04:35 +0000 | |
commit | 6eae9050ac559cdc8a2b6f2d74b351c3fa63acfc (patch) | |
tree | d84d517f216912d73b93bf8757a9a7697652de36 | |
parent | Rename AZ_QRK_WID_SPKR2_DAC and AZ_QRK_WID_DOLBY_ATMOS to make it (diff) | |
download | wireguard-openbsd-6eae9050ac559cdc8a2b6f2d74b351c3fa63acfc.tar.xz wireguard-openbsd-6eae9050ac559cdc8a2b6f2d74b351c3fa63acfc.zip |
Add another quirk for the ALC285 on the X1C7 to avoid a clicking
noise on the headphone output
From Linux
-rw-r--r-- | sys/dev/pci/azalia.h | 5 | ||||
-rw-r--r-- | sys/dev/pci/azalia_codec.c | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/sys/dev/pci/azalia.h b/sys/dev/pci/azalia.h index 116207ac457..8dd7641c628 100644 --- a/sys/dev/pci/azalia.h +++ b/sys/dev/pci/azalia.h @@ -1,4 +1,4 @@ -/* $OpenBSD: azalia.h,v 1.68 2019/10/14 01:59:14 jcs Exp $ */ +/* $OpenBSD: azalia.h,v 1.69 2019/10/14 02:04:35 jcs Exp $ */ /* $NetBSD: azalia.h,v 1.6 2006/01/16 14:15:26 kent Exp $ */ /*- @@ -505,7 +505,7 @@ #define AZ_QRK_GPIO_UNMUTE_6 0x00000040 #define AZ_QRK_GPIO_UNMUTE_7 0x00000080 #define AZ_QRK_GPIO_POL_0 0x00000100 -#define AZ_QRK_WID_MASK 0x000ff000 +#define AZ_QRK_WID_MASK 0x00fff000 #define AZ_QRK_WID_CDIN_1C 0x00001000 #define AZ_QRK_WID_BEEP_1D 0x00002000 #define AZ_QRK_WID_OVREF50 0x00004000 @@ -513,6 +513,7 @@ #define AZ_QRK_WID_TPDOCK1 0x00010000 #define AZ_QRK_WID_TPDOCK2 0x00020000 #define AZ_QRK_WID_TPDOCK3 0x00040000 +#define AZ_QRK_WID_CLOSE_PCBEEP 0x00080000 #define AZ_QRK_ROUTE_SPKR2_DAC 0x01000000 #define AZ_QRK_DOLBY_ATMOS 0x02000000 diff --git a/sys/dev/pci/azalia_codec.c b/sys/dev/pci/azalia_codec.c index fe744f5b50d..33833d2f8ea 100644 --- a/sys/dev/pci/azalia_codec.c +++ b/sys/dev/pci/azalia_codec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: azalia_codec.c,v 1.177 2019/10/14 01:59:14 jcs Exp $ */ +/* $OpenBSD: azalia_codec.c,v 1.178 2019/10/14 02:04:35 jcs Exp $ */ /* $NetBSD: azalia_codec.c,v 1.8 2006/05/10 11:17:27 kent Exp $ */ /*- @@ -127,7 +127,8 @@ azalia_codec_init_vtbl(codec_t *this) case 0x10ec0285: this->name = "Realtek ALC285"; if (this->subid == 0x229217aa) /* Thinkpad X1 Carbon 7 */ - this->qrks |= AZ_QRK_ROUTE_SPKR2_DAC; + this->qrks |= AZ_QRK_ROUTE_SPKR2_DAC | + AZ_QRK_WID_CLOSE_PCBEEP; break; case 0x10ec0292: this->name = "Realtek ALC292"; @@ -2603,6 +2604,14 @@ azalia_codec_widget_quirks(codec_t *this, nid_t nid) azalia_ampcap_ov(w, COP_OUTPUT_AMPCAP, 31, 33, 6, 30, 1); } + if ((this->qrks & AZ_QRK_WID_CLOSE_PCBEEP) && (nid == 0x20)) { + /* Close PC beep passthrough to avoid headphone noise */ + azalia_comresp(this, nid, CORB_SET_COEFFICIENT_INDEX, 0x36, + NULL); + azalia_comresp(this, nid, CORB_SET_PROCESSING_COEFFICIENT, + 0x57d7, NULL); + } + return(0); } |