We'll use this new function to require ALSA 1.2.5 and finally rename to
"codec_consumer" (see revert discussion #5192)
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
We want to fail if STATUS is not defined, the empty string, the FALSE
string or anything unexpected that it is not strictly equal to success
code "0".
Fixes commit 308a24a92b ("topology2: Add build support")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The main page sources were dropped out from the document sources in the
last review rounds of the original PR. Add *.doxy to FILE_PATTERNS to
add it back.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Replace audio_format objects with input_audio_format/output_audio_format
objects in preparation for deprecating the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Use input_audio_format/output_audio_format explicitly in preparation for
deprecating the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Use input_audio_format/output_audio_format explicitly in preparation for
deprecating the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Use input_audio_format/output_audio_format explicitly in preparation for
deprecating the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
There're no differences for SSP and SoundWire TPLGs between
MTL and LNL, we can reuse MTL TPLGs for LNL.
Signed-off-by: Keqiao Zhang <keqiao.zhang@intel.com>
This is additional HW board: No SDW_DMIC connection
SDW0: rt713 Jack codec
SDW1: rt1316 smart amp l
SDW2: rt1316 smart amp r
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
The num_output_pins was set for pass-through path but missed in normal
path. Without it Linux kernel driver wouldn't set second output pin
format for dai copier which connects smart amp and gain module.
Signed-off-by: Rander Wang <rander.wang@intel.com>
This patch changes all cavs-nocodec.conf based topologies to
use exponential Windows fade curve_type in gain components. It
is done to ensure the ramp gets tested after change of gain
curve_type default to linear.
The gain in included deep buffer playback pipeline (hw:0,31) and
in mixer pipeline (hw:0,41) are not changed because they are used
also in normal topologies. Also in capture direction DMIC raw
(hw:0,10) remains curve_type 2. Other gains are curve_type 1
Windows fade.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This change can drop in TGL platform 2ch 48 kHz gain component
peak load e.g. from 16.7 to 7.09 MCPS CPU_PEAK(MAX) reported by
sof_perf_analyzer.py. The peak varies a bit time. If several
gain instances ramp simulatenously in stream start, the peak
MCPS consumption could be source for xruns and glitches if overall
load is high.
The change with linear curve is barely audible. The
computationally heavier Windows fade exponential curve is required
only with Windows OS. Since Windows is not using ALSA topologies
this change does not impact it.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Use input_output_format/output_audio_format explicitly. Additionally,
this patch introduces the used of the CombineArrays feature in the
topology2 compiler to generate multiple audio format objects from the
attribute array combinations.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Setting the in bit depth for the second audio format in the
host-gateway-capture object results in resetting the channel count to 2.
The in_bit_depth is set to 32-bit by default for all audio formats in
host-gateway-capture class already.
Fixes: 7a11e27bf2 ('topology2: host-gateway-capture: Replace audio_format objects')
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The first playback PCM is for AEC mic input via SSP0 LBM. The second
playback PCM is for AEC reference via SSP2 LBM. The first capture
PCM is the AEC output.
The AEC (mockup) can be run and tested with the topology like
this:
$ aplay -Dhw:0,0 mic_clip.wav &
$ aplay -Dhw:0,2 ref_clip.wav &
$ arecord -Dhw:0,0 -f dat -d 10 output.wav
With AEC mockup version output.wav is mix of microphone
and reference.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
name
rt713 and rt1713 are in different SoundWire links. So, no DAI type will
be appended to DAI link name. We should use default stream name in
the topology.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
This patch uses cavs-benchmark-hda.conf to build topologies to
test components in a simple playback and capture configuration.
host copier --> component --> DAI copier
host copier <-- component <-- DAI copier
The built topologies are
sof-hda-benchmark-dcblock16/24/32-tgl.tplg
The shell script bench_comp_generate.sh is added to conveniently
generate include files needed to build new test topologies for
component with s16/s24/s32 format.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
With input_audio_format/output_audio_format objects in preparation to
deprecate the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
There were couple of classes that did not have their topology2 snippets
showing. Probably the essential problem was just the class definition
starting from the first line of the file. There was nothing obviously
wrong in the output of the filter, but the way the doxygen works is
sometimes hard to anticipate. Adding \struct before the definition
fixed the problem.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Doxygenify all comments that are correctly placed near the attribute's
or objects C-translation. This is not the case for comments before
Object.Base { } definition or comment before including
pipeline-common.conf, which is inlined by the topology2 filter, does
not end up in any relevant place, so its better just leave those
comments as they are. They can anyway be read from topology2 source
snippets.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
The initial main-page contains a short introduction into topology2
Doxygen documentation, and an inline reference to automatically
generated contents page.
The commit also adds more advanced cmake rules to track all document
dependencies.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
This commit adds topology2-generate-contents.sh the script to generate the
contents page that will be inline included to the mainpage added in the next
commit.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Includes all *.conf files under topology2 to the Doxygen documentation
and points directly to mainpage Doxygen source.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
This is the second version of topology2 to C Doxygen filter. Its far
from perfect, but it should get us started.
The purpose of the translated C code is not to document actual
topology2 code, but only to provide anchors for Doxygen to form a
network of links through which to navigate the topology sources and
find the pieces of related Doxygen documentation. The filter also
creates separate pages of the original code and adds links next to the
pages in the C struct definition, instance documentation and their
possible Doxygen documentation.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
This patch adds the other SOF volume ramp types linear and
logarithmic with and without zero crossings detect mode to gain
widget class. The names of fade values are changed to be similar
as in enum sof_volume_ramp, since there is a specific curve
shape required for Windows OS.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The blob contains the input/output audio formats but these are already
passed during module init based on hw_params. So no need to have the
byte control for it.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The DMIC capture path should support both 4ch and 2ch audio formats.
Also, since the Google AEC module only support 16-bit input format,
modify the output of the refeence capture DAI accordingly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The echo-ref pipeline ie the DAI capture pipeline involving the speaker
codec is already part of the list of pipelines that gets set up and
triggered when the DMIC capture starts. Therefore, there's no need for
the echo-ref PCM to explicitly start the reference capture. So, remove
it and connect the codec DAI to the google-rts-aec module directly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
We need to care about audio user experience and peak MCPS
usage in production topologies.
The alsabat test is disturbed by the longer ramp so the
change can be reverted from nocodec topologies. Those
topologies are never used by end users. Also the peak MCPS
mitigation is not relevant for test topologies, as long as
higher MCPS is not triggering error reports. The curve
duration is restored without explicit set to the default 20 ms.
Fixes: #8238
Fixes: d0d74a477f
("Tools: Topology2: Change in capture gain
curve_duration to 50 m")
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>