This patch will ignore provided stream tag for extraction probe point.
It is used only for checking probe point info by the user and now for
all extraction points it will show the same and valid stream tag.
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
gcc-9 shows the following issue:
error: taking address of packed member of ‘struct sof_abi_hdr’ may
result in an unaligned pointer value [-Werror=address-of-packed-member]
225 | request = (int32_t *)cdata->data->data;
| ^~~~~
This commit fixes the issue. The warning was introduced in GCC-9, and
was therefore not raised by previous compiler versions.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
Implements new IDC sending mode dedicated to powering up
the cores. Master core should wait until slave core reports
that is ready for further operations. Without such confirmation
there is a race possibility, where next IPC should be processed
by slave core, but it's not yet powered up.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes method of waiting for blocking IDC messages to
use appropriate IDC registers. This way we no longer
need additional boolean status variables and also
we don't need to enable IDC DONE interrupts.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
There is no need for blocking all the interrupts,
when powering up slave core. Only one path of execution
exists to do that anyway.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Extends software registers to include trace point per core.
This way slave cores won't override boot status of one another.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Add EQIIR and EQFIR to first playback pipeline. This help to expand more
equalizer testing across platforms.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Add EQIIR and EQFIR to first playback pipeline. This help to expand more
equalizer testing across platforms.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Channel 0 is special. It goes from READY (at init) to ACTIVE (at run)
and then back to READY (at stop).
The rest of the channels go to PREPARE (at set_config) or they can be
SUSPENDED or PAUSED the same state machine as for EDMA.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
In particular we need to propagate is_scheduling_source and direction,
because later the fields from channel are used.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Old name was overlooked in the component API documentation.
Corrected to SOF_MEM_ZONE_RUNTIME.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This header is an important part of API used frequently
by the developers and must be documented and referred
by the sof-docs.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Once the debug version of allocation functions are removed,
macros may be replaced with functions declared without leading
_ which makes the documentation (and the header) more readable,
the defines section does not need to contain doubled documentation
of alloc api.
bzero macro is not esasily removable due to include deps which
bring earlier declaration of non-inline prototype.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This patch fixes the crash by adding initialize of sof->pipeline_posn
into pipeline initialization code.
Also the in load_pipeline() function the pipeline is initialized
to zeros to prevent random values to be passed in not set
struct fields. It didn't fix anything but makes debugging of crash
easier.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Commit 9e1a2b251a ("panic: noreturn attribute for scan build")
added ((analyzer_noreturn)) but only for clang.
Fixes at least these two -Werr CONFIG_PROBE=y build failures and
probably similar others with a different .config or in the future:
sof/src/probe/probe.c: In function 'probe_cb_produce':
sof/src/probe/probe.c:635:11: error: 'valid_bytes' and
'container_bytes' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
Build failure reproduced with xtensa-apl-elf-gcc (crosstool-NG
1.23.0.440-3b8c) 7.3.0
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes:
tplg_parser.c: In function ‘tplg_load_graph’:
tplg_parser.c:979:2: error: ‘sink’ may be used uninitialized
in this function [-Werror=maybe-uninitialized]
979 | printf("loading route %s -> %s\n", source, sink);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The memory size for cht and byt is too small to include the DC Block
module. If the user wants to use it, they will have to disable some
other components.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This commit includes a new test case in tplg-build.sh. It also includes
the new simple pipelines pipe-dcblock-capture/playback. Those new
pipelines are used by tplg-build.sh to generate the test pipelines.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This commits adds the scripts to generate the bytes control blob
for the DCB. It also provides some generic scripts to convert
valid binary blob to a csv or binary file (usable by sof-ctl)
or an m4 byte control topology file.
This commit adds two new folders under tools/tune
- dcblock: scripts to generate the blob in Octave
- common: scripts to convert any generic blob to a config file.
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This change provides a DC Blocking Filter (DCB) component. A DCB is a
high-pass filter used to remove any DC offset from a signal. The
coefficients for the component can be set individually for each channel.
Currently, only the following formats are supported:
s16_le
s24_le
s32_le
Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
This patch makes the binary gcd algorithm work for negative
numbers by turning them into positive ones. Works since
gcd(a, b) = gcd(-a, -b) = gcd(-a, b) = gcd(a, -b)
Signed-off-by: Iulian Olaru <iulianolaru249@yahoo.com>
This patch replaces the former gcd algorithm which was implemented with
repetitive divisions with Stein's algorithm, whitch is a faster gcd
algorithm. All operations are arithmetic shifts, comparisons and
subtractions.
Signed-off-by: Iulian Olaru <iulianolaru249@yahoo.com>
CMAKE_VERBOSE_MAKE was sometimes "hardcoding" the decision in CMake's
cache. Move that decision to the make invocation.
After running xtensa-build-all.sh [-v], it's now possible to choose
again whether "make -C build_apl_gcc/" should be VERBOSE or not without
starting from scratch and with the exact same configuration.
Before this commit it was possible for make to decide again after a
non-verbose xtensa-build-all.sh but not possible to decide again after a
verbose xtensa-build-all.sh... very confusing.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Instead of making new files for audio equalizer topology, reuse existing
topology and replace only volume pipeline by macro replacement.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
There is no need for that many macros in the header.
The optional debug code can be inserted into the allocation
functions.
There is no need for dedicated debug trace functions for
runtime and buffer heaps. Merging the parameter setup
into switch inside a single alloc_trace_heap() function
reduces the debug ptr verification macros to a single
common one.
Once the debug code is moved from the header to .c file,
there is no need to expose memory unit trace macros that
should be internal.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
All clients that just wants to allocate and free memory
does not need to know all the heap management api
and internals.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
There was old RZONE_BUFFER symbol left in the debug code, not
changed to SOF_MEM_ZONE_BUFFER.
Went under the radar so far since the DEBUG config options are
not included in CI builds yet.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This patch adds the double quotes to shell scripts to avoid fails
with arguments or shell variables when there are space characters.
The processing components run scripts are all edited for better
structure with functions usage() and main() and with local variables
within functions.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Create dump options for logger to print important information from
LDC file, like DBG_ABI version and UUID with corresponding names.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Split this function to part responsible for pointer calculation
and string formatting. It make possibility to use same
string format with different pointer arithmetic.
Moreover introduce aprintf to make memory allocation for output
string more automated process.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Double space in formatting string led to little mismatch between header
and content in output logger file.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>