From 797f57cf5d4b7c0259466a7d1622560d5c60caf0 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 12 Dec 2024 19:54:44 +0200 Subject: [PATCH] UCM2: Intel: sof-hda-dsp: Cleanup definitions This patch cleans up definitions in preparation to add more controlled processing for audio endpoints. - The algorithms names write style is aligned to e.g. "Iir" instead of "IIR" and "Iir" to avoid mistakes from typos. - Add prefix PostMixerAnalogPlayback to HDA analog playback blob names to separate them from other Speaker endpoints. - Similarly rename SofControl macro. The functionality is not changed. Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo Signed-off-by: Jaroslav Kysela --- ucm2/Intel/sof-hda-dsp/HiFi-sof.conf | 28 ++++++++-------- ucm2/Intel/sof-hda-dsp/dsp.conf | 33 +++++++++++-------- .../sof/product_configs/AAEON/UPX-TGL01.conf | 12 +++---- 3 files changed, 39 insertions(+), 34 deletions(-) diff --git a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf index 86a62f8..738da91 100644 --- a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf +++ b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf @@ -3,10 +3,10 @@ # Redefine headphone control FOR SOF. This is same as Headphone in HDA/HiFi-analog.conf # but adds DRC and EQ controls. -DefineMacro.SofControl { - Define.EndpointDrcVar "${var:__endpoint}DrcBlob" - Define.EndpointIirVar "${var:__endpoint}IirBlob" - Define.EndpointFirVar "${var:__endpoint}FirBlob" +DefineMacro.SofAnalogPlaybackControl { + Define.EndpointDrcVar "PostMixerAnalogPlayback${var:__endpoint}DrcBlob" + Define.EndpointIirVar "PostMixerAnalogPlayback${var:__endpoint}IirBlob" + Define.EndpointFirVar "PostMixerAnalogPlayback${var:__endpoint}FirBlob" Define.EndpointDrcBlob "${var:$EndpointDrcVar}" Define.EndpointIirBlob "${var:$EndpointIirVar}" Define.EndpointFirBlob "${var:$EndpointFirVar}" @@ -14,29 +14,29 @@ DefineMacro.SofControl { If.endpoint_with_drc { Condition { Type ControlExists - Control "name='${var:PostMixerAnalogPlaybackDRCSwitch}'" + Control "name='${var:PostMixerAnalogPlaybackDrcSwitch}'" } True { EnableSequence [ # For debug uncomment below the echo command to see what blobs are applied #shell "/bin/echo '${var:__endpoint} ${var:EndpointIirBlob} ${var:EndpointFirBlob} ${var:EndpointDrcBlob}' >> /tmp/alsa-ucm.txt" - cset "name='${var:PostMixerAnalogPlaybackDRCSwitch}' ${var:__drcswitch}" - cset-tlv "name='${var:PostMixerAnalogPlaybackDRCBytes}' ${var:EndpointDrcBlob}" - cset-tlv "name='${var:PostMixerAnalogPlaybackIIRBytes}' ${var:EndpointIirBlob}" - cset-tlv "name='${var:PostMixerAnalogPlaybackFIRBytes}' ${var:EndpointFirBlob}" + cset "name='${var:PostMixerAnalogPlaybackDrcSwitch}' ${var:__drcswitch}" + cset-tlv "name='${var:PostMixerAnalogPlaybackDrcBytes}' ${var:EndpointDrcBlob}" + cset-tlv "name='${var:PostMixerAnalogPlaybackIirBytes}' ${var:EndpointIirBlob}" + cset-tlv "name='${var:PostMixerAnalogPlaybackFirBytes}' ${var:EndpointFirBlob}" ] } False.If.endpoint_with_eq { Condition { Type ControlExists - Control "name='${var:PostMixerAnalogPlaybackFIRBytes}'" + Control "name='${var:PostMixerAnalogPlaybackFirBytes}'" } True { EnableSequence [ # For debug uncomment below the echo command to see what blobs are applied #shell "/bin/echo '${var:__endpoint} ${var:EndpointIirBlob} ${var:EndpointFirBlob}' >> /tmp/alsa-ucm.txt" - cset-tlv "name='${var:PostMixerAnalogPlaybackIIRBytes}' ${var:EndpointIirBlob}" - cset-tlv "name='${var:PostMixerAnalogPlaybackFIRBytes}' ${var:EndpointFirBlob}" + cset-tlv "name='${var:PostMixerAnalogPlaybackIirBytes}' ${var:EndpointIirBlob}" + cset-tlv "name='${var:PostMixerAnalogPlaybackFirBytes}' ${var:EndpointFirBlob}" ] } } @@ -45,7 +45,7 @@ DefineMacro.SofControl { # Merge this to Headpones subtree in HDA/HiFi-analog.conf SectionDevice."Headphones" { - Macro.headphone.SofControl "endpoint=Headphone drcswitch=off" + Macro.headphone.SofAnalogPlaybackControl "endpoint=Headphone drcswitch=off" } # Merge this to Speaker subtree in HDA/HiFi-analog.conf @@ -55,6 +55,6 @@ If.spk { Control "name='Speaker Playback Switch'" } True.SectionDevice."Speaker" { - Macro.speaker.SofControl "endpoint=Speaker drcswitch=on" + Macro.speaker.SofAnalogPlaybackControl "endpoint=Speaker drcswitch=on" } } diff --git a/ucm2/Intel/sof-hda-dsp/dsp.conf b/ucm2/Intel/sof-hda-dsp/dsp.conf index cf7fb71..a55eec8 100644 --- a/ucm2/Intel/sof-hda-dsp/dsp.conf +++ b/ucm2/Intel/sof-hda-dsp/dsp.conf @@ -21,6 +21,13 @@ If.SOFProduct { True.Define.SOFProduct "${sys:devices/virtual/dmi/id/board_name}" } +Define { + PostMixerAnalogPlaybackIirBytes "N/A" + PostMixerAnalogPlaybackFirBytes "N/A" + PostMixerAnalogPlaybackDrcBytes "N/A" + PostMixerAnalogPlaybackDrcSwitch "N/A" +} + If.SOFIPCVer { Condition { Type ControlExists @@ -28,17 +35,15 @@ If.SOFIPCVer { } True.Define { SOFIPCVer "ipc4" - PostMixerAnalogPlaybackIIRBytes "Post Mixer Analog Playback IIR Eq bytes" - PostMixerAnalogPlaybackFIRBytes "Post Mixer Analog Playback FIR Eq bytes" - PostMixerAnalogPlaybackDRCBytes "Post Mixer Analog Playback DRC bytes" - PostMixerAnalogPlaybackDRCSwitch "Post Mixer Analog Playback DRC switch" + PostMixerAnalogPlaybackIirBytes "Post Mixer Analog Playback IIR Eq bytes" + PostMixerAnalogPlaybackFirBytes "Post Mixer Analog Playback FIR Eq bytes" + PostMixerAnalogPlaybackDrcBytes "Post Mixer Analog Playback DRC bytes" + PostMixerAnalogPlaybackDrcSwitch "Post Mixer Analog Playback DRC switch" } False.Define { SOFIPCVer "ipc3" - PostMixerAnalogPlaybackIIRBytes "EQIIR1.0 eqiir_coef_1" - PostMixerAnalogPlaybackFIRBytes "EQFIR1.0 eqfir_coef_1" - PostMixerAnalogPlaybackDRCBytes "not available" - PostMixerAnalogPlaybackDRCSwitch "not available" + PostMixerAnalogPlaybackIirBytes "EQIIR1.0 eqiir_coef_1" + PostMixerAnalogPlaybackFirBytes "EQFIR1.0 eqfir_coef_1" } } @@ -46,12 +51,12 @@ If.SOFPath { Condition { Type AlwaysTrue } True.Define { BlobPath "${ConfTopDir}/blobs/sof/${var:SOFIPCVer}" - SpeakerIirBlob "${var:BlobPath}/eq_iir/highpass_100hz_0db_48khz.blob" - SpeakerFirBlob "${var:BlobPath}/eq_fir/pass.blob" - SpeakerDrcBlob "${var:BlobPath}/drc/speaker_default.blob" - HeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob" - HeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob" - HeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob" + PostMixerAnalogPlaybackSpeakerIirBlob "${var:BlobPath}/eq_iir/highpass_100hz_0db_48khz.blob" + PostMixerAnalogPlaybackSpeakerFirBlob "${var:BlobPath}/eq_fir/pass.blob" + PostMixerAnalogPlaybackSpeakerDrcBlob "${var:BlobPath}/drc/speaker_default.blob" + PostMixerAnalogPlaybackHeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob" + PostMixerAnalogPlaybackHeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob" + PostMixerAnalogPlaybackHeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob" ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}.conf" SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}" SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}" diff --git a/ucm2/blobs/sof/product_configs/AAEON/UPX-TGL01.conf b/ucm2/blobs/sof/product_configs/AAEON/UPX-TGL01.conf index 970ae7d..671a3db 100644 --- a/ucm2/blobs/sof/product_configs/AAEON/UPX-TGL01.conf +++ b/ucm2/blobs/sof/product_configs/AAEON/UPX-TGL01.conf @@ -2,9 +2,9 @@ # Note: Use the correct IPC version for the blobs path # Example set all processing to bypass -#Define.SpeakerIirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_iir/pass.blob" -#Define.SpeakerFirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_fir/pass.blob" -#Define.SpeakerDrcBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/drc/passthrough.blob" -#Define.HeadphoneIirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_iir/pass.blob" -#Define.HeadphoneFirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_fir/pass.blob" -#Define.HeadphoneDrcBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/drc/passthrough.blob" +#Define.PostMixerAnalogPlaybackSpeakerIirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_iir/pass.blob" +#Define.PostMixerAnalogPlaybackSpeakerFirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_fir/pass.blob" +#Define.PostMixerAnalogPlaybackSpeakerDrcBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/drc/passthrough.blob" +#Define.PostMixerAnalogPlaybackHeadphoneIirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_iir/pass.blob" +#Define.PostMixerAnalogPlaybackHeadphoneFirBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/eq_fir/pass.blob" +#Define.PostMixerAnalogPlaybackHeadphoneDrcBlob "/usr/share/alsa/ucm2/blobs/sof/ipc4/drc/passthrough.blob" -- 2.47.1