Commit Graph

12496 Commits

Author SHA1 Message Date
Tobiasz Dryjanski 1e5b284ea2 I/O performance monitor: enable I/O performance measurements
Enable I/O performance for mtl and lnl

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski d595afd87d I/O performance monitor: Add I/O measurement for DAI
Adds I/O performance measurement for audio unterfaces in DAI (SNDW, DMIC,
SSP, HDA).

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski d1095d4081 I/O performance monitor: Add I/O measurements for IDC interface
Set up a counter of input and output IDCs.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski 7aeebaf636 I/O performance monitor: add I/O performance counters to IPC interface
Set up a measurement of number of input and output IPCs.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski 75b5328e6a I/O performance monitor: Add I/O performance related IPCs
Adds IO_PERF_MEASUREMENTS_STATE and IO_GLOBAL_PERF_DATA IPCs.
Those can be used to change state of I/O performance monitor and
extract the measured data.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski acfc74b3d5 I/O performance monitor: Add I/O performance monitor backend
Implements I/O performance measurement feature. It counts number of
transmitted bytes or other events that happen in various interfaces.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Tobiasz Dryjanski 025d9c7113 I/O performance monitor: add config for io performance measurements
Adds config option for enabling I/O performance.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 15:59:54 +03:00
Guennadi Liakhovetski 3659b69d97 mux: enable building as an llext module
Add support for LLEXT building to mux.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 99a35a1798 google_rtc_aec: enable building as an llext module
Add support for LLEXT building to google_rtc_audio_processing. Only
building in a stub configuration is supported, linking with a
prebuilt library should be implemented separately.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 1b38612460 mfcc: enable building as an llext module
Add support for LLEXT building to mfcc.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 661c05dfc5 aria: enable building as an llext module
Add support for LLEXT building to aria.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski e206134083 multiband_drc: enable building as an llext module
Add support for LLEXT building to multiband_drc.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski a216c1a793 tdfb: enable building as an llext module
Add support for LLEXT building to tdfb.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 26a02fc434 igo_nr: enable building as an llext module
Add support for LLEXT building to igo_nr. Only building in a stub
configuration is supported, linking with a prebuilt library should be
implemented separately.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 3800f23f3f dts: enable building as an llext module
Add support for LLEXT building to dts. Only building in a stub
configuration is supported, linking with a prebuilt library should be
implemented separately.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 15d503075f dcblock: enable building as an llext module
Add support for LLEXT building to dcblock.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski a33b955f64 selector: enable building as an llext module
Add support for LLEXT building to selector.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 5b23a37d88 crossover: enable building as an llext module
Add support for LLEXT building to crossover.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 71f5486ae5 build: (cosmetic) merge multiple conditional blocks in cmake
zephyr/CmakeLists.txt contains multiple conditional blocks with the
same condition, that can be trivially merged. This patch does that.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 095e2d674c google_ctc_aec: enable building as an llext module
Add support for LLEXT building to google_ctc_audio_processing. Only
building in a stub configuration is supported, linking with a
prebuilt library should be implemented separately.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 2357c6dfb3 build: use "__asm__" instead of "asm"
In certain configurations "asm" breaks compilation, use "__asm__"
instead.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Guennadi Liakhovetski 3136819473 rtnr: enable building as an llext module
Add support for LLEXT building to RTNR. Only building in a stub
configuration is supported, linking with a prebuilt library should be
implemented separately. So far no platform is switched to building
RTNR as a module.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-18 13:24:49 +03:00
Adrian Warecki 15062f0a9c iadk: system_agent: Check error code returned by the module entry point
Change the definition of the system_agent_start function so that it returns
the error code returned by the module's entry point functions. Return the
created IadkModuleAdapter object via a parameter.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2024-09-18 10:14:02 +03:00
Adrian Warecki a759851c5d iadk: Add module pass buffer definition
Add a definition specifying the size of space reserved in module memory for
module handle and a iadk adapter.

