To indicate the SoundWire amp need to use 24 bit format.
I use a flag instead of a macro like $SDW_AMP_FMT to set valid_bit_depth
because bit_depth and valid_bit_depth may not be the same.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
This patch adds DTS_CODEC for IPC4 Intel platform builds.
Since EQ IIR + DTS is the combination we use to support customer, adding
EQ IIR here to ensure it's enabled.
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
Add more error logs to identify potential problem in set_configuration()
Co-developed-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
md->state is set in IPC3, not in IPC4.
set_configuration() would fail on MTL because md->state is not set.
Add macro CONFIG_IPC_MAJOR_3 to avoid this problem.
Co-developed-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
It would build fail without LOG_MODULE_REGISTER.
Co-developed-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
If sink is full and so no bytes were copied, reload DMA anyway as
otherwise xrun may happen if reload is skipped for a long time.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
sink/src API must grow to provide similar functionality
to comp_buffers.
This commit adds 2 helpers for IPC4 format set
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
This commit is needed because the current Linux kernel
version used in our internal testing doesn't
contain the patches that enable MU2's power.
As such, to avoid failures in the internal tests,
disable the CCM and LPUART2 IPs.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Bump up Zephyr revision to contain the i.MX8QM and
i.MX8QXP patches that introduce support for the
serial interface.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Before the fix the comp->core in ipc_comp_new() is garbage
and the check for maximum core count fails. The pointer to
struct asrc should be passed instead of address of pointer.
Fixes: d9f9340e1a
("tplg_parser: split out testbench logic and partition
features per file.")
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The multi-core topology was created since multi-core feature had a few
bugs at that time so it was for validation test. Now this feature works
fine so merge it into nocodec topology then it will be tested by
github CI. And we don't need to maintain a dedicated multi-core topology.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Current implementation only checks if a channel is used with
current interrupt. But that channel might have been registered
with another interrupt earlier.
So, we need a way to skip channels already used. For this, we iterate
over all registered interrupts and check existing registered channels.
This fixes scenarios where running:
$ arecord -Dhw:0,0 -f S32 -c 2 -r 48000 -t raw |
aplay -Dhw:0,0 -f S32_LE -c 2 -r 48000
will result in an I/O error.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
When a chain DMA stream is the only one running, stopping it
currently takes 100ms. The reason is that the chain DMA driver is
trying to stop the task directly from the IPC context instead of
letting the task exit on its next scheduling event. The IPC thread is
indeed trying to wait on a semaphore for the task to exit, but that
doesn't work either, because zephyr_domain_unregister() terminates
the thread before it signals the semaphore. To fix this we swap the
order and signal the semaphore before terminating the thread.
Link: https://github.com/thesofproject/sof/issues/8445
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
At the beginning of the .text section there must be a structure containing
information about the version of the api used by the library. It's absence
will cause sof to interpret a random literal as a version and incorrectly
load a library.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The .module section contains the module manifest read by rimage. It should
not be included in the final loadable module image. Flags of this section
are now modified using objcopy to ignore it by rimage.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The .data and .rodata sections are placed by rimage into one segment of
a resulting firmware image. So aligning the .rodata section to the page
boundary is just a waste of memory.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Loadable libraries do not need to have a .bss section. After this change,
its absence will be ignored when generating a image of the loadable module.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Changed linker options to enable linking with libgcc and libc. This change
is required to allow use compiler builtins functions (like __divdi3) and
dynamic memory allocation functions.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
This commit adds a necessary symbols in the linker script which allows use
a memory allocation functions from libc (malloc, calloc, etc.) in loadable
modules.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
As rimage was moved to sof repository it is necessary to update path to
rimage include directory in lmdk build system.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Changed the compiler used to build loadable modules to clang. It has been
used for a long time to build sof. The latest xtensa toolchain no longer
has xcc compiler.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
It was confirmed that the IPC4 version of Google RTC AEC
is not using the bytes control, so it can be safely removed
from topology.
This fixes topologies build error:
ALSA lib conf.c:838:(get_char_skip_comments)
Cannot access file include/components/google-rtc-aec/rtc-aec-blob.conf
Fixes: 64fcebbd64
("Tools: Topology2: Add nocodec topology to test google-rtc-aec")
Fixes: #8357
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The reference audio format should be extracted from the base config
extension and set the buffer format based on the queue ID. The current
code works only by accident when the input and reference capture use the
same format.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This removes a lot of warning noise and may help spot other warnings
like `ALSA lib ops.c:48:(lookup_ops) wrong kcontrol ops value string ''`
and others.
Now that commit 1b1ec6c492 ("topology/cmake: skip all topologies when
alsatplg < 1.2.5") enforces alsatplg version >= 1.2.5, it is finally safe
to do this!
I compared the generated .tplg files before/after this commit and
they're bit for bit identical. Tested with alsatplg v2.6.1 from
Ubuntu 22.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This removes a lot of warning noise and may help spot other warnings
like `ALSA lib ops.c:48:(lookup_ops) wrong kcontrol ops value string ''`
and others.
Now that commit 1b1ec6c492 ("topology/cmake: skip all topologies when
alsatplg < 1.2.5") enforces alsatplg version >= 1.2.5, it is finally safe
to do this!
I compared the generated .tplg files before/after this commit and
they're bit for bit identical. Tested with both alsatplg v2.6.1 from
Ubuntu 22 and version 1.2.9 from the SOF docker container.
Note this is a much smaller commit than the reverted
commit f50b6fe0ad ("topologies: switch all .m4 files to codec_provider
and codec_consumer") because most topologies v1 have been removed from
the main branch. Most topologies v1 are now only in stable-v2.2 where
the warning spam is still a problem :-(
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Register pm_state_notifier to set ready_flag for secondary core when it
is powered up for second time after first fw boot. We can remove
CONFIG_ADSP_IMR_CONTEXT_SAVE check for cavs platform for this feature.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Adding all source files in a single, giant zephyr/CMakeLists.txt is
inconvenient and does not scale.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Adding all source files in a single, giant zephyr/CMakeLists.txt is
inconvenient and does not scale.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The build of testbench fails at /* fallthrough */ with xt-clang
build for MTL since warnings are treated in tesbench build as
errors. The re-arrange of default and 'h' fixes also return
of -EINVAL in default case for unknown option.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Build for MTL needs other compiler xt-clang, so the COMPILER is
set by default to xt-xcc and changed for MTL in set_xtensa_params.sh
where also core and tools version is defined.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Set correct TDM slot width to 32 bits.
The error has been discovered after commit
0ba64e98ec ("SAI: use topology params").
We start using the tdm_slot_width from topology,
rather than hardcoded in code.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
For delete pipeline operation this patch adds deletion of
modules added to given pipeline but executed on different
core. This case could appear only for DP processing modules.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
New IDC request idc_comp_free() is required to delete
component located on different core than the pipline to which
the module belongs.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
By default ipc_get_comp_by_ppl_id() routine omits component
from core different that the one where pipeline is working.
However with introduction of DP modules such situation can happen.
In some flows we need to find modules that belongs to given pipeline
but are scheduled on different core. This modifications will allow to
select when include such modules in the search.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
RTC_AEC module is using DP and rest of pipeline is LL and both can
run on different cores.
For the purpose to assign DP module individually on secondary core,
now add a new macro GOOGLE_AEC_DP_CORE_ID.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>