Name and UUID value of component should be aligned with their address.
Output before change:
ADDRESS UUID NAME
0x1FFFA000 <8b9d100c-6d78-418f-90a3-e0e805d0852b> host
0x1FFFA01C <8b9d100c-6d78-418f-90a3-e0e805d0852b> host
0x1FFFA03C <8b9d100c-6d78-418f-90a3-e0e805d0852b> host
and after:
ADDRESS UUID NAME
0x1FFFA000 <8b9d100c-6d78-418f-90a3-e0e805d0852b> host
0x1FFFA01C <f11818eb-e92e-4082-82a3-dc54c604ebb3> pipe-task
0x1FFFA03C <34dc0385-fc2f-4f7f-82d2-6cee444533e0> volume-task
0x1FFFA05C <b77e677e-5ff4-4188-af14-fba8bdbf8682> volume
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This patch replaces the default 0 dB gain with +20 dB gain in 16 kHz
DMIC pipelines in hda-generic based topologies. It is done to have
same capture sensitivity in both 16 kHz and 48 kHz capture pipelines.
The impacted topologies are:
sof-hda-generic-2ch.tplg
sof-hda-generic-4ch.tplg
sof-hda-generic-eq-2ch.tplg
sof-hda-generic-eq-4ch.tplg
sof-hda-generic-idisp-2ch.tplg
sof-hda-generic-idisp-4ch.tplg
Note: The 0 dB high-pass version is preferred after all the needed
development is available.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds script src_small_int32.m to generate the intermediate
size SRC coefficients set. The export functions are updated for
short BSD copyright and to output licence text and needed header
files inclusions.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Zero functional change and 100% identical outputs.
Also add some comments.
Interestingly, -P$(nproc) is a tiny bit faster than -P0 on my
system. Thrashing?
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
As seen in PR #2954, no one ever notices m4 warnings. As PR #2954 will
remove sof-tgl-rt711-i2s-rt1308-nohdmi.conf and the only m4 warning
currently, this is a great opportunity to upgrade m4 warnings to
errors.
Note neither Travis nor github have the concept of a "warning", they can
only report success or failure.
This fix can be considered part of the "green failures" family.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
No one seems to be using this topology or they would have seen the
error below that DMICs are required on this platform.
[ 8%] Generating sof-tgl-rt711-i2s-rt1308-nohdmi.conf
m4:tools/topology/sof/pipe-volume-capture-16khz.m4:54: bad expression
in eval (bad input): 2 * 2 * CHANNELS * 16
m4:tools/topology/sof/pipe-volume-capture-16khz.m4:57: bad expression
in eval (bad input): 2 * 2 * CHANNELS * 16
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This patch replaces the default EQ 0 dB gain with +20 dB gain in
DMIC pipelines in hda-generic based topologies. It fixes the issues with
too silent capture level.
The gain was changed to 0 dB in a recent change to let UCM set it.
However this change remains needed for a while since the UCM initial gain
patch and remaining development of ALSA/ASoC 4ch capture for devices with
more than two microphones will take longer time to become available.
The impacted topologies are:
sof-hda-generic-2ch.tplg
sof-hda-generic-4ch.tplg
sof-hda-generic-eq-2ch.tplg
sof-hda-generic-eq-4ch.tplg
sof-hda-generic-idisp-2ch.tplg
sof-hda-generic-idisp-4ch.tplg
Note: The 0 dB high-pass version is preferred after all the needed
development is available.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
The function getpid() is only available in Octave. Instead use
a random integer number as identification to avoid conflict with
possible several simultaneous simulations with temporary files.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The case where blob decoding is requested for single frequency,
e.g. 1 kHz the magnitude and group delay vectors did not have
size of one frequency. This patch fixes the issue.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch changes the response for both EQ types into loudness
shape (bass boost, mid attenuate, high boost) that is a useful
in validating EQs functionality. The previous flat response does
not exercise thoroughly the processing functions.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
All trace entries are identified by uuids only now.
Previous TRACE_CLASS_ identification removed completely.
UUIDs are passed to the tracing subsystem inside a trace
context. Each trace context defines run-time log level.
The level is initialized to LOG_LEVEL_INFO (this may be
change per instance is needed) and may be re-configured
at run-time.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
With define for W_PCM_CAPTURE only need 5 arguments
W_PCM_CAPTURE(pcm, stream, periods_sink, periods_source, core)
Fix the wrong parameter in pipe-kfbm-capture.m4
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This tool must be able to read extended manifest content
and move to next manifest in proper way.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
in bxt.m4 and sof-hda-generic.m4, they both define the
PIPE_VOLUME_PLAYBACK, this will cause wrong tplg result.
Refine the them in sof-hda-generic.m4 to PIPE_HEADSET_PLAYBACK
to fix the issue.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add an example platform usage for smart amplifier feature, where it will
use nocodec SSP LBM(Looback Mode) for data verification.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This is the unified implementation for smart amplifier feature,
including both playback and capture pipelines.
The upper layer platform topology should include this unified
implementation and define specific macros to use it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add the playback pipeline for smart amplifier use case, it will be used
with the reference capture pipeline together in the upper layer .m4
file.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This is for smart amplifier use case only, to get the amplifier
reference samples captured to the host user space.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add the initial version of smart_amp component for smart amplifier
widget, which will be use in the smart amplifier use case.
Todo: add blob kcontrol for it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add macro DEC2HEX marcro to convert 2-digit decimal number to
hexadecimal one that prefixed with '0x'.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>