This commit adds the tools to generate the control bytes for the
crossover component. To generate the control bytes, run the
example_crossover.m script.
The parameters of the crossover components are:
- number of outputs
- sink assignments (routing crossover output to different pipelines)
- frequency cutoffs
To tweak the parameters modify the values in example_crossover.m and run
it.
Refer to sof/src/include/user/crossover.h for more information on how
the crossover config is structured and how sink assignments are done.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This commit adds the topology files for the crossover component.
The control bytes are generated by the tools in tune/crossover.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This commit adds Crossover to the list of SOF components. A crossover
filter can be used to split an input to different frequency bands.
The number of outputs should be set statically in the topology. The user
then uses the control bytes to route the frequency bands to different
outputs. (similar to the demux component).
This commit adds support for the following formats:
- S16_LE
- S24_LE
- S32_LE
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
Use "%pU" for all UUID traces, it will print lower case 'a'-'f'
hexadecimal digits and use little endianness by default.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Updated new UUID for the Maxim DSM component.
New component UUID : 0cd84e80-ebd3-11ea-adc1-0242ac120002
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
When allocating an LLI array no need to use rzalloc() since the array
is 0-initialised directly after allocation anyway.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
pipeline_schedule_cancel() is never called outside of pipeline.c,
make it static.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit adds comp_get_status() helper function, which
takes two arguments: requesting component and component from
which user wants to read status. In case when both components
are on the different cores function additionally invokes
comp_invalidate().
This commit also fixes issue in smart_amp_copy() function, where
we always invoke comp_invalidate(sad->feedback_buf->source) whether
or not both components (smart amp and sad->feedback_buf->source)
are on different cores. In case when both components are on
the same core, we can invalidate data not previously writebacked.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
Default is verbose enough. VERBOSE=1 can still be used later at make
time.
Also change nproc to nproc --all because we don't care about offline
processors.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Use newer rebuild-testbench.sh instead, added by
commit 46578cb103 ("scripts: Add a new script to rebuild testbench")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Maxim DSM(Dynamic Speaker Management) audio component is added.
This component takes stereo input + 4 channel IV feedback.
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
This change adds support for atomic trigger operations,
by grouping DAIs together with a common 'group_id' in
the configuration of each DAI.
When DAIs are in the same group and in the same DSP core,
they will process triggers atomically, i.e. wait for all
the other DAIs to receive the trigger command and pospone
the final, actual trigger operation.
This functionality might be required in case of stream aggregation,
where one stream is fed into multiple physical links.
Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
Most functions in logger depend on values stored in conver_config struct
which are passed to almost all function calls. This patch moves pointer
to the config to global context and allows each function to derive
necessary values from there. This reduces needless parameters passed
to function calls and allows for more flexible access to data in nested
functions.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
SOF_SRC_HASH always must have integer value, because of usage
them to initialize global variable in source code.
Variables, which may be empty should be used inside quotation
to prevent cmake incorect number of arguments error.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Temporary files are useful to understand and debug the build.
Moving output to another directory, keeps binary directory clean.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This is possible location of .git folder, instead of CMAKE_SOURCE_DIR.
Without this patch, checked condition always return false and
GIT_LOG_HASH is used instead source code hash.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Add development folder for topologies that not for production.
First add sof-tgl-nocodec-ci as a validation topology.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add KPB pipeline into the sof-tgl-nocodec-ci topology.
This topology will be a reference test topology for all features used
on TGL.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add default dai name for dmic dai, we can override them in
if dai name in machine driver is different.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add FW echo reference to nocodec TPLG on SSP0.
Add internal loopback on SSP0. We can compare echo reference and
loopback capture stream.
Add smart amplifier for nocodec on SSP2
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
To make multiple DEMUX comp can work in same topology. Add pipeline
ID into the DEMUX control name.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
It allows to trace error with proper (client) trace context
after hitting some error.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This patch removes the incorrect usage of BUILD_COMMAND. Having it set
to "cmake" caused the cmake usage help text output to be shown only and
caused the ExternalProject_Add command to believe the
libsof_tplg_parser.so was built. The build for the library happened only
because the next install step performed the compilation. With this fix
the default build command is used instead. There's no need to define
it here.
Fixes#2656
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This patch improves overall key word detector
pipelines performance by skipping unnecessary
checks & calls.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This fix compensates host wakeup time.
Here we limit max draining request to 2 seconds.
History buffer size if one second bigger than max draining
request allowed.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch increases HPSRAM buffer size for TGL platform.
Thanks to this change we can provide KPB more space for
history data.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch changes the variable name history_depth to drain_req
as it is more understandable.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch adds critical section during update
of real time stream in draining task. There is a small possibility
that history data may get corrupted when real time stream preempt
draining at wrong moment.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
TGL have hardware requirement that DSP should
use LPRO as clock source in waiti.
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
Kcontrol interface is needed to set the smart_amplifier algorithm
parameters at runtime for tuning purpose. This patch allows the
user to set parameters using byte kcontrol.
Signed-off-by: Dharageswari R <dharageswari.r@intel.com>
Currently, the testbench is built using the script named
'host-build-all.sh' under scripts directory. But the name of
the script, it's git history doesn't refer to what the script
is currently doing now.
The newly written script adds option to build the testbench.
This script was written in mind to remove the old script
used to build the testbench (i.e host-build-all.sh).
The script also adds an option to build the testbench with
AFL instrumentation. AFL fuzzer works well when the code
it's trying to fuzz is instrumented properly. The instrumentation
helps the fuzzer in generating unique inputs which cover
different paths in the code graph. When the option is set,
testbench is built using a compiler AFL provides, which does
the instrumentation work.
Signed-off-by: Mohana Datta Yelugoti <ymdatta.work@gmail.com>
atomic operations must use the value returned by the atomic_add() or
atomic_sub() operation rather than a subsequent (and non atomic) read.
Fix this by using values returned by atomic add() or sub()
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Text saved to FILTER_KERNEL_PATH should be terminated with
new line, to indicate end of input and mark it redy to send
to FW in IPC message.
Fixes: 126060ae (logger: Send parsed runtime log levels to FW via debugFS)
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Usage of strstr for short version of logs level definitions
(for example 'e') leads to invalid level parsing, because first
log level with defined string (or letter) will be returned
(in this example 'verbose').
After change, log level will be returned only when name is
exactly as given one.
Fixes: b1fc9220 (logger: Parse runtime filter levels)
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
When a DMA scheduling domain owner is deregistered, if there's still
another DMA channel active in the same domain, the ownership has to
be transferred. In this case even briefly disabling and re-enabling
DMA can cause over- or underruns. Avoid this by transferring domain
ownership transparently.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use tr_err to have this initial message also in error logs and assert
traces works well.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>