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))