Hi,
Great, first you should check what topology you are using, and it seems to be in your case sof-hda-generic-2ch.tplg based on the attached kernel log part. If you are able to build SOF topologies, you can get a picture of topology this way:
$ scripts/build-tools.sh $ tplgtool.py tools/build_tools/topology/topology1/production/sof-hda-generic-2ch.tplg $ eog sof-hda-generic-2ch.png
Tplgtool.py is from git repo sof-test. If the topology file is the same as I have from git main, there's IIR EQ filters only in capture paths for HDA1.IN, DMIC0.IN, and DMIC1.IN. The IIR instances are 2, 10, 11 are the same as you found with amixer.
There's a similar topology with equalizers for PCM0P playback in sof-hda-generic-2ch-loud.tplg. The instances are EQIIR1.0 and EQFIR1.0. You can copy the topology file over the used one (make a copy of original) or use a module option to override the default topology name (options snd_sof_pci tplg_filename="" tplg_path="").
$ tplgtool.py tools/build_tools/topology/topology1/development/sof-hda-generic-2ch-loud.tplg
I recall the topology sets up the filters by default with a loudness type response for headphones (low bass boost) so it could be very unsuitable for small speakers. The low frequencies are inaudible from miniature speakers so they should be suppressed instead.
Warning: Do not play loud sounds from speakers to avoid damage! If the speaker sound is distorted, stop the playback immediately and drop the volume control.
To set up equalizing this should be useful:
https://thesofproject.github.io/latest/algos/eq/equalizers_tuning.html
Probably something like 2nd or 4th order high-pass around 100 - 200 Hz is suitable. The band 500 - 10 kHz can be likely made flatter if you are able to measure the frequency response. With the added high-pass there should be practical signal-headroom to amplify in the EQ with few decibels. You should be able to create a custom topology to use for T14 so there is no need to run sof-ctl every time to set up the filters.
The DRC component is not part of the signed firmware image, but I hope it will be later in future. It would be useful to make the speaker sound louder. But EQ should already give a noticeable improvement.
Things have changed a bit since writing that so if you get stuck, please let me know. You can also file bugs to Github: https://github.com/thesofproject/sof/issues [https://repository-images.githubusercontent.com/135623245/672bd680-814a-11e9...]https://github.com/thesofproject/sof/issues Issues ยท thesofproject/sofhttps://github.com/thesofproject/sof/issues Sound Open Firmware. Contribute to thesofproject/sof development by creating an account on GitHub. github.com
Cheers, Seppo
________________________________ From: Sylvain Munaut 246tnt@gmail.com Sent: Saturday, July 15, 2023 14:35 To: sound-open-firmware@alsa-project.org sound-open-firmware@alsa-project.org Subject: Getting equalizer to work on T14 Intel Gen 3 ( Alder Lake )
Hi,
So I have an alder lake laptop using ALC3287 codec. Things "work" in the sense that I get sound output from the speaker but it's of a very underwhelming quality.
My understanding is that under windows there is quite a bit of EQ applied to try and get a better response from the speakers.
So I'm trying to get that working under linux, but I have no idea where to even _start_. I have seen the "runtime adjustment' page on the website, but when looking at the controls I get :
$ amixer -Dhw:0 controls | grep EQ numid=43,iface=MIXER,name='EQIIR10.0 eqiir_coef_10' numid=45,iface=MIXER,name='EQIIR11.0 eqiir_coef_11' numid=37,iface=MIXER,name='EQIIR2.0 eqiir_bytes_2'
I get 3 IIR and not FIR. And I also have no idea what the difference is between those ...
I also tried loading some eq_bass_boost settings in all of them using sof-ctl and although it does work, it doesn't change the sound output in any way as far as I can tell.
So what am I doing wrong ? How can I get eq working ?
I tried looking at the source code but I don't even see anything related to ALC3287 codec in there (there are others), so I'm not even sure what ends up running in my case.
This is what get printed during boot :
[ 17.427412] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380 [ 17.428323] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver [ 17.434104] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380 [ 18.738194] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 18.828369] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode [ 18.874040] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5 [ 18.874043] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now [ 18.874046] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2 [ 18.874057] Loading firmware: intel/sof/sof-adl.ri [ 18.876222] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 18.876223] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 18.876226] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30 [ 18.989668] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 18.989671] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 19.019641] Loading firmware: intel/sof-tplg/sof-hda-generic-2ch.tplg [ 19.020671] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 [ 19.133888] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input18 [ 19.133947] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input19 [ 19.133973] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input20 [ 19.134032] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input21 [ 19.134050] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input22
Cheers,
Sylvain --------------------------------------------------------------------- Intel Finland Oy Registered Address: PL 281, 00181 Helsinki Business Identity Code: 0357606 - 4 Domiciled in Helsinki
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.