Skip to content

Commit ea8855e

Browse files
committed
Tools: Topology2: Swap gain and eqiir in DMIC capture
This patch swaps the order of IIR and gain components in capture pipeline. In IPC4 systems the gain component can only attenuate the signal, largest gain is 0 dB (pass-through). The IIR component can be set up to amplify the signal by e.g. +20 dB that is currently default in many topologies. The gain can possibly distort the signal in loud environment. With current "dai-copier -> eqiir -> gain -> module-copier" topology the user configurable gain (ALSA mixer control) can't prevent clipping of audio signal in IIR. While with swapped order "dai-copier -> gain -> eqiir -> module-copier" using attenuation in gain component can be used to prevent audio signal clipping in IIR. It would be useful in capturing audio in a very loud environment. Since the pipeline is 32-bits there is no practical loss of audio quality even if there would be first attenuation and then gain. Plus normally the gain control for Dmic0 is set to maximum. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1 parent 40ed1e2 commit ea8855e

File tree

7 files changed

+17
-18
lines changed

7 files changed

+17
-18
lines changed

tools/topology/topology2/cavs-nocodec.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<mixout-gain-dai-copier-playback.conf>
2424
<mixout-gain-smart-amp-dai-copier-playback.conf>
2525
<dai-copier-gain-module-copier-capture.conf>
26-
<dai-copier-eqiir-gain-module-copier-capture.conf>
26+
<dai-copier-gain-eqiir-module-copier-capture.conf>
2727
<gain-module-copier.conf>
2828
<gain-capture.conf>
2929
<gain-copier-capture.conf>

tools/topology/topology2/cavs-rt5682.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<mixout-gain-ctc-dai-copier-playback.conf>
2323
<deepbuffer-playback.conf>
2424
<dai-copier-be.conf>
25-
<dai-copier-eqiir-gain-module-copier-capture.conf>
25+
<dai-copier-gain-eqiir-module-copier-capture.conf>
2626
<gain-capture.conf>
2727
<gain-module-copier.conf>
2828
<google-rtc-aec-capture.conf>

tools/topology/topology2/cavs-sdw.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<host-copier-gain-mixin-playback.conf>
1515
<mixout-gain-alh-dai-copier-playback.conf>
1616
<mixout-gain-eqiir-eqfir-drc-alh-dai-copier-playback.conf>
17-
<dai-copier-eqiir-gain-module-copier-capture.conf>
17+
<dai-copier-gain-eqiir-module-copier-capture.conf>
1818
<gain-capture.conf>
1919
<gain-copier-capture.conf>
2020
<deepbuffer-playback.conf>

tools/topology/topology2/include/pipelines/cavs/dai-copier-eqiir-gain-module-copier-capture.conf renamed to tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-eqiir-module-copier-capture.conf

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#
2-
# BE capture pipeline: dai-copier-eqiir-gain-module-copier-capture
2+
# BE capture pipeline: dai-copier-gain-eqiir-module-copier-capture
33
#
44
# All attributes defined herein are namespaced
5-
# by alsatplg to "Object.Pipeline.dai-copier-eqiir-gain-module-copier-capture.N.attribute_name"
5+
# by alsatplg to "Object.Pipeline.dai-copier-gain-eqiir-module-copier-capture.N.attribute_name"
66
#
7-
# Usage: dai-copier-eqiir-gain-module-copier-capture pipeline object can be instantiated as:
7+
# Usage: dai-copier-gain-eqiir-module-copier-capture pipeline object can be instantiated as:
88
#
9-
# Object.Pipeline.dai-copier-eqiir-gain-module-copier-capture."N" {
9+
# Object.Pipeline.dai-copier-gain-eqiir-module-copier-capture."N" {
1010
# period 1000
1111
# time_domain "timer"
1212
# }
@@ -21,7 +21,7 @@
2121
<include/components/eqiir.conf>
2222
<include/components/pipeline.conf>
2323

