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>
Using simple memcpy function in arch_memcpy_s() since
preemption of __vec_memcpy() causes wrong memory reading.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
This patch adds for HiFi3 optimized FIR version capability to
process variable number of frames per every copy. The code is
also enhanced to process as much as possible of data with even
number frames FIR version that is more efficient.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
DMIC16k only supports 16KHz sample rate. It should use
pipe-volume-capture-16khz.m4 to create the pipe which supports
the 16KHz recording.
Signed-off-by: Libin Yang <libin.yang@intel.com>
DMIC16k only supports 16000Hz sample rate. pipe-volume-capture.m4
only supports 48000Hz. Add pipe-volume-capture-16khz.m4 to support 16KHz
record.
Signed-off-by: Libin Yang <libin.yang@intel.com>
Fixes destination size used by mailbox write functions.
Subtraction of the base address shouldn't be part
of this size calculation.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fixes destination size of mailbox_hostbox_read() call
in mailbox_validate(). We're starting from some non-zero
offset, so the size is smaller than SOF_IPC_MSG_MAX_SIZE.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Some xtensa configurations will ahve less than 3 timers so use core-isa.h
to select correct amount of timers.
Signed-off-by: John Gunn <jgunn0262@gmail.com>
Sixteen bit samples are kept in sixteen bit containers therefore
we don't need to allocate 32 bits containers.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
If logger reads an end-of-file from trace node, reopen the file
to ensure trace read position is in sync between host and DSP.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
If pipeline is configured to be scheduled on some other source
than DMA interrupt, we should reload linked list item after
DAI buffer processing.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Clears block/transfer interrupts after stopping the
DMA channel. It prevents sudden interrupt trigger
after enabling different DMA channel than the one
previously stopped.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fixes slave cores initialization by moving interrupt
init before any interrupt registration.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Once FW initiated xrun happens, the pipeline will be stopped(via
pipeline_xrun()) first internally, here add logic to ignore any extra
trigger_stop from host, and do prepare for xrun recovery before we
can really trigger it start.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>