Error during conversion should be logged to stderr and to
output file by default. Such a approach will speed up debugging
process when some error with conversion occur in CI.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Content inside if statement should be indented with only one
tab more that if keyword.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Currently, after pipeline params propagation, mux/demux processing
function might not be properly set up, if current params mismatch
ones assigned with binary blob during instantiation.
Similar assignment was there originally, but was lost to the history.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
On i.MX8M we don't use SDMA which requires individual interrupts per
channel. Let dma_chan_irq and dma_chan_irq_name fallback to the
controller specific interrupt.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
On i.MX8MP the interrupt registers are mapped in the following fashion:
* Interrupts 0-31 at register 0x14
* Interrutps 32-63 at register 0x10
* Interrupts 64-95 at register 0x0C
* Interrupts 96-127 at register 0x08
* Interrupts 128-159 at register 0x04
Interrupts 0-31 map to one of the IRQ_STEER lines, 32-95 to another
and 96-159 to another. To not change the in-driver logic we falsely
shift the interrupts by 32, so 32-63 map to a line, 64-127 to another
and 128-191 to another. Now the valid interrupt numbers are shifted
from 0-160 to 32-191.
We also update REGISTERS_NUM to 6 even though one of the registers will
never be accessed due to bounds checking with RESERVED_IRQS_NUM. In fact
accessing those registers would lead to incorrect behavior.
So we use this kind of reverse mapping similar to on 8QXP/8QM except
that the reserved interrupts, rather than being reserved in hardware,
don't actually exist.
The only remaining effect to consider is that the interrupt numbers
must be shifted from what the datasheet says in order to correctly
register them.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Fixes potential exception while freeing history buffer.
Not all buffers in the linked list are always allocated.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Like other SHARED_DATA objects, this one should have limited visibility
just to pipeline compilation unit.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Our guidelines encourage pasting whole quoted string of trace messages
in one line, rather than splitting it across multiple lines, when it
exceeds the regular 80 chars per line limit.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
Thats because probe packet struct is packed and aligned to 1
which will generate a warning (error) with pointer assigning
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
In case of lack of memory to allocate control struct for newly created
buffer, pointer to that buffer was rfree'd instead of proper buffer_free
call, which would have resulted in memory leak. This patch is to address
this issue.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
Implements proper position offset retrieval in order to
update current stream position in mailbox. Previous one
was using pipeline_id in calculations, which has been
failing for bigger values. Lack of error handling has
also been a problem. This new solution uses predefined
list of available offsets and picks the first free from
the list. This way it will fail only if we exceed the
maximum number of simultaneously supported offsets.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Decreases runtime heap size on APL in order to accommodate
enabling larger number of simultaneous features.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>