Skip to content

v2.2

Compare
Choose a tag to compare
@lgirdwood lgirdwood released this 01 Jul 09:46
· 4783 commits to main since this release

The SOF Technical Stearting Committee are pleased to annouce the release of SOF v2.2.

Binaries can be downloaded here https://github.com/thesofproject/sof-bin/releases/tag/v2.2 or via git from the sof-bin repo https://github.com/thesofproject/sof-bin

High level

  • Codec adapter becomes the module adapter and it's API reflects the same API used by the Windows processing modules. This will allow 3rd party processing ISVs to reuse existing code from Windows without any modifications.
  • Optimisations
    • Frag API deprecated giving a ~1MCPS improvement per component.
    • Frame API precalculate block sizes for SIMD/non SIMD use cases. ~0.25MCPS improvment
  • Processing modules/components
    • New up mix and down mix module added with support for HiFi4 that can up/down mix the number of channels in a stream.
  • Zephyr, more native APIs added now for logging, delays, sleeping. Should be fully Zephyr Native by v2.3
  • IPC4 additions that enable more advanced use cases and audio endpoints for Windows.

What's Changed

  • Audio: volume: Optimize source and sink buffers usage by @andrula-song in #5452
  • Tools: Test: Fix mistake in script test_run.m by @singalsu in #5499
  • xtensa-build-all.sh: Use appropriate defconfig for tgl-h platform by @softwarecki in #5501
  • zephyr/cmake: Add support for linking with cadence libs by @dbaluta in #5502
  • xtensa-build-zephyr.py: small de-duplication by @marc-hb in #5476
  • xtensa-build-zephyr.py: do not git submodule update by @marc-hb in #5514
  • topology2: add be pipeline for sdw by @bardliao in #5507
  • topology1: Set Dmic samplerate to 48000Hz by @balakishorepati in #5513
  • xtensa-build-zephyr.sh: add new -u zephyr_remote option by @marc-hb in #5530
  • xtensa-build-all: add a separate target for JSL by @kv2019i in #5503
  • Audio: Multiband DRC: Optimize source and sink buffers access by @singalsu in #5511
  • xtensa-build-zephyr.sh: fix shellsheck warning by @kv2019i in #5520
  • topology2: common: fix to add '$' for SAMPLE_TYPE_LSB_INTEGER by @fredoh9 in #5517
  • xtensa-build-zephyr.py: un-hardcode execute_command() wrapper by @marc-hb in #5516
  • volume: use rmalloc() for an internal allocation by @lyakh in #5525
  • mediatek: mt8195: afe-drv: fix fs cppcheck warning by @yaochunhung in #5533
  • topology1: add sof-mt8195-mt6359-max98390-rt5682 topology by @kuanhsuncheng in #5534
  • ipc4: revert "ipc4: fix pipeline reset" by @RanderWang in #5546
  • xtensa-build-zephyr.py: restore ability to override CI + more catch up with the .sh script by @marc-hb in #5515
  • google-rtc-audio: Make AEC reference stereo by @lkoenig in #5500
  • google_rtc_audio_processing: Add config controls by @lkoenig in #5488
  • timer: Align SOF timer API with Zephyr by @softwarecki in #5393
  • zephyr: ll-schedule: initialise n_tasks by @lyakh in #5555
  • ipc4: refine reset state to fix audio player issue in windows by @RanderWang in #5548
  • Codec Adapter: Use the passed input buffers by @ranj063 in #5540
  • [RTNR] Support MAX98360A + RTNR for ADL by @MingJenTai in #5545
  • topology: add waves and waves-2way for sof-adl-max98357a-rt5682 tplg by @johnylin76 in #5535
  • Move platforms software configuration from Zephyr to SOF by @aborisovich in #5531
  • [RTNR] Reserve more memory for RTNR by @MingJenTai in #5542
  • ipc4: don't get dai position when dai is not ready by @RanderWang in #5497
  • Clean up all SHARED_DATA data by @lyakh in #5524
  • ipc4: fix the compound ipc wait timeout by @rfredzim in #5547
  • zephyr: make DMA LLI allocations always uncached by @lyakh in #5421
  • pipeline: params: don't use uninitialized hw_params by @cujomalainey in #5570
  • ipc4: stop dma when dai is reset by @RanderWang in #5486
  • topology1: add sof-icl-rt711-rt1308-rt715-hdmi NOMIC support by @libinyang in #5367
  • ipc4: add volume_params support by @RanderWang in #5567
  • Codec Adapter: Use the passed output buffers in process() by @ranj063 in #5559
  • ipc4: dai: update wallclock for position update by @RanderWang in #5568
  • sof-ctl: Allow setting arbitrary size for controls by @lkoenig in #5487
  • google_aec: Use frag_write to write data. by @lkoenig in #5576
  • zephyr: correct the idc payload initialization by @rfredzim in #5512
  • Small fixes for codec adapter by @ranj063 in #5583
  • ll_schedule: add a DSP load tracker to ll_tasks_execute by @jsarha in #5407
  • platforms:tgl: Configure format converter for IPC4 when building for Zephyr by @XiaoyunWu6666 in #5566
  • audio: dcblock: fix mistakes of sink stream pointer by @andrula-song in #5586
  • audio: crossover: fix the mistake of sink stream pointer by @andrula-song in #5585
  • tplg parser: refactor and cleanup part 1 by @lgirdwood in #5399
  • topology1: add DMIC 48K Core ID flag to CMake for RTNR by @sathyap-chrome in #5565
  • zephyr: ll-scheduler: k_sem handle must be in coherent memory by @kv2019i in #5588
  • topology1: ADL: Add DTS topology by @joechengxperi in #5580
  • IPC4: Make the firmware compilable with gcc by @ujfalusi in #5601
  • ipc4: base_fw: Fix firmware version type in basefw_config IPC by @ujfalusi in #5605
  • ipc4: add support for voice recorder in windows 10 by @RanderWang in #5563
  • google_rtc_audio_processing: Make control write reliable by @bzhg in #5604
  • audio: codec adapter: remove unused variable from dts codec by @markbartonxperi in #5612
  • ipc4: base_fw: Simplify firmware version type in basefw_get_dsp_prope… by @ujfalusi in #5606
  • [RTNR] Fix buffer size calculation by @MingJenTai in #5541
  • ipc4: handler: Fix compilation with gcc in ipc4_set_pipeline_state() by @ujfalusi in #5614
  • test/topology: make tplg-build.sh callable from anywhere by @marc-hb in #5633
  • ipc4: handler: Perform platform context save before primary core shut… by @ujfalusi in #5634
  • pipeline: do not reschedule pipe task if already in target state by @kv2019i in #5627
  • xtensa-build-zephyr.py: forbid shell=True by @marc-hb in #5629
  • ipc: run buffer free in context of active pipeline by @kv2019i in #5635
  • mixer: remove unused code from mixer_trigger_common() by @kv2019i in #5636
  • topology2: abi: fix size of ABI bytes by @ranj063 in #5631
  • .github/build-tools: build again verbose and single threaded after a failure by @marc-hb in #5640
  • Split data blob functionality out of component code and add single data blob mode by @jsarha in #5509
  • Add support for mtk mt8186 audio driver by @chunxu-li in #5492
  • buffer: fix dereference before null check by @abonislawski in #5660
  • xtensa-build-zephyr.py: add cavstool.py to staging directory by @marc-hb in #5667
  • topology1: sof-adl-rt1019-rt5682: add new topology by @Vamshigopal in #5665
  • ipc4: fix pipeline reset trigger from paused state by @kfrydryx in #5664
  • audio: comp_ext: workaround XCC compatibility with zephyr logging by @aiChaoSONG in #5574
  • Tools: Topology: Add a development topology to RUN SRC on UP2 by @singalsu in #5644
  • ipc4: base_fw: return fail for not supported ipc by @tmleman in #5647
  • include: ipc: Add compress_params interface file by @dbaluta in #5590
  • Support for dynamic codec adapter id - Part 1 by @dbaluta in #5591
  • waves: fix building with gcc by @lyakh in #5676
  • copier: copier_params: Check the bsource_list size before reference to the first element. by @softwarecki in #5675
  • zephyr: Use type compatible with Zephyr linker declarations by @edersondisouza in #5648
  • mixer: add logic to maintain data flow when sources are paused by @kv2019i in #5628
  • ipc4: free buffer when pipeline is free by @RanderWang in #5609
  • ipc4: pipeline: stop preparing component in another pipeline by @RanderWang in #5671
  • Ipc4: fix src bugs on windows by @RanderWang in #5669
  • ipc4: dma-trace: fix ipc4 log buffer status notification handling by @rfredzim in #5621
  • tgl: fix single-core building by @lyakh in #5651
  • m4: add RO bytecontrol by @cujomalainey in #5638
  • xtensa-build-zephyr.py: default to subprocess.run(check=True) . Disable some pylint warnings. by @marc-hb in #5668
  • ipc4: setdx: skip sending ipc response by @tmleman in #5663
  • topology2: Add support for 4 ch DMIC capture by @ranj063 in #5681
  • alloc: Making heap trace dump more readable by @sathya-nujella in #5666
  • ipc4: check pipeline priority for error report by @RanderWang in #5581
  • notifier: Use coherent memory allocation by @teburd in #5623
  • zephyr: wrapper: rballoc_align: Support for the SOF_MEM_FLAG_COHERENT flag by @softwarecki in #5652
  • google_rtc_audio_processing: add alloc guards by @cujomalainey in #5688
  • topology2: cavs-nocodec: Add support for MTL nocodec topology by @ranj063 in #5686
  • audio: volume: initialize variables before using by @andrula-song in #5656
  • xtensa-build-all.sh: add ipc4 build support for tgl by @XiaoyunWu6666 in #5694
  • [skip-ci] docker_build: add bison and flex to apt install list by @fredoh9 in #4203
  • Revert "ipc4: setdx: skip sending ipc response" by @ujfalusi in #5700
  • xtensa-build-zephyr.py: drop check=True, now the default by @marc-hb in #5706
  • platform: Rename module_init section by @dbaluta in #5698
  • Audio: Clean up mixer processing function on component reset by @eddy1021 in #5705
  • detect_test: fix comp struct by @lenghonglin in #5697
  • Audio: clean up stream data and processing functions in crossover on reset. by @eddy1021 in #5702
  • IPC4: fix capture issue in CI test by @RanderWang in #5689
  • Audio: clean up igo params in component data of igo_nr by @eddy1021 in #5695
  • Audio: Clean up mux/demux processing functions on reset. by @eddy1021 in #5704
  • ipc4: handler: Fix tr_dbg string for ipc4_get_large_config_module_ins… by @ujfalusi in #5717
  • topology1: sof-hda-generic: remove digital paths by @plbossart in #5691
  • ipc4: handler: ipc4_get_large_config_module_instance: Fixed handling of memory allocation error by @softwarecki in #5699
  • ipc4: add format conversion of 24LE to 32LE by @RanderWang in #5696
  • tools: stop copying v2 topologies to the v1 directory by @marc-hb in #5716
  • [SKIP CI] CODEOWNERS: add @aborisovich, remove @zrombel by @marc-hb in #5721
  • pcm_converter: fix uninitialised variables by @lyakh in #5725
  • Audio: DRC: Optimize source buffer read and sink buffer write by @singalsu in #5489
  • topology1: SoundWire/HDAudio: add headphone deep buffer support by @plbossart in #4611
  • zephyr: track SOF app calls to enable/disable cores separately by @kv2019i in #5708
  • Audio: Clean up state and processing function of selector on component reset by @eddy1021 in #5711
  • Audio: Clean up state of host on component reset by @eddy1021 in #5715
  • Add IPC4 builds to installer and to (crosstool-ng gcc) Github Actions by @marc-hb in #5722
  • Ipc4 : enable playback with chain dma by @RanderWang in #5719
  • Support for dynamic codec adapter id - Part 2 by @dbaluta in #5592
  • drivers: amd: renoir: use sample rate from topology by @balakishorepati in #5620
  • ipc4: set sink sample rate before verifying params by @RanderWang in #5723
  • CODEOWNERS: @BenZh -> @bzhg by @afq984 in #5736
  • IPC: IPC4: Fix GCC build errors by @singalsu in #5734
  • zephyr/docker-build.sh: match UID with 'adduser' instead of 'chgrp -R' by @marc-hb in #5730
  • Tools: Testbench: Add capture direction and multi-pipeline run by @singalsu in #5569
  • topology1: add mt8186 related pipelines and components by @chunxu-li in #5735
  • [SKIP CI] .github/zephyr: download docker image from ghcr.io instead of docker.io by @marc-hb in #5738
  • [SKIP CI] .github: IPC4: build supported TGL platforms first by @marc-hb in #5739
  • Support for dynamic codec adapter id - Part 3 by @dbaluta in #5596
  • Audio: Clean up processing function and coefficients of dcblock on reset. by @eddy1021 in #5710
  • sof: replace log calls with zephyr logging api by @aiChaoSONG in #5707
  • ipc4: add format conversion support of s32le to s24le by @RanderWang in #5742
  • Audio: Clean up params of kpb on component reset by @eddy1021 in #5714
  • topology: sof-adl-cs35l41: support cs35l41 speaker amplifier by @brentlu in #5372
  • Audio: SRC: Bug fixes by @singalsu in #5637
  • Audio: Clean up state of rtnr on component reset by @eddy1021 in #5745
  • Audio: SRC: Add IPC4 full conversions matrix by @singalsu in #5622
  • sof-ctl: Fix -Wformat,-Wsometimes-uninitialized by @afq984 in #5750
  • drivers: amd: renoir: add remove call back function by @balakishorepati in #5757
  • RTNR: Decouple switch-enable control from params blob by @MingJenTai in #5618
  • Add RTNR to MT8195 topology by @MingJenTai in #5753
  • topology1: Change SSP_Config for rt1019 by @Vamshigopal in #5748
  • ipc4: use SOF_COMP_COPIER for copier module by @RanderWang in #5743
  • Rename codec_adapter to module_adapter by @ranj063 in #5593
  • drivers: amd: renoir: fix for Bo noise during stream start by @balakishorepati in #5776
  • Add base sparse support by @lyakh in #5324
  • perf_cnt: add the tracing of window-based average calculation by @johnylin76 in #5680
  • Audio: EQ: Convert assert to normal fail by @singalsu in #5771
  • Preparatory patches to start using the module interface for all components by @ranj063 in #5773
  • dai: add op to fetch dai fifo depth by @juimonen in #5774
  • zephyr: move Zephyr IDC implementation to idc-p4wq.c by @kv2019i in #5772
  • [AMD] scripts: update xtensa core name and version for renoir by @johnylin76 in #5780
  • git: remove "module" from .gitignore by @lyakh in #5785
  • xtensa-build-zephyr.py: make sure that west can find SOF by @marc-hb in #5787
  • topology: sof-adl-max98360a-rt5682: enable BT offload by @brentlu in #5779
  • k_usleep() and k_msleep() wrappers for xtos by @jsarha in #5770
  • Audio: Clean up processing function and state of smart amp on component reset by @eddy1021 in #5712
  • Add RTNR library path for MT8195 by @MingJenTai in #5754
  • [RFC] CMake: pass firmware file micro version to rimage by @mengdonglin in #5760
  • Make Zephyr build compatible with optional assert() by @marc-hb in #5758
  • buffer: add cached consume and produce update versions by @lyakh in #5782
  • SOF IPC header cleanup by @rfredzim in #5720
  • Add Google RTC Audio Processing with RTNR to MT8195 topology by @MingJenTai in #5767
  • Add MT8195 override config by @MingJenTai in #5755
  • Topology: Topology1: Fix mistake in buffer size calculation by @singalsu in #5795
  • xtensa-build-zephyr.py: add -d option for debug build by @aiChaoSONG in #5792
  • mux: Use a fixed size for mux_stream_data by @afq984 in #5762
  • cache coherency: 2 correctness patches by @lyakh in #5783
  • ipc4: return ipc4 error status instead of posix error by @RanderWang in #5799
  • zephyr: Fix compile error after switching to module_adapter naming by @dbaluta in #5803
  • drivers: mediatek: fix build error by @tinghan-shen in #5808
  • K sleep wrapper for xtos by @jsarha in #5804
  • ipc4: avoid pipeline sink component check in different pipeline by @RanderWang in #5790
  • rimage: update to May 4th version 9d45332 by @mengdonglin in #5791
  • Audio: Crossover: change to use model handler to handle configs by @eddy1021 in #5729
  • checkpatch: add __sparse_cache and __sparse_force attributes by @marc-hb in #5806
  • (Cosmetic)copier: fix spelling mistake by @ranj063 in #5812
  • Update checkpatch version to Linux' v5.17 by @marc-hb in #5805
  • overlays: tgl: Add DMIC_NHLT by @ranj063 in #5811
  • rtnr: Add audio stream layer between sof and RTNR by @MingJenTai in #5543
  • overlays: add common/debug_overlay.conf for debug build by @aiChaoSONG in #5818
  • module_adapter: Don't use config->type to identify component by @dbaluta in #5800
  • Performance optimizations for module adapter by @ranj063 in #5786
  • ipc4: copier: add multiple gateway support by @RanderWang in #5684
  • Enable BT Offload for Intel ADL devices by @brentlu in #5816
  • Audio: Google RTC Audio Proc: Process copy() without read/write frag by @singalsu in #5579
  • Component: remove the todo to clean up reset. by @eddy1021 in #5821
  • topology1: soundwire: add macro to remove HDMI by @plbossart in #5813
  • Update mt8186 memory configuration by @tinghan-shen in #5832
  • topology1: soundwire: use dynamic pipelines in kernel-dependent cases by @plbossart in #5829
  • ipc4: don't create pipeline msg for ipc4 by @RanderWang in #5817
  • audio: add aligned limits for component copy function by @andrula-song in #5266
  • xtensa-build-zephyr.py: switch default to sof/stable-v2.2 by @mengdonglin in #5893

New Contributors

Full Changelog: v2.1...v2.2