More detailed uuid documentation should be useful for
component developers and others working on named fw
objects (like tasks).
Another patch to sof-docs that refers this API section
and provides detailed description on UUID use in component
overview section.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Removed the diagram duplicated in sof-docs, moved set_state
notes from sof-docs to the header to make it easier accesible
for component developers and added notes for infrastructure
developers to remember about the sof-docs updates.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Fixes buffer_lock function. We need to pass flags by pointer
to use it correctly later to restore correct interrupt level.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Add proper implementation for [e]sai_get_hw_params. This function is
required for all DAI drivers and lacks even assert checks.
Without this implementation we would have a jump to address 0, which
manifested itself as a hang on i.MX8MP (did not test the other platforms
but they are all broken).
Fixes: 55866f28 "comp: dai: implement dai_get_hw_params() function"
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Fixes loops condition in most of the PCM conversion functions.
Number of samples is unsigned, so current condition caused underflow.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>