From bca3a4b0799308b6d35ef34d55842a9c47726ed3 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Fri, 10 Nov 2023 11:00:54 +0200 Subject: [PATCH] Tools: Topology2: Add switch control to topologies with DRC The mixer control for switch is added to widget definition of drc.conf. In cavs-mixin-mixout-efx-hda.conf the existing control name is changed to have "bytes" similarly as multiband-drc has. The switch control is added for the widget to implement the switch. The controls definitions files in benchmark topologies are replaced to new format from current .conf generator script. The bytes control is same as before, and the mixer control for switch is added. Signed-off-by: Seppo Ingalsuo --- .../topology2/cavs-mixin-mixout-efx-hda.conf | 9 +++++++-- .../bench/drc_control_bytes_capture.conf | 10 ---------- .../bench/drc_control_bytes_playback.conf | 10 ---------- .../include/bench/drc_controls_capture.conf | 19 ++++++++++++++++++ .../include/bench/drc_controls_playback.conf | 19 ++++++++++++++++++ .../topology2/include/bench/drc_s16.conf | 4 ++-- .../topology2/include/bench/drc_s24.conf | 4 ++-- .../topology2/include/bench/drc_s32.conf | 4 ++-- .../topology2/include/components/drc.conf | 20 +++++++++++++++++++ 9 files changed, 71 insertions(+), 28 deletions(-) delete mode 100644 tools/topology/topology2/include/bench/drc_control_bytes_capture.conf delete mode 100644 tools/topology/topology2/include/bench/drc_control_bytes_playback.conf create mode 100644 tools/topology/topology2/include/bench/drc_controls_capture.conf create mode 100644 tools/topology/topology2/include/bench/drc_controls_playback.conf diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index 2ce8e2fa2cbd..4a31d27dd740 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -56,8 +56,13 @@ Object.Pipeline { } } Object.Widget.drc.1 { - Object.Control.bytes."1" { - name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC' + Object.Control { + bytes."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC bytes' + } + mixer."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC switch' + } } } } diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf b/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf deleted file mode 100644 index f688576394ac..000000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_CAPTURE_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf b/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf deleted file mode 100644 index ce7438e91410..000000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_PLAYBACK_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_controls_capture.conf b/tools/topology/topology2/include/bench/drc_controls_capture.conf new file mode 100644 index 000000000000..c586f940b578 --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_capture.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_CAPTURE_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_CAPTURE_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_CAPTURE_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_controls_playback.conf b/tools/topology/topology2/include/bench/drc_controls_playback.conf new file mode 100644 index 000000000000..36217ab08965 --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_playback.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_PLAYBACK_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_PLAYBACK_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_PLAYBACK_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_s16.conf b/tools/topology/topology2/include/bench/drc_s16.conf index 7d02416c1eac..a91888928d25 100644 --- a/tools/topology/topology2/include/bench/drc_s16.conf +++ b/tools/topology/topology2/include/bench/drc_s16.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s24.conf b/tools/topology/topology2/include/bench/drc_s24.conf index c0d9689a7908..4eb39eef9ad6 100644 --- a/tools/topology/topology2/include/bench/drc_s24.conf +++ b/tools/topology/topology2/include/bench/drc_s24.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s32.conf b/tools/topology/topology2/include/bench/drc_s32.conf index 0ca828c30ec4..beda0c0b210e 100644 --- a/tools/topology/topology2/include/bench/drc_s32.conf +++ b/tools/topology/topology2/include/bench/drc_s32.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/components/drc.conf b/tools/topology/topology2/include/components/drc.conf index 055074d3d132..2db857f421a4 100644 --- a/tools/topology/topology2/include/components/drc.conf +++ b/tools/topology/topology2/include/components/drc.conf @@ -53,6 +53,26 @@ Class.Widget."drc" { unique "instance" } + # + # drc widget switch control + # + Object.Control { + mixer."1" { + Object.Base.channel.1 { + name "fc" + shift 0 + } + Object.Base.ops.1 { + name "ctl" + info "volsw" + #259 binds the mixer control to switch get/put handlers + get 259 + put 259 + } + max 1 + } + } + # # Default attributes for drc #