Use input_output_format/output_audio_format explicitly. Additionally,
this patch introduces the used of the CombineArrays feature in the
topology2 compiler to generate multiple audio format objects from the
attribute array combinations.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Setting the in bit depth for the second audio format in the
host-gateway-capture object results in resetting the channel count to 2.
The in_bit_depth is set to 32-bit by default for all audio formats in
host-gateway-capture class already.
Fixes: 7a11e27bf2 ('topology2: host-gateway-capture: Replace audio_format objects')
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch modifies script example_dblock.m to create in
addition to existing default coefficients blob with parameter
R=0.98 a set of blobs those provide (-3 dB) cut-off frequencies
20, 30, 40, 50, 100, 200 Hz for 16 kHz and 48 kHz for various
usages. Human understandable parameters for blobs helps to select
the configuration for the needed dcblock usage.
The parameter value R for given frequencies is calculated
with iterative function dcblock_rval_calculate(). A closed
form equation might be possible to derive from the transfer
function. If such is found this function can be replaced with
quicker equation -- or with more advanced faster converging
iteration.
The topology blob export functions are also modified to add
comment line for exact build command.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The first playback PCM is for AEC mic input via SSP0 LBM. The second
playback PCM is for AEC reference via SSP2 LBM. The first capture
PCM is the AEC output.
The AEC (mockup) can be run and tested with the topology like
this:
$ aplay -Dhw:0,0 mic_clip.wav &
$ aplay -Dhw:0,2 ref_clip.wav &
$ arecord -Dhw:0,0 -f dat -d 10 output.wav
With AEC mockup version output.wav is mix of microphone
and reference.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
With multi-fifo we need to enable done bit from software
as we have multiple fifos.
For this we make use of sw_done_sel configurations bits and
write proper bits into SDMA_DONE0 register.
For more information see `SDMA DONE0 Configuration
(SDMAARMx_DONE0_CONFIG)` SDMA register from i.MX8 reference manual.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
In order to enable PDM we need to use Multi-fifo support
and mcu_2_sai RAM script.
This script defines watermark level as follows:
r7 = Watermark
bit0~11: watermark level(wml*fifo_number)
bit15~12: to do-fifo number
bit16~19: fifo offset
bit27~24: sw done selector
bit28~31: # audio channels in one frame, 0: 1 channel,1: 2 channels
bit23: sw done enabled
Configuration parameters should come from DAI (PDM in our specific case)
but there is no easy way to forward such information so we just make
use of some default configuration, 4 fifos, 1 channel per fifo, sw done
enabled.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
name
rt713 and rt1713 are in different SoundWire links. So, no DAI type will
be appended to DAI link name. We should use default stream name in
the topology.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
This patch uses cavs-benchmark-hda.conf to build topologies to
test components in a simple playback and capture configuration.
host copier --> component --> DAI copier
host copier <-- component <-- DAI copier
The built topologies are
sof-hda-benchmark-dcblock16/24/32-tgl.tplg
The shell script bench_comp_generate.sh is added to conveniently
generate include files needed to build new test topologies for
component with s16/s24/s32 format.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This reverts 'commit e847c8b270 ("module_adapter: avoid module
init crash in case of ipc data invalid")'.
No data is not an invalid case for mixer, for example.
Fixes: #8265
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
With input_audio_format/output_audio_format objects in preparation to
deprecate the audio_format class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
as DP uses LL as a tick source, it starts an empty LL task
to ensure that an instance of LL is running
This applies to mostly to secondary cores, but is may happen
that there's no LL instance started on primary
This commit fixes 2 problems
- LL tick source was stated once for every DP module
- LL tick source wasn't stopped when there were no DP
modules running anymore
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
volume related config are missed to move during volume move out
from module adapter, move volume kconfig from module adapter folder
to volume folder with a specific volume kconfig file.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
previously, linear ramp is only applicable for ipc3, however,
linear is also applicable for chrome/linux with ipc4, so remove
this ipc3 restriction.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
create ipc3 and ipc4 specific source file, these files will
only be used to store specific code accordingly.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
This patch updates the Time domain fixed beamformer (TDFB)
module prepare() to set in tdfb_params() IPC4 sink and source
parameters from initialization IPC. The notifications send to
user space for sound direction of arrival is updated to work
with IPC4 ALSA notifications.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds struct sof_ipc4_notify_module_data that matches
the Linux kernel handler for notifications from firmware to ALSA
user space. The SOF_IPC4_NOTIFY_MODULE_EVENTID_ALSA_MAGIC_VAL
event_id is used to identify the notifications for ALSA controls
like switch and enum.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This commit bumps up the Zephyr revision to contain
the fix for the i.MX93 CI build failure.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add it both as a git submodule and west submodule to minimize
disruption. The current focus is on rimage and that's a dramatic enough
change; one problem at at time.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Merge full rimage.git history back into tools/rimage/ subdir of
sof.git thanks to:
git merge --allow-unrelated-histories rimage-repo/main
Also list incoming tools/rimage/tomlc99 16000 gitlink in
sof/.gitmodules to avoid breaking all git submodule commands.
This MUST be done as part of this merge commit to avoid
git submodule errors and preserve git bisectability.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
There were couple of classes that did not have their topology2 snippets
showing. Probably the essential problem was just the class definition
starting from the first line of the file. There was nothing obviously
wrong in the output of the filter, but the way the doxygen works is
sometimes hard to anticipate. Adding \struct before the definition
fixed the problem.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Doxygenify all comments that are correctly placed near the attribute's
or objects C-translation. This is not the case for comments before
Object.Base { } definition or comment before including
pipeline-common.conf, which is inlined by the topology2 filter, does
not end up in any relevant place, so its better just leave those
comments as they are. They can anyway be read from topology2 source
snippets.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>