git: 06731139ca52 - main - hda: add patch for Framework laptop headphone jack
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 17 Mar 2022 23:27:19 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=06731139ca5222a6790163ed427758769696e5ab
commit 06731139ca5222a6790163ed427758769696e5ab
Author: Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2022-03-17 19:47:55 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2022-03-17 23:22:02 +0000
hda: add patch for Framework laptop headphone jack
For Framework laptops built after Oct 2021 (like mine) that have a Tempo
Semiconductor 92HD95B codec rather than Realtek ALC295 (see
https://frame.work/ca/en/blog/solving-for-silicon-shortages).
As we do for many other laptops, put the headphone jack and speakers in
the same association by default so that the generic sound device
automatically switches between them. Also specify the jack colour and
location.
Reviewed by: markj
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D34596
---
sys/dev/sound/pci/hda/hdaa_patches.c | 7 +++++++
sys/dev/sound/pci/hda/hdac.h | 4 ++++
2 files changed, 11 insertions(+)
diff --git a/sys/dev/sound/pci/hda/hdaa_patches.c b/sys/dev/sound/pci/hda/hdaa_patches.c
index f824472fc9a2..0f5cfa87cc9d 100644
--- a/sys/dev/sound/pci/hda/hdaa_patches.c
+++ b/sys/dev/sound/pci/hda/hdaa_patches.c
@@ -322,6 +322,13 @@ hdac_pin_patch(struct hdaa_widget *w)
patch_str = "as=1 seq=15";
break;
}
+ } else if (id == HDA_CODEC_IDT92HD95B &&
+ (subid == FRAMEWORK_LAPTOP_SUBVENDOR)) {
+ switch (nid) {
+ case 10:
+ patch_str = "as=1 seq=15 color=Black loc=Left";
+ break;
+ }
} else {
/*
* loop over hdaa_model_pin_patch
diff --git a/sys/dev/sound/pci/hda/hdac.h b/sys/dev/sound/pci/hda/hdac.h
index 8fcdad7ac7a5..ee6f14877c2e 100644
--- a/sys/dev/sound/pci/hda/hdac.h
+++ b/sys/dev/sound/pci/hda/hdac.h
@@ -503,6 +503,10 @@
#define AOPEN_VENDORID 0xa0a0
#define AOPEN_I915GMMHFS_SUBVENDOR HDA_MODEL_CONSTRUCT(AOPEN, 0x8202)
+/* Framework */
+#define FRAMEWORK_VENDORID 0xf111
+#define FRAMEWORK_LAPTOP_SUBVENDOR HDA_MODEL_CONSTRUCT(FRAMEWORK, 0x0001)
+
/* All codecs you can eat... */
#define HDA_CODEC_CONSTRUCT(vendor, id) \
(((uint32_t)(vendor##_VENDORID) << 16) | ((id) & 0xffff))