Skip to content

Commit 8ba169c

Browse files
committed
topology2: host-gateway-tdfb-drc-capture: fix channel map/cfg regression
Same problem with IncludeByKey + nested Define pattern as present earlier in sdw-dmic-generic: the TDFB_DMIC_CHANNEL_CFG/TDFB_DMIC_CHANNEL_MAP variables are set to zero because outer constants ($CHANNEL_CONFIG_STEREO etc.) evaluate to 0 inside a Define block nested within IncludeByKey. Also another issue in the "8"-channel case: it incorrectly uses TDFB_SDW_DMIC_CHANNEL_CFG/MAP instead of TDFB_DMIC_CHANNEL_CFG/MAP, so this needs a fix as well. Fix by removing the broken initialization block entirely and replacing all four uses of $TDFB_DMIC_CHANNEL_CFG/$TDFB_DMIC_CHANNEL_MAP in the tdfb and drc widget format blocks with direct IncludeByKey.TDFB_DMIC_PCM_CHANNELS blocks using the correct constants. Stereo (2-channel) is handled by defaults. This restores token1904/1905 (in_ch_map/cfg) and token1934/1935 (out_ch_map/cfg) to correct stereo values in the tdfb.40.1 and drc.40.1 widgets when SDW_DMIC_ENHANCED_CAPTURE=true. Fixes: 87dc581 ("topology2: sdw-dmic-generic: add multiple DMIC number support") Signed-off-by: Kai Vehmanen <[email protected]> (cherry picked from commit dd26374)
1 parent 064e9bd commit 8ba169c

1 file changed

Lines changed: 56 additions & 34 deletions

File tree

‎tools/topology/topology2/include/pipelines/cavs/host-gateway-tdfb-drc-capture.conf‎

Lines changed: 56 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,6 @@ Define {
2323
TDFB_DMIC_PCM_CHANNELS 2
2424
}
2525

26-
IncludeByKey.TDFB_DMIC_PCM_CHANNELS {
27-
"1" {
28-
Define {
29-
TDFB_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_MONO
30-
TDFB_DMIC_CHANNEL_MAP $CHANNEL_MAP_MONO
31-
}
32-
}
33-
"2" {
34-
Define {
35-
TDFB_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_STEREO
36-
TDFB_DMIC_CHANNEL_MAP $CHANNEL_MAP_STEREO
37-
}
38-
}
39-
"4" {
40-
Define {
41-
TDFB_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_3_POINT_1
42-
TDFB_DMIC_CHANNEL_MAP $CHANNEL_MAP_3_POINT_1
43-
}
44-
}
45-
"8" {
46-
Define {
47-
TDFB_SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_7_POINT_1
48-
TDFB_SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_7_POINT_1
49-
}
50-
}
51-
}
5226

5327
Class.Pipeline."host-gateway-tdfb-drc-capture" {
5428

@@ -88,17 +62,41 @@ Class.Pipeline."host-gateway-tdfb-drc-capture" {
8862
in_bit_depth 32
8963
in_valid_bit_depth 32
9064
in_channels $TDFB_DMIC_PCM_CHANNELS
91-
in_ch_cfg $TDFB_DMIC_CHANNEL_CFG
92-
in_ch_map $TDFB_DMIC_CHANNEL_MAP
65+
IncludeByKey.TDFB_DMIC_PCM_CHANNELS {
66+
"1" {
67+
in_ch_cfg $CHANNEL_CONFIG_MONO
68+
in_ch_map $CHANNEL_MAP_MONO
69+
}
70+
"4" {
71+
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
72+
in_ch_map $CHANNEL_MAP_3_POINT_1
73+
}
74+
"8" {
75+
in_ch_cfg $CHANNEL_CONFIG_7_POINT_1
76+
in_ch_map $CHANNEL_MAP_7_POINT_1
77+
}
78+
}
9379
}
9480
]
9581
Object.Base.output_audio_format [
9682
{
9783
out_bit_depth 32
9884
out_valid_bit_depth 32
9985
out_channels $TDFB_DMIC_PCM_CHANNELS
100-
out_ch_cfg $TDFB_DMIC_CHANNEL_CFG
101-
out_ch_map $TDFB_DMIC_CHANNEL_MAP
86+
IncludeByKey.TDFB_DMIC_PCM_CHANNELS {
87+
"1" {
88+
out_ch_cfg $CHANNEL_CONFIG_MONO
89+
out_ch_map $CHANNEL_MAP_MONO
90+
}
91+
"4" {
92+
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
93+
out_ch_map $CHANNEL_MAP_3_POINT_1
94+
}
95+
"8" {
96+
out_ch_cfg $CHANNEL_CONFIG_7_POINT_1
97+
out_ch_map $CHANNEL_MAP_7_POINT_1
98+
}
99+
}
102100
}
103101
]
104102
}
@@ -119,17 +117,41 @@ Class.Pipeline."host-gateway-tdfb-drc-capture" {
119117
in_bit_depth 32
120118
in_valid_bit_depth 32
121119
in_channels $TDFB_DMIC_PCM_CHANNELS
122-
in_ch_cfg $TDFB_DMIC_CHANNEL_CFG
123-
in_ch_map $TDFB_DMIC_CHANNEL_MAP
120+
IncludeByKey.TDFB_DMIC_PCM_CHANNELS {
121+
"1" {
122+
in_ch_cfg $CHANNEL_CONFIG_MONO
123+
in_ch_map $CHANNEL_MAP_MONO
124+
}
125+
"4" {
126+
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
127+
in_ch_map $CHANNEL_MAP_3_POINT_1
128+
}
129+
"8" {
130+
in_ch_cfg $CHANNEL_CONFIG_7_POINT_1
131+
in_ch_map $CHANNEL_MAP_7_POINT_1
132+
}
133+
}
124134
}
125135
]
126136
Object.Base.output_audio_format [
127137
{
128138
out_bit_depth 32
129139
out_valid_bit_depth 32
130140
out_channels $TDFB_DMIC_PCM_CHANNELS
131-
out_ch_cfg $TDFB_DMIC_CHANNEL_CFG
132-
out_ch_map $TDFB_DMIC_CHANNEL_MAP
141+
IncludeByKey.TDFB_DMIC_PCM_CHANNELS {
142+
"1" {
143+
out_ch_cfg $CHANNEL_CONFIG_MONO
144+
out_ch_map $CHANNEL_MAP_MONO
145+
}
146+
"4" {
147+
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
148+
out_ch_map $CHANNEL_MAP_3_POINT_1
149+
}
150+
"8" {
151+
out_ch_cfg $CHANNEL_CONFIG_7_POINT_1
152+
out_ch_map $CHANNEL_MAP_7_POINT_1
153+
}
154+
}
133155
}
134156
]
135157
}

0 commit comments

Comments
 (0)