This commit adds the definition of the SDMA controller we use for SOF,
namely SDMA2 (the other instances of SDMA are used for non-audio-related
DMA in the system). This DMAC can serve the SAI.
A way to account for channel 0 being used internally needs to be added.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
This includes interrupt number and a tweak used when probing the driver
(which must match hardware configuration).
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Some i.MX platforms use SDMA (Smart DMA) controller for DMA related
operations. This commit adds the initial functionality for SDMA.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Disable verbose build by default in build script.
It would be too annoying if we do not need to debug
with make systems.
Use -v option to enable verbose log if need.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This patch fixes the buffer to define as PIPELINE_SINK. The
upper level topologies do not use these topologies so there has
not been related errors. However test pipelines were impacted.
Also the PIPELINE_PCM defined name is made more generic. It can
be whatever and not just high-pass type.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The src_run.sh is converted into a generic component run script
that is called by new simple component specific scripts asrc_run.sh,
eqfir_run.sh, eqiir_run.sh, src_run.sh, and volume_run.sh.
Note: The testbench does not yet have fully working capture support
so the direction is not exposed yet.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds compilation with -g. Optimization -O was added to get
optimization that preserves sane debugging with gdb. This component
is not critical for speed in simulation.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds to testbench capability to run pipelines with EQ_IIR
and EQ_FIR components. The component is configured with the topology
embedded configuration blob when instantiated with new().
The load of volume component has been enhanced to parse volume tokens and
compute the min and max volume parameters.
The topology parsing and component library load has been changed to
support processing component load and extracting of control private
data. The testbench build has been changed to create libraries
for EQ components.
The testbench command line parsing has been improved to return
error for invalid library request.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
As reported by gcc.
Fixes: 0b279e06bc. This is a partial, one-line revert of that commit
that decreased the size of this array for no obvious reason.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add "UPDATE_DISCONNECTED True" property in ExternalProject_Add() so:
- Unit tests can be rebuilt without a network connection
- The code can't change from one build to the next without the developer
being aware.
Found by chance thanks to some network issue.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The pop noise is generated by invalid data in dma buffer.
Since all buffers are cleared by pipeline_comp_prepare except
dma buffer, so clear it to zero to avoid pop noise.
Signed-off-by: randerwang <rander.wang@linux.intel.com>
This patch initializes early the "next" pointer of
new memory block. This is important because if
further allocation fails (i.e due to not enough
memory available) this block will end up with missing
next pointer so every operatation on linked list of buffers
will likely fail (assuming there is no check for NULL pointer)
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This change decreases heap buffer block size from 0x180
to 0x100 bytes. This improves memory usage as often single
block of 0x180 bytes exceeds allocation needs.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch increases HEAP_BUFFER_SIZE so more advanced pipelines
can be allocated. Also HEAP_BUFFER_BLOCK_SIZE has been decreased
to allocate buffers with better granuality
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This change prevents the IPC error that happens if aplay or
speaker-test uses larger than 64 kB buffer size. The buffer
setting in PCM_CAPABILITIES() is now the same as for low latency
PCM.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch removes the spin_lock() and spin_unlock() calls
from DMIC, HDA, and SSP driver code. The removal avoids a pipeline
stall issue that has been seen to happen in ASRC capture pipelines.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds TGL topology for the DUT which has the
following audio configuration:
Max98373 speaker (I2S), ALC5682 headset codec (I2S),
DMIC, 4 HDMI devices.
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
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>