On Fri, 29 Jul 2022 16:17:22 +0200, Philipp Jungkamp wrote:
The Lenovo Yoga 9 14IAP7 is set up similarly to the Thinkpad X1 7th and 8th Gen. It also has the speakers attached to NID 0x14 and the bass speakers to NID 0x17, but here the codec misreports the NID 0x17 as unconnected.
The pincfg and hda verbs connect and activate the bass speaker amplifiers, but the generic driver will connect them to NID 0x06 which has no volume control. Set connection list/preferred connections is required to gain volume control.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208555 Signed-off-by: Philipp Jungkamp p.jungkamp@gmx.net
The patch looks almost good, just some nitpick:
- [ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK] = {
.type = HDA_FIXUP_VERBS,
.v.verbs = (const struct hda_verb[]) {
// enable left speaker
{ 0x20, 0x500, 0x24 },
{ 0x20, 0x400, 0x41 },
(snip)
Those 0x500 and 0x4xx verbs are AC_VERB_SET_COEF_INDEX and AC_VERB_SET_PROC_COEF. Please replace with them. The lower byte of 0x4xx is combined to the higher byte of the 3rd value, i.e. { 0x20, 0x4b0, 0x20 } becomes { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }
See the existing example for ALC287_FIXUP_YOGA7_14ITL_SPEAKERS as a reference.
thanks,
Takashi