Small clean up of shim headers is made to list registers
in the same order across Cannonlake, Icelake, Tigerlake shim headers.
Duplicating (within a header) registers are removed.
Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
The BIT() macro is used to replace explicit bit shifting in
Apollolake, Cannonlake, Icelake and Tigerlake shim headers.
Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
Changes behaviour of HDA Link overruns and underruns handling.
Let's no longer stop the stream, but just report an error.
It might happen that just after the release buffer is still
full/not yet empty after the previous run, but it shouldn't
affect the data, since stream has been paused anyway.
Also adds additional bit to better reflect hardware registers.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
On i.MX8M the register map is very different from the one on the other
currently supported i.MX8 platforms. This commit separates these
differences into platform-specific header files.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
The function irqstr_get_status_word had hardcoded bounds checks that
are correct for i.MX8/i.MX8X platforms but don't work for the new i.MX8M
platform. This commit adjusts the bounds checks so they work on all
platforms.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
HiFi3 version of PCM converter can corrupt data or go into
endless loop, when called with samples = 0. Make sure
the processing functions return immediately if that happens.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
No need for duplicated log entries by each component
implementation once uuids are there and identification
is possible at the infrastructure level.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
There are cases where the component applies constrained
settings which should be reported as warning rather than
error.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
When there is not enough time to wait for FIFO empty and we care about
data continuity - like in pause state - then SSP should be kept connected
with DMA in pause state.
Stop function has been updated to take action also on channels in
COMP_STATE_PAUSED state. After receiving COMP_TRIGGER_STOP,
component state should be set to COMP_STATE_PREPARE,
what is consistent with sof-docs.
Introduced changes have positive impact on glitches after
pause/resume sequence.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Log entry format is scanned by the logger and if %s is found,
then corresponding parameter is interpreted as address
of static uuid entry. The original address is replaced by
formatted uuid namen and value, painted in blue, before
fprintf() is called.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Log entry parameters format is compacted to reserve more
space for the text.
Max entry location length is increased to 24 characters.
Timestamp and component name/id use colors to improve
readability.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Content of static uuid section is appended to the ldc file
along with a new special header by rimage.
New ldc file part is read by the logger to decode
uuid pointers provided in traces into nice names.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
New trace entry parameter is defined: uuid of the source.
Technically, this is an address of uuid entry linked
inside a special section in elf.
Has_ids is removed from the static log entry since eventually
all entries will use uuids and -1 detection is good enough
detection for those who still do not provide ids.
Note: both changes are done in a single patch to avoid two
major dbg-abi version bumps.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Unique identification in form of Guid is much more
scalable for fw parts (components, dais, ...) then
existing ids and trace class ids.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Optional fw version verification moved to separate function
in order to modularize code of convert().
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Time unit is crucial to properly use this field so it is convenient
to have it written in comment near field declaration.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
After introducing compiler_attributes.h it is possible to make
this dependence shorter.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
New introduced macro is much shorten, have less parethesiss and
create possibility to easy change __section behavior in future
what is relevant in cross-platform source code.
Using such a macro is preferred way to define target section
in used checkpatch version.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This part of source code is frequently used in IPC packets
definitions, so it shouldn't have any platform dependence.
After change this file may be include from mentioned place
without any doubt about ipc message dependances from used
sof build configuration.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
The change allows to select at a configuration time default clock for
cavs 2.x platforms (Icelake, Jasperlake, Tigerlake) on top of already
enabled support for cavs 1.8. By default the LP clock is set (120 MHz
- platform dependent). In case of workloads that require HP clock
(400 MHz) system integrator shall select the right clock as a part of
FW configuration process.
Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
This commit adds spaces around the operator '/', fixing the checkpatch
error: "spaces preferred around that '/'".
Signed-off-by: Constantin Raducanu <raducanu.costi@gmail.com>
This commit removes the empty line after the open brace,
fixing the checkpatch error: "Blank lines aren't necessary
after an open brace '{'".
Signed-off-by: Constantin Raducanu <raducanu.costi@gmail.com>
This commit removes the unnecessaries spaces after casts, fixing
the checkpatch error: "No space is necessary after a cast".
Signed-off-by: Constantin Raducanu <raducanu.costi@gmail.com>
icl, cml whl are sharing some toplogy files. Create platform specific files
including DSP configuration, SSP setting and DMIC to simplify platform
settings.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Add noreturn attribute to decrease number of
false positives when using assert / panic.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Clang cannot compile some xtensa-specific ASM, so it
has to be ignored when running static analysis.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Add support for compiling FW with settings acceptable for clang,
in order to let it perform static analysis on the code.
Clang works mostly on ASTs made out of C code, so there is
no need to build complete signed binary for it.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Add option for building FW for clang's scan-build.
This static analyzer works out-of-the-box only for compilers
compatible with Clang. For most of embedded compilers
there will be some adjustment needed when BUILD_CLANG_SCAN
is enabled. This flag is not suitable for every build scenario,
it has to be supported for given toolchain / architecture.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Separate post-processing steps to not have fw image parts building
mixed with tools processing.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Mixer shouldn't go into COMP_STATE_PREPARE if there is at least
one source in COMP_STATE_PAUSED.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
New IP version introduces Version ID and Parameter registers
and optionally added Timestamp feature.
VERID and PARAM registers are placed at the top of registers
address space and some registers are shifted according to
the following:
Tx/Rx data registers and Tx/Rx FIFO registers keep their
addresses, all other registers are shifted by 8.
SAI Memory map is described in chapter 13.10.4.1.1 I2S Memory map
of the Reference Manual [1].
In order to make as less changes as possible we attach an offset
to each register offset to each changed register definition. The
offset is specified via CONFIG option. We now that this new SAI
version is supported only for i.MX8M.
[1]https://cache.nxp.com/secured/assets/documents/en/reference-manual/IMX8DQXPRM.pdf?__gda__=1583251106_f508ef5d5353cd8fc33150778708874b&fileExt=.pdf
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>