This patch updates the provided example responses as data for
sof-eqctl and in the include files for topologies. The updates into
Matlab scripts are included also. The FIR and IIR example script is
updated to contain all examples.
The patch includes also a bug fix into IPC handler where the check
against SOF_IPC_MSG_MAX_SIZE is off by one and caused it to reject
all set data commands (to the EQs).
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
As task scheduler is refined to accept adding new task while previous
task is running. This duplicated copy should be removed.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Fix some build issues with cmocka for host test bench target so that
cmocka UTs can run native on host architecture. This makes it easy for
users to update UTs when APIs change as they dont need architecture
specific version of cmocka.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
High priority IRQ handlers can potentially reschedule tasks prior to task
completion. i.e.
1. Task runs and unmasks high priority IRQ prior to completion.
2. High priority IRQ prempts task context and reschedules task (changing
task->state).
3. Initial task resumes and then completes (clobbering task->state in 2).
Make sure this flow is supported for high priority IRQ scheduling.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Added debug memory freeing with saving pattern into memory to
find dual freeing of allocated memory.
Added ifdef and changed config for Apollolake memory map since
LP memory is not yet enabled.
Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>
This patch adds 50 kHz into SRC generator script for std and tiny
profiles. The src generator script is cleaned up and the default
conversion matrix is moved into caller script for easier maintenance.
The plots appearance is improved and the generated coefficients code
look is improved to pass the git pre- and post-commit script
requirements.
The SRC test bench scripts are updated for changed locations. A SRC
playback topology is used for test bench and real device usage.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds 48 <-> 50 kHz rate conversions, removes from tiny set
24 kHz due to no ALSA support, and removes from std set the no more
needed 18.9 kHz.
The tiny coefficients are trimmed down in quality and computational
complexity to just run on APL platform as gcc compiled to allow debugging
and validation of the most complex 44.1 <-> 48 kHz conversion.
The std coefficients are trimmed to slightly lower bandwidth
20 kHz @ 44.1 kHz instead of earlier 22 kHz @ 48 kHz. This allows the
new larger set to not consume more RAM than old.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Currently the dai user only increments the DMA channel usage count on
channel start and decrements on stop. This doesn't align with the current
DMAC allocator so ensure that the DMAC allocator cannot over subscribe
a DMAC with more users than channels. i.e. DAI config will try and allocate
a channel and fail if over subscribed.
This needs to be revisisted with changes to DAI to allow over subscription.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Increase the trace buffer size on CAVS platforms to help prevent any
trace data loss. Also relax the scheduling timeout given the extra
headroom.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add debug to show heap allocation failures and display remaining heap
total free/used alongside free/used blocks of each size.
The heap status is also dumped at the end of of pipeline load and platform
boot if option is enabled.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Make sure we pass the entirety of IPC data between FW and host by
using the raw buffer for client APIs and the local copy for local
ABI safe instrospection & validation.
Make sure this works both ways and add a max_data_size argument to
comp_cmd() API in order for client API's to to overflow the return buffer.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Because of a race condition between when the DONE interrupt
is sent to the host and when the previous ipc task's
state is updated to COMPLETED, new ipc's from the host
could end up not being scheduled. This leads to ipc
time outs on the host.
In order to prevent this, this patch introduces a new task state
called PENDING which is assigned to the task when it is picked
as the next task to be run. The state is then updated to running
when the task function is executed. This way when a ipc task
comes in, a RUNNING task could get scheduled again and assigned
the PENDING state to ensure that it doesnt get missed.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
dcache_writeback is called for dma connected
buffers, however it doesn't take into account
the possible circular wrap if bytes size is
not exact multiple of frames period.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
The information is useful to see without further debugging if SRC
receives from topology a sane configuration.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes fail to load components into pipeline with new() in
host testbench. The config header size need to be valid since it is
checked by SOF now.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
By default topology is using too many capture and playback PCMs, DAIs and
pipelines for available host GW DMAC channels. Comment out some so that
DMAC channels stay within bounds. This also gives users options to
re-enable for theer given test HW.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
interrupt_register(0 allocates memory so we need to check return value
and complain if it fails.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Align ABI with kernel and make sure GDB enabled flag is fully exported
to all platforms.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
We need to new component with the whole ipc struction passed in
ipc_comp_new(), e.g. struct sof_ipc_comp_dai, but not only the struct
sof_ipc_comp, otherwise, we will fail to new components and see errors
in log such as:
dai.c:208 dai_new() error: dai_get() failed to create DAI. type:0,
index:-1106776464
Here change to pass in the whole _ipc->comp_data to fix this kind of
issues.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This patch allows ABI changes to incrementally grow certain IPC
structure and sub structures without changing MAJOR and keeping
backwards compatability.
Adds some helper IPC copier and validation macros that should be used
when handling external IPC structures. These ensure IPC changes are
handled correctly without causing errors or failures.
IPC size should be the first item in each structure to make it as easy
as possible to manage MINOR and PATCH ABI updates without unnecessary
replacement of FW or kernel.
This patch also makes size first in the IPC command header and introduces
a new header for internal IPC sub structures. The sub structure size
can be used to validate IPC and also be used to grow tail IPC command
sub structures as MINOR/PATCH ABI changes.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Topology mem capabilities and trace panics codes should be in the
correct header for their users.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The requirement for DMIC capture is to support upto 4ch
and 16-bit format. So modify the topology accordingly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
this patch follows:
ipc: Fix false positive IPC dropped messages.
On receiving an IPC IRQ the handler currently does not check the
IRQ mask. This means notification received ACKs (i.e. for trace updates)
from the host may be reported as duplicate host command IPCs.
Fix this by checking IPC IRQ mask.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Somehow those two files should only differ on SSP connections and MCLK
ID1, so it's pretty obvious no one has tested this since August...
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fix for memory leak when freeing continuous blocks.
Untill now only one block was freed since hdr->size was zeroed
at every loop pass and as it was part of loop condition loop has
been fired only once even if there were more than one blocks
to free.
Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>
Power management at platform init and during runtime was implemented
on CNL similarly to implementation on APL.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>