24-
Class.Pipeline."dai-copier-eqiir-gain-module-copier-capture" {
24+
Class.Pipeline."dai-copier-gain-eqiir-module-copier-capture" {
2525

2626
<include/pipelines/pipeline-common.conf>
2727

@@ -35,7 +35,7 @@ Class.Pipeline."dai-copier-eqiir-gain-module-copier-capture" {
3535
]
3636

3737
#
38-
# dai-copier-eqiir-gain-module-copier-capture objects instantiated
38+
# dai-copier-gain-eqiir-module-copier-capture objects instantiated
3939
# within the same alsaconf node must have unique pipeline_id
4040
# attribute
4141
#
@@ -185,12 +185,12 @@ Class.Pipeline."dai-copier-eqiir-gain-module-copier-capture" {
185185

186186
Object.Base {
187187
route.1 {
188-
source gain.$index.1
188+
source eqiir.$index.1
189189
sink module-copier.$index.2
190190
}
191191
route.2 {
192-
source eqiir.$index.1
193-
sink gain.$index.1
192+
source gain.$index.1
193+
sink eqiir.$index.1
194194
}
195195
}
196196

tools/topology/topology2/platform/intel/dmic-generic.conf

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ Define {
22
DMIC0_PCM_NAME "DMIC Raw"
33
}
44

5-
65
# If DMIC0_PCM_CHANNELS is zero, copy it from NUM_DMICS. This
76
# allows by setting both NUM_DMICS and DMIC0_PCM_CHANNELS to
87
# have a different channels count in DAI and host.
@@ -152,7 +151,7 @@ IncludeByKey.PASSTHROUGH {
152151
}
153152
]
154153

155-
Object.Pipeline.dai-copier-eqiir-gain-module-copier-capture [
154+
Object.Pipeline.dai-copier-gain-eqiir-module-copier-capture [
156155
{
157156
index $DMIC0_DAI_PIPELINE_ID
158157
core_id $DMIC_CORE_ID
@@ -552,7 +551,7 @@ IncludeByKey.PASSTHROUGH {
552551
Object.Base.route [
553552
{
554553
source $DMIC0_DAI_COPIER
555-
sink eqiir.$DMIC0_DAI_PIPELINE_ID.1
554+
sink gain.$DMIC0_DAI_PIPELINE_ID.1
556555
}
557556
{
558557
source $DMIC0_DAI_PIPELINE_SRC
@@ -572,7 +571,7 @@ IncludeByKey.PASSTHROUGH {
572571
Object.Base.route [
573572
{
574573
source $DMIC0_DAI_COPIER
575-
sink eqiir.$DMIC0_DAI_PIPELINE_ID.1
574+
sink gain.$DMIC0_DAI_PIPELINE_ID.1
576575
}
577576
{
578577
source $DMIC0_DAI_PIPELINE_SRC

tools/topology/topology2/platform/intel/dmic1-mfcc.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Object.Pipeline.host-gateway-capture [
6060
}
6161
]
6262

63-
Object.Pipeline.dai-copier-eqiir-gain-module-copier-capture [
63+
Object.Pipeline.dai-copier-gain-eqiir-module-copier-capture [
6464
{
6565
index $DMIC1_DAI_PIPELINE_ID
6666
core_id $DMIC_CORE_ID

tools/topology/topology2/sof-hda-generic.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<mixout-gain-efx-mbdrc-dai-copier-playback.conf>
2222
<mixout-gain-host-copier-capture.conf>
2323
<dai-copier-eqiir-module-copier-capture.conf>
24-
<dai-copier-eqiir-gain-module-copier-capture.conf>
24+
<dai-copier-gain-eqiir-module-copier-capture.conf>
2525
<gain-capture.conf>
2626
<deepbuffer-playback.conf>
2727
<io-gateway.conf>

0 commit comments

Comments
 (0)