Reduces default EDF task's stack size for some platforms,
which have less memory and aren't used for more serious
processing.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This will create a basic pipeline with a buffer only. Note that
we don't implement a SectionGraph to connect the buffer to its
starting component, we should define it manually.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
This is basically the same as pipe-dai-playback.m4, but use SCHED_COMP
instead of N_DAI_OUT.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Merged the documentation of the component api and
infrastructure helpers.
Removed unnesessary dox groups that did not improve readability.
Completed missing dox parts.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
The current content of component.h is a mix of basic api, common
basic helpers for every component developers as well as advanced
functions and macros used by infrastructure and very specialized
components like host, dai, kpb etc.
This patch moves the advanced part to component_ext.h and keeps
only basic part in component.h to avoid overloading effects
component developers with declarations and code they do not use.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Replacing pointers that varies from build to build
with stable uuids makes analysis of traces much easier.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Msg size should use its own structure's size.
Only payload should be allocated using passed one.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This patch removes support for over 48 kHz sample rates and changes
scheduling to every 1 ms to save in buffers sizes. In pipe-pcm-media.m4
the buffers in the pipeline are reduced from 4 to 2 or 3 periods.
These changes should allow the media PCM to work in BYT platform.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Changes ring buffer to use mailbox_get_debug_base() macro.
It points to the same memory region as previously, but it's
defined for all platforms.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>