|
From 86d1cc3e8e024c6776424f09108030fabe67cf5f Mon Sep 17 00:00:00 2001 |
|
From: Huayu Zhang <[email protected]> |
|
Date: Thu, 11 Jan 2024 16:18:29 +0800 |
|
Subject: [PATCH] add _DSD for SSID 0x17aa38a9 and 38ab (ThinkBook 16p G4 IRH) |
|
|
|
the dmseg has following output after patching: |
|
|
|
[ 4.401426] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2 |
|
[ 4.455038] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2 |
|
[ 6.362589] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 17AA38A9, BST: 1, VSPK: 1, CH: L, FW EN: 1, SPKID: 0 |
|
[ 6.862707] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 17AA38A9, BST: 1, VSPK: 1, CH: R, FW EN: 1, SPKID: 0 |
|
|
|
And the system volumn control only affect the upfacing speakers nor the |
|
downfacing bass speakers. |
|
|
|
Signed-off-by: Huayu Zhang <[email protected]> |
|
--- |
|
sound/pci/hda/cs35l41_hda_property.c | 4 ++++ |
|
sound/pci/hda/patch_realtek.c | 2 ++ |
|
2 files changed, 6 insertions(+) |
|
|
|
diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c |
|
index 35277ce890a4..30fb638f5240 100644 |
|
--- a/sound/pci/hda/cs35l41_hda_property.c |
|
+++ b/sound/pci/hda/cs35l41_hda_property.c |
|
@@ -93,6 +93,8 @@ static const struct cs35l41_config cs35l41_config_table[] = { |
|
{ "10431F12", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 }, |
|
{ "10431F1F", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 0, 0, 0 }, |
|
{ "10431F62", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 }, |
|
+ { "17AA38A9", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 2, -1, 0, 0, 0 }, |
|
+ { "17AA38AB", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 2, -1, 0, 0, 0 }, |
|
{ "17AA38B4", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 }, |
|
{ "17AA38B5", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 }, |
|
{ "17AA38B6", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 }, |
|
@@ -427,6 +429,8 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = { |
|
{ "CSC3551", "10431F12", generic_dsd_config }, |
|
{ "CSC3551", "10431F1F", generic_dsd_config }, |
|
{ "CSC3551", "10431F62", generic_dsd_config }, |
|
+ { "CSC3551", "17AA38A9", generic_dsd_config }, |
|
+ { "CSC3551", "17AA38AB", generic_dsd_config }, |
|
{ "CSC3551", "17AA38B4", generic_dsd_config }, |
|
{ "CSC3551", "17AA38B5", generic_dsd_config }, |
|
{ "CSC3551", "17AA38B6", generic_dsd_config }, |
|
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c |
|
index 1dcfba27e075..97388c170837 100644 |
|
--- a/sound/pci/hda/patch_realtek.c |
|
+++ b/sound/pci/hda/patch_realtek.c |
|
@@ -10256,6 +10256,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
|
SND_PCI_QUIRK(0x17aa, 0x3886, "Y780 VECO DUAL", ALC287_FIXUP_TAS2781_I2C), |
|
SND_PCI_QUIRK(0x17aa, 0x38a7, "Y780P AMD YG dual", ALC287_FIXUP_TAS2781_I2C), |
|
SND_PCI_QUIRK(0x17aa, 0x38a8, "Y780P AMD VECO dual", ALC287_FIXUP_TAS2781_I2C), |
|
+ SND_PCI_QUIRK(0x17aa, 0x38a9, "ThinkBook 16p G4 IRH", ALC287_FIXUP_CS35L41_I2C_2), |
|
+ SND_PCI_QUIRK(0x17aa, 0x38ab, "ThinkBook 16p G4 IRH", ALC287_FIXUP_CS35L41_I2C_2), |
|
SND_PCI_QUIRK(0x17aa, 0x38b4, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L41_I2C_2), |
|
SND_PCI_QUIRK(0x17aa, 0x38b5, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L41_I2C_2), |
|
SND_PCI_QUIRK(0x17aa, 0x38b6, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L41_I2C_2), |
|
-- |
|
2.34.1 |
Hi wenqi,
The kernel developement is quite rapid, so the patch may not apply to the newer version of kernel anymore.
I'm currently not using the newer kernel cause I've switch my Arch Linux to Ubuntu. So I may cannot help you in recent days. As for the errors in dmesg, I've met them in
v6.6.5
.And I'm not trying to keep maintain these patchs any more. If you insist to use of the patches, please do download the
older
kernel source thatmatching the version
I've mentioned. At the time I write the patch for 6.6.0-rc4, the "way" to apply workround for this amp is still investigating by the kernel developers, which means the way how to apply the workaround may has changed. So please do carefully examine the source of related file(s) in kenel source tree (also the mailing history).But, still, I do not recommened to use the patch if you have no idea what you are trying to apply to the kernel. Because this kind of patches may damage your AMP and make it not covered by warranty anymore.
And I recommend to write emails to ask for
Cirrus engineers
to add quirk for the AMPs of our laptop model. Because nobody can actually fix this except them. I've report this issue to kernel mailing list few months ago, but no response though. The kernel has relatively poor support on the laptop that has fewer users (at least in their mind). So, please please, do help the fellows that has the same model by reporting this to the kernel development team (throughkernel bugzilla
or kernel mailing list) as I did before.At the mean time, try dual boot with windows or use WSL2. Or use a proper usb sound card/speaker (that already has fully support by kernel and alsa) as workaround.
Please have a good day~