This patch removes from copy() function the code that was converted
into a generic utility function into component library. The simple
processing components with single source and sink buffers can use
the function to find out the number of frames to process, get
pointers for their source and sink buffers, and amount of bytes
consumed and produced for buffer update after the processing is
done.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Temporary changes xtensa hal state definitions for
gcc builds. Change will be reverted after update
of apollolake overlay.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
We need reset kpb->state to KPB_STATE_BUFFERING, and unregister notifier
in .reset() as we will register it again at next .prepare(), otherwise,
the consequent record won't work.
Add definition of notifier_unregister() into cmoka fix the link error to
avoid breaking UT at the same time.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Testbench is user-space application that should just consume
SOF library, so it should be moved out from fw buildsystem.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Library folder is just set of some mock platform definitions, so it
should be handled as another (abstract) platform.
It's better to have all platform definitions in platform folder
instead of adding some artifical platform to the src root.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
On Icelake we have 6 SSP ports, but we only enable
registers for 3 of them. Let's enable all.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Add topology file sof-glk-da7219-kwd.m4 which is used for Keyword
Detection feature integrated on GLK platform.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Kconfig has an entry for COMP_KPB but it isn't used for building. Add
a suitable clause to CMakeLists.txt.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
We are calling comp_get_drvdata() in test_keyword_set_default_config(),
so we should move comp_set_drvdata() before that in test_keyword_new(),
to avoid getting wrong private pointer for the component.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Fixes DW-DMA interrupt handling for pipelines working
on different DSP cores. We are now keeping the track
of registered DMA channels per core and handling them
per core basis.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Sets separate system runtime heap structures for every slave core.
Previously it only allocated one structure per all the slave cores,
which caused wrong allocations.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Timer will be reset when DSP is powered down. So the time stamp of trace
log will be reset after resume. Get time stamp from kernel and adding it
as a shift of time stamp can avoid the reset.
Signed-off-by: Bard liao <yung-chuan.liao@linux.intel.com>
This change gathers some of the information inside of the DAI drivers,
which was previously inferred using external logic.
Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
The system agent should always run at high priority to ensure other lower
priority tasks run as expected. SA work must be as short as possible
since we dont want to impact other high priority work.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The HiFi3 version of volume code got a mistake that the
rounding shift instruction can bring the value above 24 bit
range. Therefore the data needs to be shifted once again to
32 bit MSB side to saturate and then back to LSB to
have properly saturated S24_4LE (and S32_LE samples).
The patch renames the shift_right variable because it is used
now for both right and left shifts.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
ipc_buffer member in the new buffer is already populated
when the contents of the "desc" argument are copied
into it. So remove the redundant assignment to ipc_buffer
after the memcpy.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
To help catching overflows this patch exercises the volume
component test with larger absolute value test data, both
positive and negative numbers. A test generator is added for
S24_4LE format.
Since the reference float arithmetic sometimes calculates the
sample with less accuracy than fixed point firmware code the
error is asserted when delta of reference and firmware is larger
than one LSB. The float code is off by one sometimes with negative
samples. To not complicate the test code this simple relaxation is
proposed.
The table of test inputs is commented with numbers to help to quickly
find a failing test case function if such happens from printed output
from cmocka test run.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
No abi bump is needed, as driver already run with this header for weeks,
here it is only to fix the gap b/w FW and driver.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
For selector and kpb, we have switched to use byte kcontrols, so no ipc
structures needed to align b/w FW and driver, here remove them to align
with driver side.
The sof_ipc_process_type enum is not needed, remove it also.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
CHT & BYT have limited amount of IRAM so are sensitive to selection of
built in audio components. Disable KBP by default, but this could be
enabled if other components were disabled.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>