UUID key is too detailed information for logging function to allow
easy functionality extension in future. Trace context structure is
designed to work directly with logging function, so there is no
reason to unpack values from this struct in trace macro-functions
and pass them as separate arguments to trace_log().
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Section of this section should be aligned to EXT_MAN_ALIGN,
proper way of doing this with ALIGN() function inside linker
script didn't work, because of removing READONLY attribute
for this segment, what leads to error in rimage.
This solution introduce changes only for platforms, where problem
exists, so generic tools like rimage are kept clean of such a hacks.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Such an approach is more logical, user add flag to dump information
and specify what to dump just after it. Using separate argument
with file path and flag to dump is less natural. So after change
`./sof-logger -l file.ldc -d`
will be replaced with
`./sof-logger -d file.ldc`
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Before this patch output message was misaligned and one flag
description start from small letter:
sof-logger: -L Hide log location in source code
sof-logger: -f precision set timestamp precision
sof-logger: -d Dump ldc information
After change, it's fixed:
sof-logger: -L Hide log location in source code
sof-logger: -f precision Set timestamp precision
sof-logger: -d Dump ldc information
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This patch fixes the memcpy_s() assert related panic. The destination
size is computed incorrectly and the bug can trigger with a suitable
size large blob. The blob size after first chunk is no more equals
cdata->num_elems + cdata->elems_remaining. Since the size is available
in cd->config_new->size it can be used for successive chunks to
compute copy destination size.
The traces output is also improved to better show the chunks reception
and total size of the configuration blob.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Each trace function should refer to trace context, where are
stored information like uuid and runtime editable logs level,
to unify trace API and allow trace filtering in future.
Remove buf_cl_* functions, as no longer supported.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Such a change is provoked by getting close to maximal line length
in line with getopt line call. Moving format string to separate
variable is more logical solution than splitting function arguments
on separate lines.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Bootloader is something cAVS specific and uses many platform specific
definitions and procedures. With new platform family in the future
it will be hard to maintain it in the architecture directory.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Checking whether PLATFORM_MASTER_CORE_ID is zero is unnecessary.
We can compare it directly no matter what is the value.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Uses CONFIG_MEM_WND definition instead of CONFIG_SUECREEK to
decide whether to configure memory window or not.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Uses get_prid macro in boot_entry instead of classic rsr.prid.
This way it won't fail for cores with XCHAL_HAVE_PRID = 0.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
On i.MX8M watermark can be up to 128 and we must adjust
the T/RFW mask register in order for values greater than 64 to be
correctly set.
Now capture works fine!
Fixes: 29414aa25e ("platform: imx8m: Fix FIFO depth for i.MX8M")
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Used method need floating point unit in DSP core.
Vectorized conversion functions are inaccessible for used cores.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Respect fixed point data format as Q1.X instead of QX.
After change values in float will be in range <-1;1)
what will correspnd to fixed point data MAX/MIN value
in Q1.X format.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Implement set of functions to convert any data type with float,
in both directions, in common tool - pcm_converter.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
It is easier to implement converter working on linear memory space
instead on circular. Moreover such a solution should be more
effective in comparison with checking for buffer wrap after each sample.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Such a function will be needed to calculate chunk size during processing
data from circular buffers by functions working on linear memory
regions.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Add core function responsible for conversion between
floating point and fixed point values in generic version
of converter. It is done manually to be sure of IEEE 754-binary32
value format for any used platform and floating point unit
settings.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
It is made to make easy adding new supported type.
After changes there is easy to see schema how to add
new data format - start with through converter for new type,
then add conversion in both ways for each previous data type
in same order as they were added.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This flag should be in sof_options as it is needed for
supporting standard C features.
Thanks to this symbols needed for supporting features
guaranteed by C standard, but not directly supported by platform
ASM will be available in static libraries, without explicitly
specifying -lgcc dependency.
Most of people don't know that they may need this dependency to
support f.e. for float to int conversion on Xtensa.
They expect it to work because it's part of basic C syntax and
they will complain, that they have undefined references to __* symbols.
This patch helps preventing problems like these.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
This will help people reach #sof IRC channel easier.
Clicking on the badge will allow people to join IRC
chat via irccloud webclient or prompt for their local
IRC client.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.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 a new small 32 bits SRC coefficients set. The conversions
quality is the same as in earlier 32 bit set but the support for high and
less common sample rates is removed. It saves RAM vs. the full set. By
default HiFi EP platforms use tiny set, APL uses small set, and other
platforms use std.
To avoid confusion the Kconfig option for 16 bit coefficients is renamed
to tiny. The kconfig option for 32 bit coefficients is renamed to std.
This gives three different choices for SRC coefficients size and
conversion quality.
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>
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>