In manifest is information about version of API and
depending on it we load IADK or SOF module.
Flag is showing if module is loadable. According to this information
different api is being used in loading module.
Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
This is part of fw which helps loaded module in communication with adsp
Also it provides basic operations for creation of component driver
Common part for native loadable modules and iadk is put together and
remade into native API. That way system services are using generic
methods defined in native system service.
Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
Building system for iadk modules and for native sof modules has built in
information about used api. That information we use to switch between
two different methods of registering modules.
Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
MTK memif(DMA) can support different format from BE dai, so we don't
need to rely on the transformation of SOF DAI. After the patch, the
format of memif follows DAI component, so the format can be kept the
same in the pipeline and do format transformation via AFE if
necessary.
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com>
After exiting D3 state if IMR context save is enabled, IDC interrupt
must be re-enabled again for all cores. It fixes multicore CI test
issue.
431108d89e175: intel_adsp: ace: Restore IDC interrupt on D3 exit
Signed-off-by: Rander Wang <rander.wang@intel.com>
Found a oss-fuzz error I thought I'd fixed being reported again.
Turns out the fix had a typo and only fixed half the problem space.
Need to check source and sink, not source and source!
Signed-off-by: Andy Ross <andyross@google.com>
After commit 867ada28f we only allocate 1 buffer for mixer even if there
could be 2 input sources.
So, set correct number of sources for mixer.
Fixes 867ada28f ("audio: module_adapter: Allocate max number of input/output buffers")
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
To fulfill the generic layer structure for smart_amp component, one
intermediate level is added to the current Kconfig hierarchy, i.e.
COMP_SMART_AMP. The MAXIM_DSM config is moved into smart_amp/Kconfig.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
The size argument to the memcpy_s() here is under the control of
external data and can fail on garbage. That needs to be a runtime
failure, not an assertion.
Signed-off-by: Andy Ross <andyross@google.com>
Struct cascade_root & mn are used by xtos build only so remove them for
zephyr native driver. And these two items are too specific to intel
platforms. Remove these item also save memory.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Due to sof_mtl_rt1019_rt5682 machine driver without BT_OFFLAD
bit and support 3 HDMI devices, so make the BT_OFFLOAD option
and subsequentially mapping SPK_ID from 7 to 6.
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Consider the variant projects with/without bt offload feature
so include BT_OFFLOAD pipelines as an option if needed
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
It is only used in the multi-endpoint case, so use the
multi_endpoint_buffer directly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
In preparation for converting the copier to use the module interface,
split up the multi-endpoint DAI copy and the module copier copy cases.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
This will be used to separate multi-endpoint DAI copy from the module
copier copy.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Set dev private as module interface, create new copier_init
to meet module interface requirement, and change all copier_data
related code.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
drv is left over from the previous implementation when a DAI component
was created for each copier. Remove it as it isn't really used anymore.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
When PASSTHROUGH is true, the topology generation throws this error:
ALSA lib dapm.c:247:(tplg_build_routes) undefined source widget/stream
'host-copier.0.playback'
using the pcm_id 2 used for the host copier fixes the issue.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Changing argument for tlv_next from regular pointer to pointer to const
value. Function doesn't change value of passed argument.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
ipc4_tuple and sof_tlv represent the same data type. The new structure
is globally available and can be used elsewhere.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Adding a header file containing definitions of the TLV structure and
related functions.
Most of the code is a copy of the functionality added for the BaseFw
module in the 3efd78048d commit. The only difference are the names change
of the base structure, functions and field in the structure.
A new feature is a function that allows to find TLV value of the
indicated type.
Co-developed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Allocate input/output buffers based on the maximum number of
sources/sinks supported by the module. The current logic would only
allocate 1 input/output buffer if the module prepare is invoked before
all its sinks/sources are bound.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add a couple of new fields for setting the max number of sources/sinks
supported by each module. Set the max sources/sinks for all modules.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Previously, due to cycle get max is UINT32_MAX, so check
and wrap cycles based on INT32_MAX, however, unsigned int can wrap
automatically with minus, remove the check and make
perf difference calculation more simple.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
This patch builds new development topologies
sof-hda-benchmark-generic-<tgl/mtl/lnl>.tplg to evaluate performance
of a set of playback components.
The topology for PCM0P playback is
host-copier.0 --> gain.1.1 --> mixin.1.1 -->
mixout.2.1 --> aria.2.1 --> gain.2.1 --> mixin
mixout.3.1 --> dai-copier.HDA
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add test topology for muxing 2 pipelines into 1 with SSP dai and
capturing the result from loopback.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
is true
Currently, we add the 2nd sdw amp feedback unconditionally. It will lead
to an issue when aggregated apms don't support feedback function.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Use the input_audio_format/output_audio_format objects explicitly.
Also, add the 4ch audio format in the class definition as this is only
instantiated once in dmic-generic.conf and needs support for both
formats.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The pcm_dev is no more used in the code. It also causes a
problem with "error: ipc get comp" with some topologies, where
p->sched_id is missing. This fix helps testbech to parse a
topology like
pcm0p --> buf2.0 --> muxdemux --> buf1.0 --> ssp0.out
^
pcm1p --> buf3.0 -------|
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>