Use the module interface instead of the comp drv interface for the
EQ IIR component.
In processing functions the dev structure is changed to the new mod
structure.
In filter initialize functions the mod structure provides the
configuration.
The eq_iir_init() function is converted to follow the module init
conventions.
The params() and cmd() functions are removed since they are done
in module adapter. The set/get config functions are added to handle
the binary blob set/get.
The copy() function is changed to module adapter eq_iir_process()
form. Data is processed from input_buffers[0] to output_buffers[0].
The eq_iir_prepare() is changed to set the frame and byte alignment
for module adapter. The sink streams size check is removed since
it is done in module adapter.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The existing class definition for audio_format works only for widgets
with exactly 1 input pin (Pin index 0) and 1 output pin (Pin index 0).
Add two new classes that can be used to define the audio formats for any
pin. These classes use the same tokens are the existing audio_format
class and therefore can be used alongside the existing audio_format
instances with non-zero pin indices.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
And set them to be the same number as the num_audio_formats in all the
current widget objects. This is in preparation to remove
num_audio_formats as there will be widgets with different number of
supported formats for each sink/source pin.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Hda chain work only with IPC4 compatible boards, therefore additional
compilation dependency in Kconfig has to be added.
Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
For Intel platforms, C0 is on by default for processes necessary to
run in low power cases, while C1..3 for processes with higher loads.
This commit moves the default core to C1 for Speakers pipeline.
At the same time, we found this commit can resolve the DSP panic
issue on builds with 3P post-processing solutions running on Speakers
pipeline.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Defines the target core ID for Speakers and Echo Reference pipelines
explicitly. When GOOGLE_RTC_PROCESSING is defined, it will be set to
the same ID as DMIC48K pipeline.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This patch fixes a mistake with test run configuration for
testbech tests where input and output word lengths are not
the same.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
There's no need to translate ipc4_module_init_instance struct
to leagacy sof_ipc_comp before calling comp_new
More important - IPC4 contains different set of information,
like proc_domain (LL/DP), not included in IPC3
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Added a new notification about the crash of the secondary core. It is
directed to the primary core. Only failure detected by watchdog is
supported at this moment.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Added a new LL_WATCHDOG option to the platform Kconfig. Created library
header for watchdog in ll. Added watchdog support to zephyrs ll scheduler
domain.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Despite using ipc3 some ipc4 header files were still included. Added #if to
solve this problem.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The dma_buffer_size is only applicable from the host/dai copiers and
can be calculated using the ibs/obs in the base_cfg in the kernel.
So in preparation for removing the dma_buffer_size token from the audio
format objects, add a new attribute, deep_buffer_dma_ms, in the copier
that will be used to the send the deep buffer DMA size to the kernel.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
FW infrastructure shall support buffering of
historic data 24bit samples in 24bit container.
with modules configuration 24/32bit
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
set sync_draining_mode to true otherwise we get
glitches on the output signal because the offsets
are set to 0
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
FW infrastructure shall support buffering of historic data
from 1ch up to 6 channels 24bit samples in 24bit container.
For this reason, the heap should be extended.Increase HEAPMEM_SIZE
by 0x90000 because for audio format 16000Hz/6ch/24bit
history_buffer_size = 16 * 6 * 3 * 2100s = 604800 bytes (0x93A80)
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
Fix bt offload pipeline with instance ids. This was an unfortunate merge
error with recent instance id topology2 commit.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Align HDA DMA platform period count with value used on Intel ACE
platforms. This only affects operation with native Zephyr DMA
drivers.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This patch contains the main changes for IPC4. The FIR function
need to be selected in prepare() with mod->priv.cfg.base_cfg.audio_fmt
information.
The eq_fir_prepare() function must call in IPC4 the params()
function to get stream parameters from same struct to set the
sink buffer parameters.
Some comp_info() traces are changed to comp_dbg() to reduce
trace verbosity.
This patch also includes an optimization to select the
eq_fir_passtrough() function when all of the channel filters
in blob are set to bypass. The block copy function is more
efficient than per channel FIR bypass.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add determined stream channels count to info trace to better
understand possible error in coefficients blob initialization.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The FIR processing cores are computing multiple of two frames
sizes so the align constraint can be set to prevent EQ process
to be called with odd frame counts.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The channels count need to be retrieved from source buffer. The
mod->stream_params->channels is not available in IPC4. Frame_count
calculation is also simplified.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add generic Bluetooth offload pipeline and two example
topologies based on cavs-nocodec that are using the new
Bluetooth pipelines.
1) cavs-nocodec-bt.conf
Example topology that matches configuration used on may
Intel SOF boards (SSP2, Bluetooth SCO and A2DP configurations).
2) cavs-nocodec-bt-lbm.conf
Variant of first topology that configures all mode with
SSP loopback mode, allowing to verify the pipeline operation
by capturing the audio back from the same PCM.
Requires alsa-utils patch "topology: nhlt: intel: ssp: fix obvious typo
for 'codec_provider'" to correctly generate the NHLT blobs for 8/16khz
modes.
Link: https://github.com/alsa-project/alsa-utils/pull/174
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Explain when this file applies and why there is a .c/.h difference.
I still don't understand why .c file don't use /* SPDX */ but I think
it's still worth quoting a tiny bit from the official documentation
anyway.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
When using --fw-naming AVS the .ri file is renamed to `dsp_basefw.bin`.
Also explain why it's still useful to identify non-deterministic images.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
`git describe` differences happen, especially when trying to optimize
cloning and this is for instance what happened in
https://github.com/thesofproject/sof/pull/6950#issuecomment-1396150533
where zephyr tags were fetched on Linux but not on Windows
This also makes plain git version differences more obvious; no need to
scroll all the way up and scan the build logs.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
All SOF modules are now initialised using native Zephyr APIs, no need
any more in a dedicated ELF section. TODO: remove from linker scripts
once this is merged.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register probe with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register waves with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register dts with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register google-hotword with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register tdfb with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register up-down-mixer with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Use SOF_MODULE_INIT() to register rtnr with the Zephyr
initialisation framework.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>