Add a brief description of the iadk module loading sequence.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2024-09-18 10:14:02 +03:00
Seppo Ingalsuo 1b08d6cc59 Audio: Volume: Clear peak meter channel max values in init and reset
This patch avoids garbage values to be sent to mailbox by
peak_vol_update() as very first peak volume measurement in
stream start. The data structures cd->peak_vol and
cd->peak_regs.peak_meter were not cleared.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-09-18 10:11:52 +03:00
Tobiasz Dryjanski 1872a109b9 performance monitor: change timer source to ccount for lnl
Use ccount for performance measurement for lnl to have a better comparison with
reference firmware.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 10:08:21 +03:00
Tobiasz Dryjanski 3be9f32ecd performance monitor: change timer source to ccount for mtl
Use ccount for performance measurement for mtl to have a better comparison with
reference firmware.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 10:08:21 +03:00
Tobiasz Dryjanski 7586f19cb1 performance monitor: change to new counters
Change performance counters to use abstract function to use multiple
time sources via config.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 10:08:21 +03:00
Tobiasz Dryjanski 6cc76a569d zephyr_ll:change time counting for telemetry
Change performance counter for telemetry to abstract one.
This enables choice of time source.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 10:08:21 +03:00
Tobiasz Dryjanski 3cce247d84 telemetry: add abstraction to time measurement
Adds abstract function to change time source for performance measurement
via config.

Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
2024-09-18 10:08:21 +03:00
Seppo Ingalsuo 9d1177acf4 Tools: Testbench: Convert file component to module adapter
This is done as preparation for testbench IPC4 support. The
update to IPC4 is simpler for a module adapter component.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-09-17 16:23:47 +01:00
Curtis Malainey c6d336a881 ipc3: fixup alignment of ext data
Use macro instead of harder to read math check.

Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
2024-09-17 16:22:21 +01:00
Ranjani Sridharan d7c0b5573f tools: plugin: Add support for enum controls
Add support for enum controls in the plugin. Fix the get_attribute and
get_enumerated_name callbacks to use the enum control items instad of
the count.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-17 16:21:25 +01:00
Ranjani Sridharan 5b606a94dd tools: plugin: ctl: Add a helper function to configure the IPC message
This will avoid the duplicated code when configuring the IPC message for
kcontrol IO.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-17 16:21:25 +01:00
Ranjani Sridharan 5416adbc23 tools: plugin: ctl: Fix reply_data_size calculation
Use the size of struct ipc4_module_large_config_reply instead of the
size of the pointer.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-17 16:21:25 +01:00
Ranjani Sridharan 0ae6a330aa tools: plugin: tplg_ctl: Use the ops info to determine kcontrol type
Use the ops info to differentiate the different kcontrols in topology.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-17 16:21:25 +01:00
Ranjani Sridharan ce385cf32a tools: plugin: Add index for kcontrols
Add an index field for kcontrols. This will be useful in differenciating
kcontrols of the same type in a widget. Modify the signature of the
control callback function to pass the index as an argument when creating
kcontrols. Pass 0 for ipc3 kcontrol builds as it will be unused in this
case anyway.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-17 16:21:25 +01:00
Kai Vehmanen dfd74b1765 versions.json: set version to 2.11.99
Open tree for 2.12 development now that stable-v2.11 is branched out.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-17 16:20:33 +01:00
Seppo Ingalsuo 56c60cd19b Tools: Topology2: Add build of 96 kHz DMIC nocodec topologies for PTL
This patch adds build of topologies where DMIC0 related pipelines
and PCMs are set to operate with 96 kHz rate.

- sof-ptl-nocodec-dmic-4ch-96k.tplg
- sof-ptl-nocodec-fpga-dmic-4ch-96k.tplg

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-09-17 14:18:58 +01:00
Seppo Ingalsuo 31cfb30b6f Tools: Topology2: Add topology sof-ptl-max98357a-rt5682-ssp2-ssp0
The topology is built into development to be used for testing and
further development.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-09-17 14:18:58 +01:00
Seppo Ingalsuo 350c7bd62b Tools: Topology2: Build nocodec topologies for PTL and PTL FPGA
This patch builds test topologies sof-ptl-nocodec.tplg,
sof-ptl-nocodec-fpga-2ch-pdm0.tplg, and sof-ptl-nocodec-fpga-4ch.tplg.
The changes include:

- New ptl.conf where DMIC and SSP versions are updated
  vs. LNL and MTL.
- The definitions for blob 3.0 format are added to
  instruct alsa-utils to process a new format SSP blob.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-09-17 14:18:58 +01:00
Kai Vehmanen f39e416a80 zephyr: dai.h: fix typos in code comments
Fix errors in code documentation to match the implementation.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 8f3b12ffbe xtos: sof/lib/shim.h: remove header
Remove the shim.h interface from RTOS layer as there is no use
of this interface anymore in SOF codebase.

Link: https://github.com/thesofproject/sof/issues/9015
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 5c60405368 platform: intel: remove shim.h interface as it's no longer needed
All users of shim.h have been either removed and/or moved to
Zephyr, so the interface can be removed from codebase.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 80ec0a532b platform: intel: cavs: remove unused pm_memory.h
Memory power management has been moved to Zephyr for these platforms, so
this file can be removed. Removing this file allow to remove the SOF shim.h
layer.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 6fb0b001d3 platform: intel: cavs: remove unused asm_memory_management.h
Memory management has been moved to Zephyr for these platforms, so this
file can be removed. Removing this file allow to remove the SOF shim.h
layer.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen a7d61cbe45 platform: intel: cavs: remove unused dw-dma.h
Only native Zephyr drivers supported now for Intel cAVS, so dw-dma.h
can be removed. Removing this file allow to remove the SOF shim.h
layer.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 17724b7195 platform: tigerlake: move remain use of shim.h to cavs code
The only remaining user of the SOF shim.h platform interface
is Intel Tiger Lake platform. And even for this target, only a very
small part of the interface is used. Everything else is either
not used, and/or moved to Zephyr.

Move the remaining definitions to the Tiger Lake implementation,
allowing the interface to be removed from SOF platform layer.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 20:52:05 +03:00
Kai Vehmanen 48193f89e1 xtos: move list.h to application interface
sof/list.h is a software interface used by the audio pipeline
framework and should not be in the RTOS abstraction layer.

Link: https://github.com/thesofproject/sof/issues/9015
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 19:16:58 +03:00
Kai Vehmanen 55ecc19ab6 app: intel_adsp_ace15_mtpm.conf: set DRC as built-in
Set DRC back as built-in (CONFIG_COMP_DRC=y) for these platforms.
DRC is now part of many common upstream topologies and as MTL
is a shipping platform, we cannot guarantee end-users have
sufficiently new kernel to support module loading.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-09-16 19:15:54 +03:00