From ffe0da835fec43c2a96bbdaafb8a719a127ab7c4 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Fri, 2 Oct 2026 13:22:49 +0300 Subject: [PATCH] topology2: sdw-dmic-generic: fix channel map/cfg regression The IncludeByKey.SDW_DMIC_PCM_CHANNELS + nested Define pattern introduced to set SDW_DMIC_CHANNEL_CFG/SDW_DMIC_CHANNEL_MAP is broken: outer constants ($CHANNEL_CONFIG_STEREO, $CHANNEL_MAP_STEREO, etc.) evaluate to 0 inside a Define block nested within IncludeByKey, overwriting the correct defaults from input_audio_format.conf with zeroes. Fix by removing the broken intermediate variable initialization entirely and replacing all uses of $SDW_DMIC_CHANNEL_CFG/$SDW_DMIC_CHANNEL_MAP in format blocks with direct IncludeByKey.SDW_DMIC_PCM_CHANNELS blocks using the correct constants. The 2-channel (stereo) case is handled by the existing defaults in input_audio_format.conf / output_audio_format.conf, so no explicit entry is needed for it. This restores token1904 (in_ch_map) to 0xffffff10 and token1905 (in_ch_cfg) to 1 for the alh-copier.Capture-SmartMic.0 widget in ARL/MTL SDW DMIC topologies. Fixes: 87dc5819a7ed ("topology2: sdw-dmic-generic: add multiple DMIC number support") Link: https://github.com/thesofproject/linux/issues/5960 Signed-off-by: Kai Vehmanen --- .../platform/intel/sdw-dmic-generic.conf | 508 +++++++++++++++--- 1 file changed, 420 insertions(+), 88 deletions(-) diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf index 7a42ade4704f..900c4bf383aa 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf @@ -7,36 +7,8 @@ Define { SDW_DMIC_PASSTHROUGH "false" SDW_DMIC_HOST_PIPELINE_ID 40 SDW_DMIC_PCM_CHANNELS 2 - SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_STEREO - SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_STEREO } -IncludeByKey.SDW_DMIC_PCM_CHANNELS { - "1" { - Define { - SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_MONO - SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_MONO - } - } - "2" { - Define { - SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_STEREO - SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_STEREO - } - } - "4" { - Define { - SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_3_POINT_1 - SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_3_POINT_1 - } - } - "8" { - Define { - SDW_DMIC_CHANNEL_CFG $CHANNEL_CONFIG_7_POINT_1 - SDW_DMIC_CHANNEL_MAP $CHANNEL_MAP_7_POINT_1 - } - } -} Object.Dai.ALH [ { @@ -75,38 +47,98 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 16 in_valid_bit_depth 16 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 32 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 24 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 32 in_sample_type $SAMPLE_TYPE_FLOAT - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 8 in_valid_bit_depth 8 in_sample_type $SAMPLE_TYPE_UNSIGNED_INTEGER - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] Object.Base.output_audio_format [ @@ -114,38 +146,98 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 16 out_valid_bit_depth 16 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 24 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 out_sample_type $SAMPLE_TYPE_FLOAT - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 8 out_valid_bit_depth 8 out_sample_type $SAMPLE_TYPE_UNSIGNED_INTEGER - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] } @@ -157,22 +249,58 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 16 in_valid_bit_depth 16 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 24 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 32 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] Object.Base.output_audio_format [ @@ -180,22 +308,58 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 16 out_valid_bit_depth 16 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 24 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] } @@ -248,38 +412,98 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 16 out_valid_bit_depth 16 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 24 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 out_sample_type $SAMPLE_TYPE_FLOAT - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 8 out_valid_bit_depth 8 out_sample_type $SAMPLE_TYPE_UNSIGNED_INTEGER - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] } @@ -290,22 +514,58 @@ IncludeByKey.SDW_DMIC_ENHANCED_CAPTURE { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 16 out_valid_bit_depth 16 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 24 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] } @@ -337,8 +597,20 @@ Object.Widget { in_bit_depth 32 in_valid_bit_depth $SDW_LINK_VALID_BITS in_sample_type $SAMPLE_TYPE_MSB_INTEGER - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } ] @@ -347,8 +619,20 @@ Object.Widget { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] } @@ -372,8 +656,20 @@ Object.Widget { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 32 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] Object.Base.output_audio_format [ @@ -381,8 +677,20 @@ Object.Widget { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] @@ -401,8 +709,20 @@ Object.Widget { in_channels $SDW_DMIC_PCM_CHANNELS in_bit_depth 32 in_valid_bit_depth 32 - in_ch_cfg $SDW_DMIC_CHANNEL_CFG - in_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + in_ch_cfg $CHANNEL_CONFIG_MONO + in_ch_map $CHANNEL_MAP_MONO + } + "4" { + in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + in_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + in_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + in_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] Object.Base.output_audio_format [ @@ -410,8 +730,20 @@ Object.Widget { out_channels $SDW_DMIC_PCM_CHANNELS out_bit_depth 32 out_valid_bit_depth 32 - out_ch_cfg $SDW_DMIC_CHANNEL_CFG - out_ch_map $SDW_DMIC_CHANNEL_MAP + IncludeByKey.SDW_DMIC_PCM_CHANNELS { + "1" { + out_ch_cfg $CHANNEL_CONFIG_MONO + out_ch_map $CHANNEL_MAP_MONO + } + "4" { + out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 + out_ch_map $CHANNEL_MAP_3_POINT_1 + } + "8" { + out_ch_cfg $CHANNEL_CONFIG_7_POINT_1 + out_ch_map $CHANNEL_MAP_7_POINT_1 + } + } } ] }