Pure comment change, no code change.
Kudos to Stephanos Ioannidis for patiently explaining this to me on
Discord.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
To prepare for XTOS deprecation and switch to Zephyr native
drivers on imx8/imx8x, remove the ability to build SOF
with XTOS on them.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
XTOS is going to be deprecated on all NXP's platforms so
replace imx8 with AMD's rmb so that the CI test can be kept.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
XTOS will be deprecated on imx8/imx8x and these platforms
will be moved to native Zephyr so remove them from the
QEMU boot test which uses SOF with XTOS.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Fix the stale instruction for install and add the steps for setting up
OpenVino/OpenCV to test the noise suppression model from the open model
zoo repository.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add the conf file for the OpenVino noise suppression module and
introduce the module in the capture path in the plugin topology when
noise suppression is enabled. ATM, only 16K capture is supported by the
model, so change the input/output rates for the host/dai modules in the
plugin capture pipeline.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Introduce a new module that performs noise suppression. The module loads
the noise suppression model using the OpenVino Runtime plugin, processes
the input samples to produce output samples with clean speech.
CUrrently, the module is hard-coded to compile the model to be run on
the CPU only and will be extended for other devices like the NPU in the
future.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Make the filename argument be a const char * to avoid the following
warning with c++ compliation:
warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This will be needed for the plugin voice PCM in preparation to add the
noise suppression module in the host pipeline.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Set the host widget correctly and use the capture specific functions
during prepare/free.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Set both ibs/obs to be based on the ALSA period_size to make sure that the
intermediate buffers are large enough.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
For now, only process widgets that don't need the basecfg extension are
supported.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
To prevent the following with C++ compilation.
error: invalid conversion from ‘uint32_t’ {aka ‘unsigned int’} to ‘sof_ipc_frame’ [-fpermissive]
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
For rballoc_allign() call when caps are not correct it is
enough to return error. k_panic() call is not required here.
Previous change exposed this issue:
https://github.com/thesofproject/sof/issues/8832,
but it is sufficient to log error and return NULL at this point.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
time_precision variable can be used as -1
Fixes commit ff9343aa4a ("logger: convert: Fix compile time error with
newer toolchain")
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
On 8ULP SAI is connected to BT which supports
only 1 channel for both playback and record.
Fixes: aaff352314 ('topology1: pipe-volume-capture.m4: Set minimum number of channels to 2')
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
When DP start, copy from DP to LL should be delayed till first
DP deadline time.
In current implementation the cycle counter is set at every
DP scheduler trigger. If DP is - for any reason - scheduled
again before its deadline passes, the counter will be set again
and copying delay time will be too long. In extreme situation
(i.e. if OBS is set to long value when IBS is short - in this case
DP will proceed a short data chunks with a long deadline), it may
lead to permanent stuck in processing.
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
In case of theoretically impossible event of LL-DP
copy failure, an error message should be issued
Message is better than assert - as stated this should
never happen, but if it happens its better to have a
glitch + message than a crash
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
The purpose of CONFIG_DMA_DW_SUSPEND_DRAIN is to empty the FIFO before
disabling the channel by draining it.
Since the peripheral is disabled before the DMA
(CONFIG_COMP_DAI_STOP_TRIGGER_ORDER_REVERSE is not selected), the DMA will
not be able to do that causing drain timeout.
The stop is used in two cases:
Stream stop:
the content of the FIFO does not matter as we stop the stream.
Pause/resume:
On pause the DMA is suspended (DW_CFGL_SUSPEND bit set)
On resume the DMA is stopped, re-configured and then started again instead
of resuming
The peripheral is started after the DMA stop and start.
Leftover audio data might cause audio glitch on resume, it is probably
better to disable the draining.
Note: if we want to have draining enabled we need to select the
CONFIG_COMP_DAI_STOP_TRIGGER_ORDER_REVERSE at the same time to force the
DMA to be stopped before the DAI.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
The correct config to use for ifdef for reversing the stop trigger order
is CONFIG_COMP_DAI_STOP_TRIGGER_ORDER_REVERSE
Fixes: a6a80ec97a ("dai-zephyr: Fix the ordering of DAI and DMA triggers")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Add a mute switch to gain widget for DMIC. Also register this switch
as MIC mute LED mixer control on Linux side.
Signed-off-by: Brent Lu <brent.lu@intel.com>
Implement function to support SOF_IPC4_SWITCH_CONTROL_PARAM_ID in
set_configuration callback. Linux side could use this switch control
to mute/unmute a gain widget.
Signed-off-by: Brent Lu <brent.lu@intel.com>
This commit changes AEC to use sink/src interface
and makes it to be a DP module
it also enables optional usage of 32bit AEC API
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
System-service modules cannot include Zephyr headers and don't use
exported symbols, they link sink_api.c and source_api.c into their
images. Disable symbol exporting for them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The topology uses passthrough pipelines for playback/capture and
supports only 48k, 2ch, 16bit format for now.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This reverts 8f6018057b ("app: enable OUTPUT_DISASSEMBLY for Zephyr
builds")
The disassembly is useful in some contexts but can't be parallelized and
takes an enormous amount of time. On my system OUTPUT_DISASSEMBLY
almost doubles the compilation time!
Quoting Zephyr commit cc5763344709:
> This on-by-default option takes the majority of "link" time. If people
> need the disassembly, they can turn it on.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Force -DCONFIG_OUTPUT_DISASSEMBLY=y when building Zephyr to make sure
the disassembly is compared between the Windows and Linux builds.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
L3_HEAP is used in library manager for library storage buffer allocation
and in D3 enter/exit flows to allocate IMR context storage buffer.
Both buffers should be aligned so use rballoc_align() routine to get
correctly aligned buffers.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
This patch implements recommended hardware flow for
Intel ACE platforms.
The L3 heap should be accessed via cached pointers
including management data.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Since the HiFi5 implementation of aria uses 32x4 load
and store instructions, so add the HiFi5 version alignment
set for aria.
Signed-off-by: Andrula Song <andrula.song@intel.com>
With common header file change merged, this patch is using the
new HIFI definition to build different volume modules based on toolchain.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
This patch adds build of hda-generic development topologies to
test ASRC component with s32/24/16 format.
Signed-off-by: Andrula Song <andrula.song@intel.com>
The interrupt.h file was never used and is empty so remove
it as an attempt to clean up the platform/imx93_a55 hierarchy.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
NXP's i.MX8 and Intel's CAVS are the only platforms using
Zephyr that also require the usage of drivers/interrupt.h. Since
for i.MX8 platforms drivers/interrupt.h is included through
xtos/rtos/interrupt.h, add a macro guard around the inclusion of
drivers/interrupt.h which will allow the other Zephyr platforms
(i.e: NXP's i.MX93 and Intel's ACE) to finally remove the SOF-specific
drivers/interrupt.h. This is desired because the platforms should only
rely on the Zephyr interrupt support instead of having to use
a hybrid between Zephyr and SOF interrupt support.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Zephyr and XTOS' rtos/interrupt.h already include
drivers/interrupt.h so there's no need to include it again
in files which make use of one of the two rtos/interrupt.h
headers. As such, this commit removes all drivers/interrupt.h
inclusions from said files.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
This saves time without affecting git describe like fetch depth does.
Also cancel fetch depth when building the firmware.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes the new mass warnings:
Node.js 16 actions are deprecated. Please update the following
actions to use Node.js 20: actions/checkout@v3. For more information
see:
https://github.blog/changelog/
2023-09-22-github-actions-transitioning-from-node-16-to-node-20/
We've used checkout v4 in other places and everything worked fine.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Since LNL soundwire uses HD-A DMA to transfer data. Add LNL specific
configuration to select HD-A DMA in case of SoundWire audio interface.
Refactor copier dai code for sndw/alh node id type.
Add support for sndw link aggregation mode for LNL platform based on
DMA config being sent during Copier Init Instance IPC.
Signed-off-by: Ievgen Ganakov <ievgen.ganakov@intel.com>