This patch adds a single 4 kB space for allocation. The 2 kB space
is added as well but configured to zero available. The ASRC typically
needs 2 - 4 kBytes of dynamically allocated storage.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds print of text ASRC into sof-logger for ASRC
originated traces instead of unknown.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds the new ASRC feature to SOF. It supports both
optimized HiFi3 build with xt-xcc and generic C version for
gcc build. The generic C version is currently feasible only
for testbench run due lack of sufficient speed for realtime but
will be optimized later.
The feature is disabled by default for BYT, CHT, BDW, and HSW
platforms to save RAM.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds the FIR filter coefficients and filter parameters
header files for the ASRC.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The BYT-CR package only exposes SSP0 and SSP1, with SSP0 typically
used instead of SSP2 for the audio codec connection. Since it's proven
nearly impossible to patch the topology on the fly in the kernel,
let's brute-force generate topologies for all known BYT-CR platforms
using macros for the SSP number. The BE stream name remains constant
at SSP2-Codec since it's not modified by the kernel.
While we are at it, do the same for CHT platforms.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The previous version changes behavior on the BYT platform.
Fixes: ee9283c159 ("sof: lib: notifier: Do not break build on platforms
without CLK_SSP").
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Reimplements buffer_copy functions to use memcpy_s instead of
fragment API. Based on my tests it gives 20% better performance
than previous implementation. Note that memcpy_s function
uses vec_memcpy when built using XCC.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes volume component from KWD pipeline. It was only required to perform
pcm conversion, but since DAI is now capable of doing that, usage of
volume is deprecated.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes unused code from dai_config. Frame bytes are always
calculated from scratch in dai_params, so no point in keeping
this dead code.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes processing flow and moves pcm frame format conversion
from volume to dai component. This way we'll no longer need to
artificially add volume into the pipelines, where it's not really
needed but frame format change is e.g. KPD topology. Dai is the perfect
place for conversion, since it's format is pretty much predefined and
comes from topology. Rest of the pipeline is configured from the host.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Implements functions for sample bytes and frame bytes calculations
based on provided frame format and channels.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
HiFi3 implementation of PCM converter is optimized to
process either two samples at once for 32 bit data or
four samples for 16 bit data.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Implements generic version of PCM converter library component.
This module provides static functions, which allows to copy
buffer data with frame format conversion.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes signatures of copy DMA buffer functions to differentiate
between source and sink bytes. Process function from now on will
work on provided samples to handle different formats on input and output.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Update xcc build config for all existing platforms.
xcc build with byt, cht and sue need special defconfig.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
xcc build will have bigger TEXT.
Need to keep the total block size unchange as the block need to be
4k align.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
SAI hardware needs on capture side to have SYNC mode set as
'Synchronous with receiver' in order to work properly
Set this field on Capture register RCR2, transmitter side
must be configured in asynchrounous mode
Signed-off-by: Guido Roncarolo <guido.roncarolo@nxp.com>
Signed-off-by: Jerome Laclavere <jerome.laclavere@nxp.com>
Media pipe is missing the scheduling component, so move it after the dai
definition and add the scheduling component.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Compiler options has to be changed in order to compute
the literal block address correctly.
Some literals must be declared explicitly and loaded
indirectly to make sure that compiler does not optimize
the out to another shared region.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
The i.MX8 platform doesn't have an SSP clock. We had a fake define for
this platform due to prior inflexibility in SOF itself. Now that said
lack of flexibility is gone, this patch removes all such references.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Some platforms do not have a SSP clock, so a dummy define for CLK_SSP
and related macros shouldn't be required to exist in order for the
firmware to build.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
It didn't work correctly if multiple cores write to "sw regs"
allocated on the same cache line.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Enables DW-DMA channel linear link position counter based
on the selected peripheral connection. It can be used
to retrieve timestamping information on platforms supporting it.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Cleanups definitions of GPDMA shim registers for all cAVS platforms
and extends them by adding support for channel linear link position
control register.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
After disabling tracing code have compilation error because of
implicit declaration of platform_trace_point function.
After calling through trace_point it is replaced with empty
define after disabling trace.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Xtensa ABI requires the stack to always be aligned to a multiple of 16
bytes. This commit aligns the stacks used for interrupt handling.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>