From f717af1d614cc1db139892661cf1c1cab0c34bde Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 17 Dec 2024 14:56:18 +0200 Subject: [PATCH] UCM2: sof-soundwire: Add setup of IIR, DRC, beamformer This patch enables as BootSequence the DRC and multi-microphone beamformer processing with the supplied blobs in topology. The enable is for defaults if there is no previous control state. The user can permanently switch off them if needed. If DMI ID based customization can done with scripts in blobs/sof/product_configs or blobs/sof/user_configs. If the blob file names are not empty the blobs are applied by UCM2 as FixedBootSequence in every boot to replace topology defaults. 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/dsp.conf | 25 +++++++++++++++++++++++++ ucm2/sof-soundwire/sof-soundwire.conf | 5 +++++ 2 files changed, 30 insertions(+) diff --git a/ucm2/Intel/sof-hda-dsp/dsp.conf b/ucm2/Intel/sof-hda-dsp/dsp.conf index a4d73d1..6e14ae1 100644 --- a/ucm2/Intel/sof-hda-dsp/dsp.conf +++ b/ucm2/Intel/sof-hda-dsp/dsp.conf @@ -36,6 +36,12 @@ Define { Dmic0CaptureBeamformerBytes "N/A" Dmic0CaptureBeamformerBeamSwitch "N/A" Dmic0CaptureBeamformerBeamAngleSet "N/A" + MicArrayCaptureIirBytes "N/A" + MicArrayCaptureDrcBytes "N/A" + MicArrayCaptureDrcSwitch "N/A" + MicArrayCaptureBeamformerBytes "N/A" + MicArrayCaptureBeamformerBeamSwitch "N/A" + MicArrayCaptureBeamformerBeamAngleSet "N/A" } If.SOFHdaIpc4 { @@ -85,6 +91,21 @@ If.SOFDmic0Proc { } } +If.SOFSdwMicArrayProc { + Condition { + Type ControlExists + Control "name='Microphone Capture IIR Eq'" + } + True.Define { + MicArrayCaptureIirBytes "Microphone Capture IIR Eq" + MicArrayCaptureDrcBytes "Microphone Capture DRC bytes" + MicArrayCaptureDrcSwitch "Microphone Capture DRC switch" + MicArrayCaptureBeamformerBytes "Microphone Capture TDFB bytes" + MicArrayCaptureBeamformerBeamSwitch "Microphone Capture TDFB beam switch" + MicArrayCaptureBeamformerBeamAngleSet "Microphone Capture TDFB angle set enum" + } +} + If.SOFPath { Condition { Type AlwaysTrue } True.Define { @@ -105,6 +126,10 @@ If.SOFPath { PostMixerSpeakerPlaybackIirBlob "" PostMixerSpeakerPlaybackFirBlob "" PostMixerSpeakerPlaybackDrcBlob "" + # Also leave SDW microphone array default blobs empty. + MicArrayCaptureDrcBlob "" + MicArrayCaptureBeamformerBlob "" + MicArrayCaptureIirBlob "" ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}.conf" SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}" SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}" diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf index 736912d..9e9e07e 100644 --- a/ucm2/sof-soundwire/sof-soundwire.conf +++ b/ucm2/sof-soundwire/sof-soundwire.conf @@ -184,3 +184,8 @@ Include.dsp-variables.File "../Intel/sof-hda-dsp/dsp.conf" Macro.SpeakerDrc.SofDrcBootSetup "endpoint='PostMixerSpeaker' direction='Playback'" Macro.SpeakerIir.SofEqBootSetup "endpoint='PostMixerSpeaker' direction='Playback' eqtype='Iir'" Macro.SpeakerFir.SofEqBootSetup "endpoint='PostMixerSpeaker' direction='Playback' eqtype='Fir'" + +# Set BootSequence and FixedBootSequence for Mic array eqiir, tdfb, drc +Macro.MicArrayIir.SofEqBootSetup "endpoint='MicArray' direction='Capture' eqtype='Iir'" +Macro.MicArrayDrc.SofDrcBootSetup "endpoint='MicArray' direction='Capture'" +Macro.MicarrayTdfb.SofBeamformerBootSetup "endpoint='MicArray' direction='Capture'" -- 2.47.1