remove the popping noise
Initial silence in DMIC path to remove the popping noise
during the start of DMIC.
Signed-off-by: SaiSurya Ch <saisurya.chakkaveeravenkatanaga@amd.com>
The i/dcache_invalidate_region wraps the sys_cache_* functions and is the
proper API to use for cache invalidation.
Fixes: 1dc6a2836d ("lib-manager: clean up memory allocations and cache handling.")
Reported-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
The fix for the memory leak missed the _sparse_force, causing sparse
warning.
Fixes: 11b9ce23f7 ("lib-manager: Free up memory for the library in case of a store error")
Reported-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Now that Intel cAVS2.5 has been migrated to use native Zephyr
drivers, we have no need to keep the Intel specific XTOS
drivers in the tree anymore.
Adjust board configuration files to not refer to removed
Kconfig options.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Complete migration of Intel TigerLake platform to Zephyr RTOS by
removing remaining platform definitions for XTOS for this platform.
Link: https://github.com/thesofproject/sof/issues/7248
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The IPC3 build is no longer supported for Intel cAVS2.5 target,
so move the config overlay definitions as-is to the main
board config file.
To smoothen the transition, keep an empty IPC4 overlay file
in the tree to allow developers to update build scripts.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Remove all cmake rules to build SOF for Intel cAVS2.5 hardware
using non-native drivers (i.e. use XTOS drivers from SOF tree
instead of Zephyr native drivers). This is no longer supported
nor tested, so can be removed.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Memory window management has been moved to Zephyr drivers
for this platform, so building this file on SOF side is no
longer needed.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The filters state need to be retrieved for every channel as
it is done in other s16 and s24 processing cores. The mistake
caused very distorted sound with waveform discontinuity every
copy period, e.g. 1 ms.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch contains the changes to run crossover component as
module adapter client in IPC3 and IPC4 systems. The largest change
is to use pin indices in IPC4 instead of pipeline IDs to identify
sink streams. Pipeline IDs on firmware side are temporary in IPC4.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Input Buffer Size, the amount of data required for
processing is declared by module in IPC init_instance
This IBS value is kept in module structure, however, there
may be a module that have different IBS per each input.
There's a single source structure per connection to the module,
so it looks like a good place to store IBS there
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Output Buffer Size, the amount of free space required for
processing is declared by module in IPC init_instance
This OBS value is kept in module structure, however, there
may be a module that have different OBS per each output.
There's a single sink structure per connection to the module,
so it looks like a good place to store OBS there
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Audio_stream is not making cache operations on data
buffer itself, it requires that the module to
call data invalidation/writeback
Sink/source interface works differently, it removes any
responsibility from the module providing a ready to
use pointers in cached memory
this commit adds cache operations to audio_stream
sink/src implementation
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
after enable inline build option, CI build is reporting not
initialize this structure, init it to remove the error.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
By enable/disable COMPILER_INLINE_FUNCTION_OPTION to control
add or remove -fno-inline-functions build option for sof zephyr
code.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
remove this build option for sof build cavs2.5 and ace platform
with enable COMPILER_INLINE_FUNCTION_OPTION.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
When converting #ifdef CONFIG_ADSP_IMR_CONTEXT_SAVE to if(IS_ENABLE(
CONFIG_ADSP_IMR_CONTEXT_SAVE), we should use if (!IS_ENABLE() ||
Signed-off-by: Rander Wang <rander.wang@intel.com>
Introduced var WAVES_SPK_ONLY (depend on WAVES) for specifying the
topology requested to apply Waves module on Speaker pipeline only
(not on Heaadphones).
Signed-off-by: Pin-chih Lin <johnylin@google.com>
The lib_manager_register_module() is basically a NOP if the INTEL_MODULES
is not enabled and in this case there is a compiler warning as well:
src/library_manager/lib_manager.c: In function 'lib_manager_register_module':
src/library_manager/lib_manager.c:362:26: warning: unused variable 'uid' [-Wunused-variable]
362 | struct sof_uuid *uid = (struct sof_uuid *)&mod->uuid[0];
| ^~~
Instead of playing with inline ifdefs, provide a reduced function to just
print the error for this case.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
With the rewording it is going to be easier to get idea where the error
occurred from the logs.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
It is better to have some sort of timeout handling while waiting for the
DMA transfer of the library from host.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Drop the log level to tr_dbg for printing the library_base_address and
print it only if the allocation was successful.
Allocation error will print an error.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
If lib_manager_store_data() fails to read the rest of the library we need
to free up the allocated memory.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Don't overwrite flags when mapping virtual memory and don't map
data for execution.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
HDA DMA for host to DSP transfers should be started once on the
host and then once on the DSP, it shouldn't be restarted
multiple times during transfer.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
There is no need to use local variable in the loop when checking the
progression of the DMA.
Read the DMA status right after start as the DMA might already copied the
data.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Update the memory allocation and cache handling.
Allocate comp_driver and comp_driver_info as uncached to
align with other drivers.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
No need to dynamically allocate memory for DMA block configuration,
it can be placed on stack.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The range of lib_id is only valid for loadable libraries in a range of
1 - MAX_LIBS (15)
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Parse the PCM headers and save the PCM info along with the host
component associated with the PCM.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add an option to parse and save the routes from topology so that the
IPCs can be sent at a later time.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Enables extraction and injection probes for MTL platform.
NOTE: this commit does NOT enable probe log backend.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Both extraction and injection probes require to subscribe to buffer
produce notification. Hence notification subscription logic should be
enabled for both types of probes.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Probe module subscribes to buffer produce notifications in order to
perform data extraction or injection. Hence this fix is required to
enable probe feature.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
comp_update_buffer_consume() and comp_update_buffer_produce() generate
too much log output. Usually such amount of logs results in many log
messages been dropped. It is also results in significant CPU load if
selected log backend formats log messages at runtime.
This patch adds a separate switch to enable these logs only when necessary.
Default value is 'n'.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This patch ports probe component to use zephyr native drivers.
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Memory windows is set on zephyr side, so remove it and also remove
xsram_window for memory windows to save memory since it is not used
by ipc4.
Signed-off-by: Rander Wang <rander.wang@intel.com>