Changes dai_init function's argument list to take
sof context. It will be needed to add dai list pointer
into sof context.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds notify_data to sof main context. Also implements
getter to easily retrieve the pointer through one point
of access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Passes sof context pointer to slave_core_init.
This will allow to pass context even further.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds pm runtime data to sof main context. Also implements
getter to easily retrieve the data through one point of access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes pm_runtime_init function's argument list to take
sof context. It will be needed to add pm runtime data pointer
into sof context.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds memory map to sof main context. Also implements
getter to easily retrieve it through one point of access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes platform_init_memmap function's argument list to take
sof context. It will be needed to add memory map pointer into
sof context.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes dma_trace_data pointer from ipc structure.
We shall now use new static getter for DMA traces.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Uses dma_trace_data pointer from sof context instead
of using the static one. In order to do this we need
additional getter.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds both timer and DMA scheduling domains to sof main context.
Also implements getters for these domains to easily retrieve them
through one point of access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes accesses across the code to use platform_timer saved
in sof context instead of using externed global variable.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Disabling unused cores looks like platform specific
optimization. Let's move it to cAVS platforms specific code.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Passess sof context as an argument to the platform_clock_init
function. This way we will be able to store clocks pointer
in the main context.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds pointer to generic trace data to sof main context.
Also changes access to the trace data to go only through
sof context.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Aligns sof structure to cache line size. It is needed
in order to assure that no data will be randomly overwritten
by cache eviction with multicore access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Running on 120MHz Low Power Ring Oscillator enables more
aggressive power saving. Therefore this should be a default
options for all Cannonlake configurations that may run
on a single dsp core and does not need more than 120 MCPS.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Since xcc is the default toolchain for xtensa architecture,
the defconfigs should be customized for xcc.
gcc versions are saved for CI builds.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This patch takes care of host notification at the time
key phrase is detected. In essence we want to notify
host ASAP to let it prepare itself for
incoming history data. This enables host to:
1. Wake up (in case it was in d0ix or other
low power state at the time detection happened
2. Prepare itself for incoming key phrase
data
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch display state changes in trace log as hexadecimal
numbers. Therefore KPB state changes are easy to follow.
As an example "state log 65656567" shows that KPB has been
changing its state from 6 (draining) to 5 (buffering) and
eventually got reset request (state 7).
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
The burst length of GP-DMA should align to DMAT setting
in Audio Link Hub, or XRUN will happen. We don't change
DMAT setting since it is also used by cAVS FW.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This patch fixes audio corruption problem by removing odd and single
frame or sample processing capability. The Xtensa optimized filter
core depends on 64 bit loads from the filter internal 32 bit delay
line. The two sample at time capable algorithm core needs such
data alignment and fixing single frame capability would have created
unnecessary complexity from additional pointed address based filter
core selection.
The odd frames number capable FIR version also creates double
processing load and use of two filters would cause load variation
depending on how many samples available for processing when scheduled.
This simple fix is the best option since there is no requirement for
processing one frame at time.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch increases the max. size to 4 kB. Such size allows
setting up e.g. 8ch 192 tap FIR. The multiple part configuration
IPC support has existed in the EQ component for a while and this
limit in topology has remained not updated.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Command git describe looks only for annotated tags, but we should
get any tag reachable from master, that's why --tags flag is needed.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Enabling CONFIG_DEBUG_LOCKS currently breaks the build for APL as
spin_try_lock is undefined.
src/drivers/intel/cavs/dmic.c:167:8:
error: implicit declaration of function 'spin_try_lock';
did you mean 'arch_try_lock'? [-Werror=implicit-function-declaration]
ret = spin_try_lock(dai->lock);
^~~~~~~~~~~~~
Fix that by making sure spin_try_lock gets defined regardless of
either CONFIG_DEBUG_LOCKS is enabled or not.
Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
It will be helpful during debugging components
to see correlated pipeline id.
Kept two lines over 80 charakters because of readability issues.
For same reason there is not introduced special construction to
avoid 'parameter reuse in macro' warning for trace macros.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Adds platform_rfree_prepare implementations, which are called
right before actual freeing of the buffer. For some of the platforms
there might be a need to manipulate pointer before freeing it e.g.
cAVS platforms are checking for cache aliasing.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This patch changes platform_shared_get implementation based
on the current number of supported cores. Let's not use
uncached memory for UP configuration.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds platform implementations for getting shared memory.
Uncached tranformations are not very generic, since not all
platforms have such memory region.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Moves uncache related macros and defines to cavs common header.
There is no point in duplicating those across all of the platforms.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>