This commit adds the tools to generate the control bytes for the
drc component. To generate the control bytes, run the example_drc.m
script.
To tweak the parameters modify the values in example_drc.m and run it.
This is still WIP. A fixed set of coefficients is temporarily used in
drc_generate_config.m
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This commit adds the topology files for the drc component.
The control bytes are generated by the tools in tune/drc.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This commit adds Dynamic Range Compression (DRC) to the list of SOF
components. DRC in audio processing is intentional to reduce the
volume of loud sounds and amplify the silent sounds as compressing an
audio signal's dynamic range.
This is the intermediate implementation with floating-point calculations.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Properly retrieve gcc version values and unify the optimisation flag
with Zephyr to always include a '-' in the string. Before this patch
the kernel reports the firmware, built with gcc as
Firmware info: used compiler XCC 12:0:8 xtensa-cnl-elf used optimization flags O2
With this patch it reports
Firmware info: used compiler GCC 8:1:0 xtensa-cnl-elf used optimization flags -O2
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This component is conditionally compiled, so passing such an
information to driver, allows to check possible scanning failure
reason.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This feature is not needed to get functional firmware,
so may be disabled for platforms with low memory space,
like baytrail and cherrytrail.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This feature will be needed to monitor memory utilization and
memory leaks. It may be usable also in realese builds, so removed
conditional ipc_glb_test_message compilation.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Add extended manifest at the begin of firmware image,
as a firmware metadata description.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
In order to support more linux based testing apps lets move the drivers
for the library build into the rest of the source tree so it is easy to
develop additional apps.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
The generation of multiple tone frequencies failed due accidental
square matrix generation when mixed row and column vectors were added.
The new version uses only vectors in first dimension and avoids the
problem.
The license text format also is changed to current.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
DMA should be loaded at least with data for one period
otherwise glitches are supposed to appear. Such a kind of
problem is quite difficult to track, because it may be related
with scheduling in runtime, DSP load, or used buffers size,
so log message pointing such a problem is useful.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
The added check and print helps the user to generate the array
configuration data and other beam pattern test related binary files
to carry out this test for TDFB (beamformer) component.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Due to the missing semicolons the variable config_fn got printed
to screen unnecessarily.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The script to load back to Matlab or Octave the test input data
was missing from previous patch that introduced TDFB (beamformer)
component.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
To make sure all the RX FIFO entries are read out for the flushing, we
need wait until the SSSR_RNE is cleared after the SSP is disabled (the
SSSR_BSY is cleared, otherwise, there might be obsoleted entry remained
in the FIFO which will impact the next run with the SSP RX and lead to
sample mismatched issue.
BugLink: https://github.com/thesofproject/sof/issues/3428
Cc: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This commit adds check whether timer handler is set
in order to avoid unexpected errors.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
'p + 2' should be smaller than end pointer, bigger value may leads
to undefined memory region read.
Memmove should include last '\0' char.
Without this fix output looks like:
task add 0xbe070600 pipe-task 0x1fffa0f0U
After changes:
task add 0xbe070600 pipe-task <f11818eb-e92e-4082-82a3-dc54c604ebb3>
Fixes: 12f2d9b2c8 logger: Refactor UUID parsing
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
In case more than one client is using the scheduler, the SOF task
can be scheduled significantly later than requested. In such a
case using the current time as a base for re-scheduling is wrong
and leads to xruns. Use Zephyr work queue API instead to query
work schedule time.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Commit 0e1176d943 ("trace: Update trace level after ipc message")
broke building under Zephyr. Fix the breakage by effectively disabling
functionality, to be properly fixed later.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit moves all of the template components into
src/samples/audio directory in order to avoid confusion
during 3rd part IP integration process.
Building samples are set by default only from chrome
configs.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
config->uids_dict has never been freed before.
`out` label has been added to perform `uuid_dict`
free before function return.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Passing %s with random address leads to logger crash.
It's especially important right now, after changing
print formatter for UUID from %s to %pU. It's why
DBG_ABI patch number has been updated.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Split UUID formatter parsing from general formatter parser,
to make functions shorter and less complicated.
By the way reduce number of loops.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
LDC with FW compatibility check has no sens for ldc dump operation,
because ldc dump reads only information provided in ldc file,
without engaging any information from FW - can be done offline as well.
Logger and ldc file DBG_ABI compatibility check is still active.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
The log() function returns -Inf for level measure for stream of
digital zeros. It is correct but requires extra handling in the
upper level functions to avoid unnecessary tests fails. Adding of
offset 1e-20 results to -196.99 dBFS be the smallest possible
reported value. The function remains sufficient for all audio
measurements with 16 - 32 bit formats.
The license text is also updated to current version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add tgl rt715-rt711-rt1308 support. But keep the PCM order as
Headphone, Headset mic, Speakers, Microphones.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
We switch to PCH-based names instead of CPU config names for tigerlake+
platforms, because we need to support multiple variants of PCHs based
on one CPU famile - for example TGL-H & TGL-LP.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
As incredible as it sounds, some people run neither "git status" nor
"git diff" every few minutes and not even when their build fails. There
has been reports that they're puzzled when they miss a required
submodule update. This is an attempt to draw their attention based on
the assumption that they pay more attention to the CMake logs.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
We need clang support for the testbench therefore the following changes
are needed
remove -ftree-vectorizer-verbose since its deprecated in gcc and not
supported in clang
remove =3 from -Wimplicit-fallthrough=3 since 3 is the default level
anyways
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
fread() returns number of readed blocks, 0 when nothing read.
Comparison fread return value with "!ret" is quite misleading -
may suggests that negative value is returrned after fail.
Swapping if content makes flow easier, then first is error check,
and eventyally return statement, next try to reopen file.
It allows to check error condition only in one place, so there
won't be possibility to use different error checks in subsequent
stages (like ferror() and errno).
in_file alignment with trace entry size check has been added,
to warn about corrupted file.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
log format text comes from ldc file (may be invalid),
so error check is needed. Don't treat it as fatal error,
because this error may not impact following logs, when
formatting text is root cause of the issue.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
fread may return 0 when some error occurred or nothig has been reded.
Moreover errno may not be set on Windows plaform, use ferror
instead. See:
https://www.gnu.org/software/gnulib/manual/html_node/fread.html
Fixes: 337afc4f3809: ("logger: add error message when reading sof/etrace instead of sof/trace")
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
In case of changing specific values in buffer structure,
we should use buffer locks an unlocks macros in order
to retain multicore coherence.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
Pass PRIVATE_KEY_OPTION environment variable to docker to be able to
define external key for signing.
Suggested-by: Marc Herbert <marc.herbert@intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Use current->pipeline instead of ppl_data->p as a
pipe_dbg() and pipe_err() arguments. ppl_data->p
is not set at that point and can cause unexpected
errors.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
the term 'master clock' is misleading, a 'master clock' can have a
direction per ALSA definitions.
This patch suggests the use of the 'main clock' term instead.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>