git: ff73087a897c - stable/13 - hda: add patch for Framework laptop headphone jack

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Thu, 24 Mar 2022 13:55:10 UTC
The branch stable/13 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=ff73087a897c1e23d0498e68f023e49e5ba7571f

commit ff73087a897c1e23d0498e68f023e49e5ba7571f
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2022-03-17 19:47:55 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2022-03-24 13:52:38 +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
    
    (cherry picked from commit 06731139ca5222a6790163ed427758769696e5ab)
---
 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))