Commit Graph

9590 Commits

Author SHA1 Message Date
Kwasowiec, Fabiola 87020dad3a kpb: set sync_draining_mode to true
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>
2023-01-30 12:33:49 +01:00
Kwasowiec, Fabiola 8c20c39ca2 memory: expand HEAPMEM_SIZE
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>
2023-01-30 12:33:49 +01:00
Ranjani Sridharan 077828a109 topology2: control: bytes: Use instance ID to instantiate ops and extops
Use instance IDs as the class definitions have changed.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-01-27 17:17:05 +02:00
Jaska Uimonen e4dc655f74 topology2: fix bt offload pipeline build
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>
2023-01-27 16:35:31 +02:00
Kai Vehmanen 654bde83eb cavs: dma: increase HDA DMA period count to 4
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>
2023-01-27 12:58:24 +00:00
CoolStar 459b1f519e Apollo Lake needs MCLK 1 for working da7219
Headphone output requires MCLK_ID to be set to 1

Signed-off-by: CoolStar <coolstarorganization@gmail.com>
2023-01-27 11:37:41 +00:00
Seppo Ingalsuo 84f10e5597 Audio: EQ FIR: Fixes for IPC4 processing function select and params
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>
2023-01-27 11:08:32 +00:00
Seppo Ingalsuo 1dc316226d Audio: EQ FIR: Improve info trace message
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>
2023-01-27 11:08:32 +00:00
Seppo Ingalsuo e2265794f6 Audio: EQ FIR: Change frame align to 2
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>
2023-01-27 11:08:32 +00:00
Seppo Ingalsuo 031fecb3f1 Audio: EQ FIR: Remove duplicates of module_update_buffer_position()
This can be done once at eq_fir_process() to save code size.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-01-27 11:08:32 +00:00
Seppo Ingalsuo 58692116a5 Audio: EQ FIR: Drop parameter nch from filter processing cores
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>
2023-01-27 11:08:32 +00:00
Seppo Ingalsuo 32fa4ed037 Audio: EQ FIR: Remove unused FIR processing functions
The unused single frame processing functions can be removed
to save code size.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-01-27 11:08:32 +00:00
Jaska Uimonen 4476171620 topology2: add generic Bluetooth offload pipeline
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>
2023-01-27 13:05:31 +02:00
Marc Herbert 1db950e078 .github/SPDX-README.md: clarify .c/.h difference and applicability
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>
2023-01-27 10:59:24 +00:00
Marc Herbert a5dfa5669e xtensa-build-zephyr.py: checksum dsp_basefw.bin
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>
2023-01-26 20:24:14 +02:00
Marc Herbert f85320ba8d scripts/xtensa-build-zephyr.py: checksum [sof_]version.h files
`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>
2023-01-26 20:24:14 +02:00
Kai Vehmanen 48afcefc75 topology2: cavs: fix num_audio_formats to match the actual number
Multiple pipelines had incorrect num_audio_formats leading to invalid
format structures ending up to topology.

Example FW trace:

[ 1601.624195] sof-audio-pci-intel-tgl 0000:00:1f.3: Get input audio formats for copier.module.8.2
[ 1601.624197] sof-audio-pci-intel-tgl 0000:00:1f.3:  #0: 48000KHz, 32bit (ch_map 0xffffff10 ch_cfg 1 interleaving_style 0 fmt_cfg 0x2002)
[ 1601.624201] sof-audio-pci-intel-tgl 0000:00:1f.3:  #1: 0KHz, 0bit (ch_map 0x0 ch_cfg 0 interleaving_style 0 fmt_cfg 0x0)

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-01-26 19:10:08 +02:00
Guennadi Liakhovetski 6b9c3caac8 zephyr: remove unused module initialisation
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>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 6b3050918a probe: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register probe with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski a6d6ed7632 waves: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register waves with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski e7a21904ac dts: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register dts with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski cfeb248275 google-hotword: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register google-hotword with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 8bb6321c6e tdfb: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register tdfb with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski d34fe6f1d4 up-down-mixer: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register up-down-mixer with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 12f647b753 rtnr: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register rtnr with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 388098abeb igo-nr: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register igo-nr with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski bc7eca2bd0 google-rtc: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register google-rtc with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 65dd48af21 multiband-drc: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register multiband-drc with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski ff81eda5d6 drc: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register drc with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 1f48e003d0 crossover: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register crossover with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski ba73c38320 aria: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register aria with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski e9d078b69f passthrough: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register passthrough with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 453d741f8a cadence: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register cadence with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski c3b453278b copier: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register copier with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski a07e69076c basefw: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register basefw with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski b03a15c89a mux: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register mux with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 798e7acaf3 dcblock: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register dcblock with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 781a2f14a9 asrc: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register asrc with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 1c0598071e smart-amp: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register smart-amp with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski e34183b0ab kpb: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register kpb with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 16bf62c2cc host: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register host with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 602205f40a keyword: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register keyword with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 386822403d eq-iir: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register eq-iir with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski f35132fed6 eq-fir: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register eq-fir with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski d1d3cfdeaf tone: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register tone with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 644a11b251 switch: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register switch with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski 674aed94c2 selector: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register selector with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski dba274da89 chain-dma: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register chain-dma with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski ad3e2e4ab1 src: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register src with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00
Guennadi Liakhovetski efa132a9c8 dai: convert to Zephyr native initialisation
Use SOF_MODULE_INIT() to register dai with the Zephyr
initialisation framework.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-01-26 16:54:57 +02:00