This patch adds topology parsing and common functions versions
for IPC4.
Due to dai_get_init_delay_ms() implementation in IPC4 build
the file component is changed internally to copier to provide
the DAI data struct. The change is common for both IPC3 and IPC4
though copier is not usually used with IPC3 systems. Since it
works the same solution is used. The file state retrieve is changed
because the file component data is placed deeper into the
structures.
Due to IPC4 scheduling of pipelines the file component is added
a timeout. A file component sets timeout status if there has
been three copy operations with no data to process. The timeout
and EOF are used to end cleanly the test run.
The library_defconfig still has CONFIG_IPC_MAJOR_4=n. The add
of build type select to scripts/rebuild-testbench.sh is further
work. Also the IPC4 testbench in this state is not well usable
with only one component supported as process component and
without byte control set up algorithms.
Test run with DC blocker is possible this way:
tools/testbench/build_testbench/install/bin/testbench
-r 48000 -R 48000 -c 2 -n 2 -b S32_LE -p 1,2
-t tools/build_tools/topology/topology2/development/
sof-hda-benchmark-dcblock32.tplg
-i in.raw -o out.raw
Also sof-hda-benchmark-gain32.tplg can be run.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
dp_queue was created as a buffer to handle
special needs for DP modules.
However, in pipeline2.0 there will be more usecases
for it - as in fact it is a lockless cross-core
cached ring buffer.
This commit does rename dp_queue to more adequate name
It also moves the file to "buffers" directory, a place
for all implementations of buffers in pipeline 2.0
The commit, however, does not change names of structures
because git/github does not handle complex changes like
rename and modification correctly
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Add a very simple uuid-registry.txt file containing all known UUIDs in
the tree, use it to generate a C header (the script validates it in
the process) that can then be used for a simplified
SOF_DEFINE_REG_UUID() mechanism that avoids the risk and temptation
temptation of components incorrectly implementing UUIDs.
The intent is that in the longer term, this file can be used by other
downstream tooling (manifest and topology generation) to more easily
reference known IDs by name in a way that avoids duplication and
error.
Signed-off-by: Andy Ross <andyross@google.com>