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>
remove remap support from mixin process, there is no usecase
for remap for now, in future, if there is a need, we can add it back.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
The default values should be "passthrough" since the pipeline
mixout-gain-efx-dai-copier-playback.conf applies them this way:
IncludeByKey.EFX_FIR_PARAMS {
"passthrough" "include/components/eqfir/passthrough.conf"
}
And IIR similarly.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch makes similar change to pipeline as done earlier
for mixout-gain-dai-copier-playback.conf. The 24/32 bit formats
are deleted as unnecessacy. The audio format definition for
DRC is changed to similar style as for copier and gain.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds DRC component to EFX pipeline. The DRC is very
useful for speaker output to enhance loudness and reduce
speaker distortion in loud playback.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Follows after:
214f98378 ("smart amp : Do not use DYNAMIC topology")
which makes DYNAMIC undefined during smart amp tplg pipeline pcm/dai config due
to the use of volatile Kcontrols.
This commit applies the same on sof-eq-iir-dts-codec-smart-amplifier.m4 which
is used for (DTS + smart amp) projects.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Fix multicore test issue on cavs platforms which don't support context
save now, so need to init cpu when the core boot up.
Signed-off-by: Rander Wang <rander.wang@intel.com>
With Zephyr commit cc5763344709 ("Build system: disable
`OUTPUT_DISASSEMBLY` by default"), generation of zephyr.lst
is disabled by default.
Enable disassembly generation in SOF configuration as it is expected by
SOF builds rules for reproducible builds.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>