The UpExtreme provides access to link2 in 2 of the 3 modes. This is
useful to test rt5682 configurations.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
We run TX in asynchronous mode and RX in synchronous mode with
transmitter. Anyhow, in this mode when starting RX we also need
to enable TX (if it wasn't previously enabled).
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
As part of dependent PCMs feature we need to properly inform userspace
when trigger start/release is called on a pipeline, that depends on
another to provide that data, as in Echo Reference usecase.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
This patch adds for EQ tests and presets switch development a
bundle with five presets: flat, loudness, bass-boost, band-pass,
and high-pass. The m4 file is used by including to topologies. The
text format file is for sof-ctl.
The added code to script example_iir_eq.m is included. The blob is
also useful for testing multi-part IPC for EQ component. The existing
examples were not large enough to exercise the feature.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Tool build will fail without git submodule init and update.
Add the submodlue support also in tool CMake file.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This patch is based on smart amplifier support on I2S platform and the
differences are pipeline layout and DAI config. On sdw platforms, the
pipeline layout is:
PCMX ----> smart_amp ----> ALH0xX02 (Speaker -max98373)
^
|
|
PCM(X+1) <---- demux <----- ALH0xX03 (Speaker -max98373)
Signed-off-by: randerwang <rander.wang@linux.intel.com>
When there's a failure like for instance SOF issue #2543, fixed in
alsa-utils commit caf77a93cef5 ("topology: add back asrc to widget_map
in dapm.c"), it's finally possible to remove all the noise around the
failure and see the failed command:
NO_PROCESSORS=1 VEBOSE=1 ./scripts/build-tools.sh
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Let's stop ignoring build and test failures. Start gradually with the
scripts involved in testbench, more files later.
Follow-up to to bug #2752 "host-testbench.sh ignores errors" and commit
ab421466af ("CI: Travis: enable host testbnech again") and
ab421466aff826~1
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This pipeline macro defined macros for IIR so the clear of
FIR related macros is not correct.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The FIR bytes control size is 4096 bytes. This topology contained the
old 304 bytes size that was the limit for single IPC configuration.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Some of the pipelines but not all contained for IIR the old 304
bytes (single IPC max size) control size. It can be set to 1024
bytes for all IIR instances.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The information about setting EQ to bypass configuration is not an
error. The comp_cl_info() is a suitable trace type to use for it.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds the missing multiple parts configuration data IPC to
iir_cmd_set_data() and iir_cmd_get_data(). Without this this support
an attempt by kernel driver to send such IPC to a processing component
leaves the EQ to failed state.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Platform tracepoints are used in IDC power_up check so it needs
to be included even with traces disabled
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
It make code dealing with entries simpler, and allow to create
UUID entries dictionary with constant access time to any entry.
As long as struct definition is fixed, then can passed as pointer
with correct type to function call, instead of void pointer.
UUID entries aren't storred in flash memory, so entry size is not
important.
Explicit add zero at the end of entity_name to trigger string overflow
warning for shortest incorrect string length.
Resolve problem with cutted UUID info in logger output.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
The SOF supported formats options are configurable via Kconfig. The
build can fail to this error when the data formats are changed from
default:
sof/src/audio/src/src.c: In function 'src_copy_s32':
sof/src/audio/src/src.c:431:2: error: implicit declaration of function 'audio_stream_copy_s32'; did you mean 'audio_stream_copy_s16'? [-Werror=implicit-function-declaration]
audio_stream_copy_s32(source, 0, sink, 0, frames * source->channels);
^~~~~~~~~~~~~~~~~~~~~
audio_stream_copy_s16
The common same rate copy function for S16/S24/S32 formats also
simplifies the code.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add MEU_NO_SIGN cmake flag that can be used to build unsigned FW binary,
that may be later used with MEU for signing.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Since both fw.h and manifest.h are being used in the main SOF
repo, and also the standalone rimage repo, to prevent them
getting out of sync, use the ones coming from the rimage repo
instead.
Also, git submodule update is being executed when cmake is
run so there is no need to update when building rimage.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds the necessary bits to update git submodules when
cmake is run, with the option to turn this behavior off if
needed. This is in preparation to use fw.h and manifest.h
from the rimage repo to prevent having two copies of each
file in two different repos. Obviously, the files in
the submodules must exist before building the firmware,
so run git submodule update to checkout the files.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds rimage as a git submodule by running:
git submodule add https://github.com/thesofproject/rimage.git rimage
git submodule set-branch --branch master rimage
This also modifies the build script to build the tool.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Since rimage is now a standalone tool in a separate repo,
remove the rimage directory in preparation to import it
back as a submodule.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
We don't need history for building qemu or sof. Using shallow clones
will save time spent on downloading unnecessary history which is
significant for bigger repos like qemu.
Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com>
Looks the usuage of M/N divider with 12.288MHz bclk leading to noise,
change to use s24_le and 9.6MHz bclk, playback works fine on max98373
with it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add 2 tlv kontrols to smart_amp playback pipeline, the one matched with
struct sof_smart_amp_config is for the component configuration, the
other one is for algorithm blob configuration.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add initial smart amplifier support to tgl + maxim98373 amplifier.
Todo: to refine the demux channel map to get the correct feedback and
capture them to user space.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This allows PCM card to support compressed data API. In order
to do this we need to set "compress" property to true. Thus,
the .conf topology file should look like this:
SectionPCM {
/* ... */
compress "true"
}
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This patch adds the missing error codes check to avoid the parsing
to continue after a possible file I/O fail.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch replaces the manually set error codes with errno that
is set to exact fail reason like ENOMEM etc. by these functions. The
missing return code checks for fseek() calls are added.
Include of header errno.h is added to topology.c. The order of
include statements is fixed.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
In some topologies there is a component tokens array after buffer
tokens array for buffer widget. Since the earlier code version was
able to handle only single array and did not skip the remaining it
caused the remaining topology parsing to go out of sync and fail.
This patch changes the vendor array parsing to be similar as for PCM
widget that already had capability to handle several arrays. The core
id is retrieved if present in topology and passed via IPC.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds the token into header file tokens.h. It is used for
topology parsing for testbench and fuzzer. The same token has been
already defined in topology m4 macros.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The main change in this patch is to allow process_test to use
frequency dependent masks for frequency response and THD+N. It
allows tests with pass/fail criteria for components like EQs
and DCblock. SRC test not really changed but the small changes
in passing test controls are updated there as well.
In EQs tests the process test can decode the theoretical response
from setup blob. The measured frequency response is compared to
that.
The test print and plot output look is improved for nicer reports.
The runtime plots opening is disabled for batch mode operation
but the plots now appear to test output directory in png format.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The criteria of overall -3 dB RMS attenuation was too tight
for sample EQ responses to pass. With new -6 dB criteria the
used EQ loudness responses do not trigger error.
The chirp test is only a quick generic component health check so this
is not critical. The other AES17 tests will catch minor characteristic
changes.
The other changes are cosmetic and improve result print and plot
output look.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>