Commit Graph

12483 Commits

Author SHA1 Message Date
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
Laurentiu Mihalcea 76e650e565 .github/zephyr: switch to python 3.10 on windows
Zephyr commit b3b8360f3993 ("west: runners: Add `west rtt` command
with pyocd implementation") adds some functionality to the
west commands making use of the pipe ("|") operator for
function return type hinting. As per PEP 604 [1], this operator
can be used for writing union types starting from python 3.10.
Since the SOF windows builds use python 3.8 this leads to
the CI failing.

To fix this, switch to using python 3.10. This is not a
problem for Linux CI jobs as they already use python 3.10.

The following is a snippet of a failed windows CI job
regarding this:

File "D:\a\sof\sof\workspace\zephyr\scripts/west_commands\runners\core.py",
line 780, in ZephyrBinaryRunner

    def get_rtt_address(self) -> int | None:

    TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

[1]: https://peps.python.org/pep-0604/

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-09-13 12:52:32 +03:00
Ranjani Sridharan 89e417a888 tools: topology2: sof-plugin: Add an option for mixin-mixout pipelines for playback
This will be useful to test volume controls with the plugin.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 08754de013 plugin: alsaplug: Add kcontrol set up callback
Define the callback for setting up kcontrols in the plugin. Add a few
new fields in struct plug_shm_ctl to store the module info and the
volume table for converting mixer values to linear volume gain.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 58465b8750 tools: plugin: tplg: Pass comp_info when creating controls for pga
This will be used to store the module id and instance ID when creating
the volume controls.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 4c3c1ed7dd plugin: alsaplug: pcm: Init the global context earlier
Initialize the shared memory for the global context during init so that
it can be used to store the kcontrol info during topology parsing. Move
the glb_ctx field from struct snd_sof_pcm to struct snd_sof_plug so that
it can be accessed during topology parsing.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 40c1a7d55f tools: plugin: alsaplug: ctl: Fix control ops for IPC4
Fix the read/write integer operations for IPC4 and the IPC messages
queues in the plugin kcontrol. Convert the bytes/enum ops implementation
to stubs. Support for these will be added later.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 139120033f plugin: alsaplug: Modify the signature of plug_parse_conf()
In preparation for parsing just the topology file from the command line
for kcontrols, modify the signature of plug_parse_conf() to add an
argument to specify it.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Ranjani Sridharan 119af89754 ipc4: handler: Handle the set/get large config IPCs for CONFIG_LIBRARY
Add the logic to copy the data to/from the mailbox when CONFIG_LIBRARY
is enabled with the set_large_config and get_large_config IPCs.
Also, make sure to copy the data to the mailbox along with the replay
message.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-09-13 12:50:54 +03:00
Peter Ujfalusi 1956aec13b topology2: tplg-targets-hda-generic: Add support for HDMI + DMIC combination
Extend the HDMI only configuration to support idsip + DMIC setups.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-09-13 10:50:08 +03:00
Guennadi Liakhovetski 5c025b0d9d asrc: enable building as an llext module
Add support for LLEXT building to asrc.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-12 18:07:16 +03:00
Guennadi Liakhovetski ed65e22943 eq-fir: enable building as an llext module
Add support for LLEXT building to eq-fir.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-12 18:07:16 +03:00
Guennadi Liakhovetski c7bbfedf4b llext: export symbols, required for eq_fir
When built as an llext module, eq_fir requires several base-firmware
provided symbols, export them.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-12 18:07:16 +03:00
Guennadi Liakhovetski dcd21cd0cb volume: add LLEXT support
This makes it possible to build volume as an LLEXT module to be
loaded at run-time.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-09-12 18:07:16 +03:00