Comment 689 for bug 1958019

Revision history for this message
In , p.jungkamp (p.jungkamp-linux-kernel-bugs) wrote :

A note on the 'model' and 'patch' options of of the 'snd_hda_intel' module.

The 'model' option can be used to apply a fixup written for another device.
You can check the fixups available for the ALC287 in the docs or in the
'alc269_fixup_models' array at sound/pci/hda/pathch_realtek.c:9551.
See https://www.kernel.org/doc/html/latest/sound/hd-audio/notes.html#model-option

The 'patch' option is similar, but way more powerful.
I used it to try a lot of configurations before I got the sound working.
See https://www.kernel.org/doc/html/latest/sound/hd-audio/notes.html#early-patching

I'd like to see the patch merged so people with devices for which the fixup might work can try the module option instead of compiling a patched kernel.

Something along the lines of
---
# /etc/modprobe.d/snd.conf

# use snd_hda_intel instead of snd_sof
options snd_intel_dspcfg dsp_driver=1

# enable the fixup
options snd_hda_intel model=alc287-yoga9-bass-spk-pin
---
should then work to apply the fixup until a PCI_QUIRK is added.
I'll give an update when I know when it's going mainline.

There were actually three problems with the bass speakers on the Lenovo Yoga9 14IAP7:
1. The Pin Complex node of the codec with NID 0x17 on which the bass speakers are connected reported itself as unconnected.
2. The bass speakers have amplifiers which need to be enabled via NID 0x20 of the codec. (similar to the Lenovo Yoga 7 14ITL5 fixup)
3. The driver connected the bass speaker Pin Complex to the DAC on NID 0x06 of the codec which has no volume control. (bass speakers always on max volume)

You can check whether your device is affected by problem 1 by checking the 'Pin Default' on 'Node 0x17' in the 'HDA-Intel Codec information' in your alsa-info.txt.
e.g. $ grep -A6 'Node 0x17' < alsa-info.txt
A 'Pin Default' that starts with 0x4, 0x5, 0x6 or 0x7 indicates and unconnected pin and thus problem 1 assuming the bass speakers are really on NID 0x17 on your device.

If your device is not affected by problem 1, the mainline fixes for the 'Yoga 7 ITL5' or 'Legion 7i' might already work.