Topology2: add mixout-gain-smart-amp-dai-copier-playback pipeline

This patch adds mixout-gain-smart-amp-dai-copier-playback
pipeline.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This commit is contained in:
Chao Song 2023-01-16 16:46:17 +08:00 committed by Kai Vehmanen
parent 82cedc1665
commit cc21dfa01a
1 changed files with 143 additions and 0 deletions

View File

@ -0,0 +1,143 @@
#
# BE playback pipeline: mixout-gain-smart-amp-dai-copier.
#
# All attributes defined herein are namespaced
# by alsatplg to "Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback.N.attribute_name"
#
# Usage: mixout-gain-smart-amp-dai-copier-playback pipeline object can be instantiated as:
#
# Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback."N" {
# period 1000
# time_domain "timer"
# channels 2
# rate 48000
# }
#
# Where N is the unique pipeline ID within the same alsaconf node.
#
<include/common/audio_format.conf>
<include/components/copier.conf>
<include/components/gain.conf>
<include/components/mixout.conf>
<include/components/pipeline.conf>
<include/components/smart_amp.conf>
Class.Pipeline."mixout-gain-smart-amp-dai-copier-playback" {
<include/pipelines/pipeline-common.conf>
attributes {
!constructor [
"index"
]
!immutable [
"direction"
]
#
# mixout-gain-smart-amp-dai-copier-playback objects instantiated within the same
# alsaconf node must have unique instance attribute
#
unique "instance"
}
Object.Widget {
mixout."1" {}
copier."1" {
type dai_in
node_type $HDA_LINK_OUTPUT_CLASS
num_audio_formats 2
num_input_audio_formats 2
num_output_audio_formats 2
# copier only supports one format based on mixin/mixout requirements: 32-bit 48KHz 2ch
Object.Base.audio_format.1 {
in_bit_depth 32
in_valid_bit_depth 24
out_bit_depth 32
out_valid_bit_depth 24
dma_buffer_size "$[$obs * 2]"
}
Object.Base.audio_format.2 {
in_bit_depth 32
in_valid_bit_depth 32
out_bit_depth 32
out_valid_bit_depth 32
dma_buffer_size "$[$obs * 2]"
}
}
gain."1" {
num_audio_formats 2
num_input_audio_formats 2
num_output_audio_formats 2
# 32-bit 48KHz 2ch
Object.Base.audio_format.1 {
in_bit_depth 32
in_valid_bit_depth 24
out_bit_depth 32
out_valid_bit_depth 24
}
Object.Base.audio_format.2 {
in_bit_depth 32
in_valid_bit_depth 32
out_bit_depth 32
out_valid_bit_depth 32
}
}
smart_amp."1" {
num_input_audio_formats 2
num_output_audio_formats 1
# 32-bit 48KHz 2ch
Object.Base.input_audio_format {
1 {
pin_index 0
in_bit_depth 32
in_valid_bit_depth 32
}
2 {
pin_index 1
in_bit_depth 32
in_valid_bit_depth 32
}
}
Object.Base.output_audio_format.1 {
pin_index 0
out_bit_depth 32
out_valid_bit_depth 32
}
}
pipeline."1" {
priority 0
lp_mode 0
}
}
Object.Base {
route.1 {
source mixout.$index.1
sink gain.$index.1
}
route.2 {
source gain.$index.1
sink smart_amp.$index.1
}
}
direction "playback"
dynamic_pipeline 1
time_domain "timer"
channels 2
channels_min 2
channels_max 2
rate 48000
rate_min 48000
rate_max 48000
}