Script is meant to be used as standalone tool,
so it should have executable file attribute.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Non-critical drifts should be traced as warnings (WARN,
yellow color), not errors since the system is expected
to recover in this scenario.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Add generic dmic kwd template.
Need to define flowing variable to make it work:
CHANNELS: channel for the DMIC
KFBM_TYPE: kfpm or vol-kfpm
DMIC_PCM_48K_ID: PCM ID for 48K DMIC
DMIC_PIPELINE_48k_ID: pipeline ID for 48K DMIC
DMIC_DAI_LINK_48K_ID: dai link ID in machine dirver for
48K DMIC
DMIC_PCM_16k_ID: PCM ID for KWD 16K DMIC
DMIC_PIPELINE_16k_ID: pipeline ID for 16K DMIC
DMIC_PIPELINE_KWD_ID: pipeline ID for KWD
DMIC_DAI_LINK_16k_ID: dai link ID in machine driver
for 16K DMIC
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2 flags have been added for use during buffer instantiation:
SOF_BUF_OVERRUN_PERMITTED and SOF_BUF_UNDERRUN_PERMITTED,
along with struct sof_ipc_buffer member fields flags and reserved.
Flags field is supposed to hold the above-mentioned flags to allow
some control over XRUN behaviour, i.e. prevent XRUN on buffers which
are allowed to under/overrun by design.
Also added reserved field to the structure in case it comes in handy
some time in the future.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
After the cleanup few elements of the API are no longer used/accessed.
This allows for ABI simplification in the future if we so decide.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
Few artifacts of the past were left after dependency removal. This patch
is there to address that.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
After optimizations done in 2 previous commits, reference to base
component is no longer necessary inside provessing functions, which
allows for simplification of the internal interface.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
In the past, when parameters were held by components, it was impossible
to manage input/output streams with different channels' count.
Now, after params were moved to buffers, we can properly handle such
scenario, which in turn allows for more flexible approach in terms of
runtime configurability.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
(de)mux_get_processing_function() call depended on config->frame_format
being properly configured, which was obsolete from the very beginning.
This patch removed that dependency in favor of reading frame_fmt from
downstream buffer during the call, rendering that field completely
obsolete.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
This change is required before dereference is applied,
to make the macros callable with arguments that have address-of
operator, e.g.
&source->stream
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Breakdown script to functions, use local variables, and a main function.
Use getopts to parse the arguments instead of manual parsing to leave no
room for errors, bugs, and inconsistent conventions introduced by custom
implementation.
Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com>
glk da7119 bobba platform has DMIC already installed. It is good platform
to test DMIC with and without EQ.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
This patch updates the generated file names and locations. The
private data names for topology are changed to DEF_EQIIR_PRIV
and DEF_EQFIR_PRIV to work with updated private date naming scheme.
The copyright text is updated to short BSD-3-Clause text version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds FIR coefficients for loudness effect, mid-boost, and
pass-through. They are useful when testing FIR pipelines.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch cleans the FIR examples generation with more consistent
directories output and file names. The EQ private data name is
renamed for a more consistent scheme into DEF_EQFIR_PRIV for all
generated coefficient data files.
The copyright text is updated to new shorter BSD-3-Clause version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes the high-pass coefficients those produce 0 dB gain
instead of the intended +20 dB. Fortunately none of these have
been used in topology builds.
The 50 Hz +20 dB coefficient blobs those are used in some DMIC
capture pipelines did not have this issue due to being generated
before these and not modified when these were introduced.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds IIR responses band-pass, bass-boost, loudness, and
pass-through for inclusion to topology.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch makes the script more consistent with file names
and paths lets the script to output more useful example IIR
responses into m4 directory for usage with topologies and
testing.
The not consistent naming of IIR private data is aligned. The
label DEF_EQIIR_PRIV is used always that should be macro replaced
by pipeline specific name prior to including them into topology to
enable several EQ instances to be set up with different filter
coefficients.
The copyright text for updated files is updated to short BSD-3-Clause
version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes the issue in script example_iir_eq.m with gain
parameter for function hp_iir_eq(). The last parameter was hard
coded to 0 that caused all 20 dB labeled topologies to to have in
reality 0 dB gain.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
There is a bug in the Cadence XCC compiler that give us different
linkage section sizes for flex length struct sof_ipc_ext_data in
ELF file compared to GCC version. And there are appending struct
in the same ELF section, this will bring wrong offset for those
struct binary in ELF file.
Example:
When the CC_DESC is " RG-2017.8-linux", we should have struct
length for 0x50 in header size, but the binary length in ELF file
is 0x4c. When the CC_DESC is " RG-2017.8-win", size are both 0x4c
All existing compiler description has length less than
32 bytes. So use a fixed length 32 in this structure.
ABI version changes to 3.15.0
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Use getopts to parse the arguments instead of manual parsing to leave no
room for errors, bugs, and inconsistent conventions introduced by custom
implementation.
Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com>
Return ret; is not useful if it always returns 0.
return immediately instead and remove the ret variable.
Signed-off-by: Sam Muhammed <jane.pnx9@gmail.com>
Successfully tested with both Make and Ninja on Linux.
Non-portable but approved by @jajanusz in former PR #2626
With this commit:
$ make -C tools/build_tools/ | wc -l
770
$ VERBOSE=anything make -C tools/build_tools/ | wc -l
10387
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes:
error: 'err' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
if (err)
^
As I found nothing in the entire code base checking the return value of
comp_register() (the real function seems to always succeed), I also
simplify the main path and pass through the value returned by
memcpy_s().
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
When variable length array, filled with string will be
placed in sucha manner that null terminator address will
be divisible by four, then it will be lost in output
binary file. It leads to troubles during scanning content
of such a section. Such a problem occur in firmware
and produce logger and FW debug ABI mismatch and it's why
logger output is broken.
After change length of XCC_TOOLS_VERSION to be none of
number four multiplication problem with logger disappear.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This patch prevents a firmware crash due to divide by zero. It can
happen with DAI types those do not return actual values in pipeline
walk with e.g. hda_get_hw_params().
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch prevents a firmware crash due to divide by zero. It can
happen with DAI types those do not return actual values in pipeline
walk with e.g. hda_get_hw_params().
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Relevant aspects of the audio stream highlighted in the
structure documentation at the beginning in order to
provide more complete introduction on the audio stream
use.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Audio stream is an important piece used by components
therefore full documentation is required by component
developers to operate on source and sink buffers
attached ot their components.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Probe data buffer is big enough for most use cases but
not sufficient in rare situations with many probe points
and heave size configurations like 48000Hz32b32b8ch
In such cases this patch will check remaining buffer size
and trigger additional probe_task run if needed.
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
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>