Commit Graph

2370 Commits

Author SHA1 Message Date
Mac Chiang 4c1cd870e6 topology2: add rt1318 and rt714 support on LNL
This patch adds following hardware configuration on LNL product:

SDW link0: RT714 DMIC
SDW link1: RT1318 Left Speaker
SDW link2: RT1318 Right Speaker

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-04-22 13:44:29 +01:00
Peter Ujfalusi 3f7a589678 topology2: intel: hdmi-generic: Update rates and format support in pcm.caps
With ChainDMA the HDMI PCM can support IEC958_SUBFRAME_LE and the rate
is not limited to 48K only.

To be able to use bytestream passthrough (DD/DTS/etc).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-04-17 12:47:18 +01:00
Kai Vehmanen d0239c70da tools: plugin: ipc4: fix build error in switch-case
A label must be followed with a statement and declaration is
not a statement. Enclose the case in brackets to avoid compiler
error on this.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-04-17 14:35:17 +03:00
Ranjani Sridharan c77a4feb2f topology2: pcm_caps: Remove defaults for rate_min/rate_max
Use 'rates' instead to specify that 48K is the default supported rate.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-04-17 09:15:32 +03:00
Guennadi Liakhovetski 30b9470afa rimage: add support for relocatable objects
Relocatable ELF objects don't contain segments, update rimage to
prevent it from aborting in such cases.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-04-16 15:30:02 +01:00
Seppo Ingalsuo a485f27757 Tools: Topology2: Add build of 96 kHz HDA topologies
The development topologies are with -/2ch/4ch DMIC for cavs25
and ace1 platforms for testing HDA with 96 kHz rate.

The build topologies names are:
	- sof-hda-generic-cavs25-4ch-48k-96k
	- sof-hda-generic-cavs25-2ch-48k-96k
	- sof-hda-generic-cavs25-4ch-96k
	- sof-hda-generic-cavs25-2ch-96k
	- sof-hda-generic-ace1-4ch-48k-96k
	- sof-hda-generic-ace1-2ch-48k-96k
	- sof-hda-generic-ace1-4ch-96k
	- sof-hda-generic-ace1-2ch-96k
	- sof-hda-generic-96k

The DMIC1 PCM ID with 96 kHz is set to 22 (capture ultrasonic).
PCM IDs definition is in:
https://github.com/thesofproject/sof/files/14021187/PCMDeviceList.txt

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo a22a3aa16b Tools: Topology2: Add other rates support for HDA generic
This patch modifies cavs-mixin-mixout-hda.conf with added input
and output format attributes for in_rate and out_rate. The bit_depth
attributes need to be added to as well to avoid corrupt audio.

The HDA_ANALOG_CAPTURE_RATE and HDA_ANALOG_PLAYBACK_RATE are by default
set to 48000. The topologies' characteristics are not changed with
this patch.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo dabb9b4fe9 Tools: Topology2: Add build of test topologies with DMIC1 enabled
Topologies with DMIC1 passthrough capture are added to development
directory with 16 and 96 kHz rates. Also a topology with DMIC0
changed to 96 kHz is added as example to test DMIC0 with other
than default rate.

The new topologies are:
	- sof-hda-generic-cavs25-4ch-48k-16k
	- sof-hda-generic-ace1-4ch-48k-16k
	- sof-mtl-sdw-cs42l42-l0-max98363-l2-4ch-48k-16k
	- sof-mtl-sdw-cs42l42-l0-max98363-l2-4ch-48k-96k
	- sof-mtl-sdw-cs42l42-l0-max98363-l2-4ch-96k
	- sof-mtl-max98360a-rt5682-4ch-48k-16k
	- sof-mtl-max98360a-rt5682-4ch-48k-96k

The DMIC1 PCM ID with 96 kHz is set to 22 (capture ultrasonic).
PCM IDs definition is in:
https://github.com/thesofproject/sof/files/14021187/PCMDeviceList.txt

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo 32050ba5aa Tools: Topology2: Add pass-through capture for DMIC1
This patch optionally includes dmic1-passthrough.conf if
DMIC1_ENABLE is set in topologies build to passthrough.

The sample rate of DMIC1 DAI can be set to 8 - 96 kHz with
macro DMIC1_RATE.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo ccf80dbdfc Tools: Topology2: Use rate definition in dmic-generic.conf
The added DMIC0_RATE allows to use the DAI, pipelines, and PCM with
any supported rate for DMIC in range 8 - 96 kHz. E.g. configure
DMIC0 to 96 kHz.

There is no change to existing functionality with default 48 kHz rate.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo bc7b29321e Tools: Topology2: Add format to all widgets in dmic-generic.conf
The input audio format and output audio format definitions are
missing for the copiers and IIR. The formats are added in
preparation to be able to set non-default sample rate for all
widgets.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo 20c7c7963f Tools: Topology2: Add DMIC1 defaults definitions
The needed defaults for DMIC1 for PCM ID and sample rate are added
similarly as for DMIC0 for later use. DMIC1 related pipelines are
not used by default so DMIC1_ENABLE is set to false.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-16 12:35:29 +01:00
Seppo Ingalsuo 660e27809e Tools: Topology2: Add include of mtl.conf for LNL HDA generic
This quick fix avoids build of NHLT blob for the default (TGL)
for LNL HDA generic platform.

The DMIC part of NHLT from TGL is not suitable for LNL, while a
blob for MTL can be used. A proper lnl.conf will be added later.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-15 14:09:04 +01:00
Bard Liao 2e71793421 Topology2: sof-tgl-rt712: remove SDWx from stream name
The widget name size will exceed the character limit and lead to below
error

failed to find module info for widget
alh-copier.SDW0-Playback-SimpleJack.0 with UUID
00000000-0000-0000-0000-000000000000

Shorten the stream name to fix it.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2024-04-09 13:13:51 +03:00
Kai Vehmanen 07b762e0ae topology2: pipeline: add constraints on pipeline.priority attribute
Add constraints on valid pipeline priority values and document
the semantics so that 0 is considered the highest priority and such
pipeline should be run first.

The range matches definitions in include/ipc4/pipeline.h and
SOF_IPC4_MAX_PIPELINE_PRIORITY.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-04-05 21:13:37 +03:00
Pierre-Louis Bossart 1e9a497316 topology2: add support for MTL HP Omen14
This device has RT711 on link0, RT1316 on link3 and 2 PCH-attached DMICs.

Add 3 configurations with no DMIC, 4 DMIC and 2 DMIC. For now no
support for -pdm1.

Link: https://github.com/thesofproject/linux/issues/4880
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-04-05 13:54:03 +03:00
Seppo Ingalsuo 6980cdd7b4 Tools: Tune: Eq: Fix IIR data files names in example_spk_eq.m
The IIR files export overwrites the FIR files due to mistake
in the script.

Fixes commit 5ddbd34ba9 ("Tools: Tune: EQ: Add tplg2 blobs create")

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-04-04 18:58:02 +03:00
Laurentiu Mihalcea aaf2f11eb9 nxp: imx93: Switch to native Zephyr drivers and timer domain
Starting with this commit, i.MX93 now uses the timer domain
in conjunction with the Zephyr native drivers.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 15:12:00 +02:00
Laurentiu Mihalcea 2711784ed5 tools: topology1: imx8ulp: change protocol and BCLK polarity
The BT codec used by the IW416 chip expects FSYNC to be
asserted for only one BCLK. Also, FSYNC should be active HIGH.
As such, change from I2S protocol to DSP_A protocol since the
configurations made for this protocol inside the SAI driver
are more suited.

Also, by default, the BT codec drives data on BCLK rising
edge and samples it on falling edge. With the DSP_A protocol,
the SAI driver also has the same configuration, which is wrong
since we can't drive and sample on the same edge and cycle. As such,
invert BCLK polarity such that the SAI will drive on rising edge
and sample on falling edge.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Laurentiu Mihalcea bbd20a9766 tools: topology1: imx8ulp: correct BCLK frequency
8ULP has two supported BT HFP scenarios: NBS and WBS. For
NBS the frequency of FSYNC is 8k, while for WBS the frequency
of FSYNC is 16k. Since the BCLK is computed as:
	Freq(BCLK) = TDM_SLOTS * TDM_SLOT_WIDTH * Freq(FSYNC)
then that means we're going to end up with two different BCLK
frequencies (one for each supported scenario).

Currently, what we do is pass the frequency of FSYNC
as a build argument, while keeping the frequency of BCLK
constant (set to 256000, which would be the same value as the
one used in WBS). This causes the following issues:

	1) The Zephyr native SAI driver returns an error
	when trying to commit the configuration because the
	frequency of BCLK doesn't abide by the aforementioned
	formula.

	2) We end up consuming twice as many samples in a given
	unit of time.

To fix these issues, use the aforementioned formula to compute
the frequency of BCLK.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Laurentiu Mihalcea 03dd62abbd tools: topology1: imx8ulp: rename `RATE` to `FSYNC_RATE`
Rename the `RATE` parameter to `FSYNC_RATE` in order to
remove ambiguity regarding what the parameter is.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Mac Chiang 980f193d09 topology2: sof-mtl-rt5650: add SSP FMT 24 bits support
Use 24 bits format on playback and capture pipelines if codec needs,
e.g. RT5650 HS/SPK codec.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-03-22 10:26:28 +02:00
Mac Chiang 7bd3f0c6e8 topology2: fix nhlt binary file naming
All topologies are built in parallel. The same name will lead
to file overrides. Therefore, correct to use the respective file
names properly.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-03-22 10:26:28 +02:00
Mac Chiang 1004762500 topology2: remove USE_CHAIN_DMA flag as it's applied to iDisp links.
The CHAIN_DMA has been replaced with HDMI_USE_CHAIN_DMA, which was already
enabled by default on iDisplay HDAudio codec in hdmi-default.conf.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-03-22 10:26:28 +02:00
Mac Chiang 859c23c567 topology2: cavs-mixin-mixout-eqiir-dts: fix the indentation
Replace whitespaces with tabs.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-03-22 10:26:28 +02:00
Mac Chiang d49cfe5e46 topology2: cavs-mixin-mixout-ssp: fix the indentation
Replace whitespaces with tabs.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2024-03-22 10:26:28 +02:00
Johny Lin 6c3bd4791b topology2: cavs-rt5682 separate variants for google aec
When Google RTC AEC is not ready to launch, it shouldn't be included
in production builds for Chromebook. This commit removes Google RTC
AEC from the current variants while making another copy with suffix
"-google-aec".

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2024-03-20 11:30:53 +02:00
Damian Nikodem 57d65790ca tools: toml: add src_lite module definition
Add the missing src_lite module definition to the toml
file for the LNL project.

Signed-off-by: Damian Nikodem <damian.nikodem@intel.com>
2024-03-19 19:46:46 +02:00
Kai Vehmanen 6bdbf7186e topology2: sof-tgl/adl-nocodec: disable multicore
Multicore is not working correctly for Intel cAVS2.5 in Zephyr
upstream and the fixing will take a longer time, so disable
this feature in nocodec configuration.

Link: https://github.com/thesofproject/sof/issues/8942
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-03-15 18:30:45 +02:00
Seppo Ingalsuo 727ad82997 Tools: Topology2: Add IIR, FIR, DRC to HDA analog playback
This patch replaces pipeline mixout-gain-dai-copier-playback with
mixout-gain-efx-dai-copier-playback. The purpose is to allow
enhance of audio playback quality with equalizers (IIR and FIR)
and dynamic range control (DRC).

The components are programmed by default to passthrough for minimal
overhead. They can be activated via sof-ctl or UCM with ALSA controls.

- Post Mixer Analog Playback IIR Eq bytes
- Post Mixer Analog Playback FIR Eq bytes
- Post Mixer Analog Playback DRC bytes
- Post Mixer Analog Playback DRC switch

The recommendation is to keep headphone playback flat and enable
processing only when HDA output is in speaker mode.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-03-14 10:40:43 +02:00
Andy Ross ba9f8fc8ab topology1/mt8195: Add Graphviz output markers
Add the .dot file header/footer macros.  These are benign if unused,
and it seems like most other devices have them defined.

Signed-off-by: Andy Ross <andyross@google.com>
2024-03-11 11:43:08 +02:00
Seppo Ingalsuo 259c923a23 Tools: Topology2: No need for HDA platform variants for benchmark tplg
Since there is no NHLT blob included to these topologies, the same
topology works for all HDA platforms, e.g. TGL, MTL, LNL.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-03-05 16:03:44 +02:00
Marc Herbert ea1b65dae4 sof_ri_info: fix "full_bytes" comment in the source
Zero functional change.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-03-04 12:04:28 +02:00
Marc Herbert 2d405d70a7 sof_ri_info: add MTL production key
Extracted from v2.8 v2.8.x/sof-ipc4-v2.8/mtl/intel-signed/sof-mtl.ri

Verified on v2.8.1 https://github.com/thesofproject/sof-bin/pull/162

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-03-04 12:04:28 +02:00
Seppo Ingalsuo a9a05e2b3a Tools: Tune: SRC: Update generator to produce similar as edited
This patch makes to SRC coefficients tables generator same changes
as done in recent git commits.

commit 88fdb10e52 ("audio: src: rename sample rate converter
coefficient folder name") moved coefficients files location to
src/audio/src/coefs.

commit 90fef5afd2 ("src_lite: add module") removed include of
src.h from upper level due to another src-lite version.

'commit 7f4e6aed74 ("src: make coefficients constant")
added const to struct src_stage.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-02-23 13:13:28 +00:00
Iuliana Prodan 3ab82dceb2 topology2: add topology for imx8MP
Add playback topology for i.MX8MP with wm8960 codec

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-21 14:10:27 +02:00
Iuliana Prodan b3989330f9 topology2: add SAI as dai_type
Add SAI as dai_type for dai-copier component.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-21 14:10:27 +02:00
Iuliana Prodan cc29b337d0 topology2: add SAI DAI class
Add SAI DAI class definition, SAI DAI objects can be
instantiated as:

Object.Dai.SAI."N" {
    direction		"duplex"
    dai_name		"NoCodec-0"
    id 			0
    Object.hw_config."0" {
	    mclk_freq	12288000
	    bclk_freq	3072000
	    tdm_slot_width	32
    }
    Object.dai."playback" {
	    period_source_count	2
	    period_sink_count	0
    }
    Object.dai."capture" {
	    period_source_count	0
	    period_sink_count	2
    }
}

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-21 14:10:27 +02:00
Iuliana Prodan f3533bcd42 topology2: move gain-playback/capture pipelines out of cavs
Move gain-playback/capture pipelines out of cavs folder
since these can used by others.

Update cavs topologies to fix compilation by adding
include/pipelines as searchdir.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-21 14:10:27 +02:00
Iuliana Prodan c105d89031 topology2: move common_definitions to common folder
Move common_definitions.conf to common folder since this
will be used by other companies to define their topologies.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-21 14:10:27 +02:00
Ranjani Sridharan 48462a47bd tools: plugin: README: Add instructions for testing noise suppression
Fix the stale instruction for install and add the steps for setting up
OpenVino/OpenCV to test the noise suppression model from the open model
zoo repository.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan e9352299db topology2: sof-plugin: Add noise suppression module to the capture path
Add the conf file for the OpenVino noise suppression module and
introduce the module in the capture path in the plugin topology when
noise suppression is enabled. ATM, only 16K capture is supported by the
model, so change the input/output rates for the host/dai modules in the
plugin capture pipeline.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan 06b3e329da tools: plugin: modules: Introduce the OpenVino noise suppression module
Introduce a new module that performs noise suppression. The module loads
the noise suppression model using the OpenVino Runtime plugin, processes
the input samples to produce output samples with clean speech.
CUrrently, the module is hard-coded to compile the model to be run on
the CPU only and will be extended for other devices like the NPU in the
future.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan de2d39514f tools: plugin: 50-sof: Add new config for 16KHz stereo 16-bit format
This will be needed for the plugin voice PCM in preparation to add the
noise suppression module in the host pipeline.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan 850e1d3eb3 tools: plugin: Fix prepare/free widgets for capture
Set the host widget correctly and use the capture specific functions
during prepare/free.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan 47a17d7fcf tools: plugin: tplg: Fix ibs/obs for all widgets
Set both ibs/obs to be based on the ALSA period_size to make sure that the
intermediate buffers are large enough.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan 4feebf2a5c tools: plugin: tplg: Fix parsing of process widgets
For now, only process widgets that don't need the basecfg extension are
supported.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Ranjani Sridharan 61fdc16240 tools: plugin: pcm: Add missing return
Add the missing return in the hw_free callback.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-16 21:45:27 +02:00
Adrian Bonislawski af80acccc6 logger: convert: fix variable type for negative value
time_precision variable can be used as -1

Fixes commit ff9343aa4a ("logger: convert: Fix compile time error with
newer toolchain")

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
2024-02-13 17:20:49 +00:00
Iuliana Prodan a6700afea1 topology1: imx8ulp: overwrite CHANNELS_MIN
On 8ULP SAI is connected to BT which supports
only 1 channel for both playback and record.

Fixes: aaff352314 ('topology1: pipe-volume-capture.m4: Set minimum number of channels to 2')

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-12 20:07:47 +02:00
Brent Lu 5c3a1caec3 topology2: dmic-generic: rename volume switch
The volume switch of gain widget is renamed as 'Dmic0 Capture Volume'
for backward compatibility.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2024-02-08 16:58:21 +00:00
Brent Lu 33e23766ff topology2: dmic-generic: add switch for LED control
Add a mute switch to gain widget for DMIC. Also register this switch
as MIC mute LED mixer control on Linux side.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2024-02-08 16:58:21 +00:00
Brent Lu b2d1f09da5 topology2: gain: add mixer switch for mute control
Add a switch to gain widget for mute control. It could also be used
as MIC/SPK mute LED control purpose.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2024-02-08 16:58:21 +00:00
Ranjani Sridharan a5bdcce1e1 topology2: Add topology for testing SOF plugin
The topology uses passthrough pipelines for playback/capture and
supports only 48k, 2ch, 16bit format for now.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2024-02-05 18:16:40 +02:00
Guennadi Liakhovetski 8bfb4896c7 llext: add or improve comments
Address clarity improvement requests from an earlier pull-request
review.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-01-29 18:42:23 +02:00
Andrula Song 193dec2c9f Topology: Topology2: Add sof-hda-benchmark-asrc32/24/16-<platform>
This patch adds build of hda-generic development topologies to
test ASRC component with s32/24/16 format.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-29 15:17:24 +00:00
Balamurugan C 7002215a8d topology2: mtl: Generate topology for No headset codec
Adding make file changes to generate the topology file for the products
which doesn't have no ssp-based audio codec but need to support
HDMI audio playback and HDMI-in capture via I2S.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2024-01-29 11:52:21 +02:00
Balamurugan C f29230698a topology2: mtl: Override default HDMI DAI link id's
override the default HDMI DAI link id's by using make
define parameters instead of fixed in file.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2024-01-29 11:52:21 +02:00
Balamurugan C b9132421d3 topology2: mtl: Add headset codec macro
Adding HEADSET_CODEC macro and guarded the SSP configuration handling
under this macro.By this changes we can generate the topology
configuration for the products which has no headset codec.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2024-01-29 11:52:21 +02:00
Guennadi Liakhovetski d119d93cae rimage: add a generic platform.toml
Instead of including TOML files for each platform explicitly, add a
generic platform.toml, that will contain all respective platform
TOML files, and select the correct one, based on build configucation.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-01-26 17:56:14 +02:00
Guennadi Liakhovetski a967d955db rimage: mtl: extract platform part from mtl.toml.h
A part of mtl.toml.h is also needed for loadable modules, built for
MTL. Extract it into a separate file.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-01-26 17:56:14 +02:00
Guennadi Liakhovetski ab29f8db82 llext: add a new module type
We need to be able to distinguish LLEXT loadable dynamically linkable
modules at run-time. Add a new type for them. Compatibility is
preserved.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-01-26 17:56:14 +02:00
Bard Liao 897cee1e18 fixup! topology2: Use SAMPLE_TYPE_MSB_INTEGER for ALH copier
Some ALH DAI copier missed SAMPLE_TYPE_MSB_INTEGER setting.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2024-01-26 13:37:28 +00:00
Maciej Strozek eea7b51fd6 topology2: cavs-cs42l43: Add topology for cs42l43/cs35l56 on MTL
The layout is configured as:
    - Link0: CS42L43 Jack and mics
    - Link2: 2x CS35L56 Speaker (amps 3 and 4, right)
    - Link3: 2x CS35L56 Speaker (amps 1 and 2, left)

Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
2024-01-26 01:10:26 +02:00
Pierre-Louis Bossart 6a2eba11dd topology2: enable HDMI for all MTL topologies
Remove the temporary workaround and add HDMI on all MeteorLake
products. If this breaks stuff, well we need to fix hit ASAP.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-01-25 18:09:29 +02:00
Marc Herbert ff9343aa4a logger: convert: Fix compile time error with newer toolchain
Using Compiler version: aarch64-poky-linux-gcc (GCC) 13.2.0
we get the following error:

tools/logger/convert.c: In function 'convert':
tools/logger/convert.c:357:34: error: '%*s' directive output between 4294967264 and 4294967284 bytes exceeds 'INT_MAX' [-Werror=format-overflow=]
|   357 |                 fprintf(out_fd, "%*s(us)%*s  ", -ts_width, " TIMESTAMP", ts_width, "DELTA");
|       |                                  ^~~                       ~~~~~~~~~~~~
| In file included from /opt/builds/OBNand/build/tmp/work/armv8a-poky-linux/sof-tools/2.8.0/recipe-sysroot/usr/include/stdio.h:964,
|                  from /opt/builds/OBNand/build/tmp/work/armv8a-poky-linux/sof-tools/2.8.0/git/tools/logger/convert.h:13,
|                  from /opt/builds/OBNand/build/tmp/work/armv8a-poky-linux/sof-tools/2.8.0/git/tools/logger/convert.c:21:
| In function 'fprintf',

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-01-25 10:35:10 +02:00
Peter Ujfalusi c27eda7edb topology2: production: cav2.5: Add sof-adl-rt711-l0-rt1316-l13-rt714-l2
The sof-adl-rt711-l0-rt1316-l13-rt714-l2 similar to
sof-adl-rt711-l0-rt1308-l12-rt715-l3 with the SDW DMIC on different link.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-24 16:46:01 +00:00
Peter Ujfalusi 10e87fd8f1 topology2: production: cav2.5: Add sof-adl-rt711-l0-rt1308-l12-rt715-l3
The sof-adl-rt711-l0-rt1308-l12-rt715-l3 is identical configuration as
sof-tgl-rt711-rt1308-rt715

At the same time update the comments for better organization.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-24 16:46:01 +00:00
Peter Ujfalusi d0232e7286 topology2: production: cav2.5: Remove NHLT blob from SDW DMIC topologies
NHLT blob is not needed in for DMIC on SDW bus.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-24 16:46:01 +00:00
Peter Ujfalusi b05eded22d topology2: Tidy up the production target name as topology2_prod
The target name for the production should have been more precise as it
ended up:
ninja -C tools/build_tools/ help
topology2_dev: phony
...
topology2_dev_sof-tgl-nocodec: phony
topology2_dev_sof-tgl-nocodec-crossover-2way: phony
...
topology2_prod: phony
...
topology2_sof-hda-generic: phony
topology2_sof-hda-generic-2ch: phony
...

Change it to be consistent:
topology2_dev: phony
...
topology2_dev_sof-tgl-nocodec: phony
topology2_dev_sof-tgl-nocodec-crossover-2way: phony
...
topology2_prod: phony
...
topology2_prod_sof-hda-generic: phony
topology2_prod_sof-hda-generic-2ch: phony
...

No functional change.

Suggested-by: Marc Herbert <marc.herbert@intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-24 15:13:11 +00:00
Peter Ujfalusi 65e4c1f8b5 topology2: Merge avs-tplg and sof-ace-tplg under production directory
Merge the avs-tplg and sof-ace-tplg under a common production directory.

After a successful build CMake will copy the topology files to a target
directory from where they can be copied to DUT/release:

$ tree tools/build_tools/topology/topology2/target
tools/build_tools/topology/topology2/target
├── development
│   ├── cavs-sdw-hdmi.tplg
│   ├── cavs-sdw-src-gain-mixin.tplg
        ...
│   ├── sof-tgl-nocodec-rtcaec.tplg
│   └── sof-tgl-nocodec.tplg
├── sof-ace-tplg -> sof-ipc4-tplg
└── sof-ipc4-tplg
    ├── sof-adl-rt711-4ch.tplg
    ├── sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg
        ...
    ├── sof-tgl-rt712.tplg
    └── sof-tgl-rt715-rt711-rt1308-mono.tplg

The sof-hda-generic-2/4ch.tplg will be generated without embedded NHLT as
it is not used under normal circumstance.
Two flavor of the generic topology is generated for CAVS2.5 and ACE1/2 with
included NHLT binary in case it is used by existing users, but it is
unlikely.

As noted in the documentation, on the deployed system a symlink is needed
for ACE1/2 platforms for backwards compatibility:
sof-ace-tplg -> sof-ipc4-tplg

Link: https://github.com/thesofproject/sof-docs/blob/master/getting_started/intel_debug/introduction.rst#2-topology-file
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-22 10:38:49 +08:00
Seppo Ingalsuo 7b5475b0af Tools: Rimage: Config: Add IGO NR component for TGL, MTL, LNL platforms
This patch enables to load the component in the changed platforms.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-01-18 16:39:29 +00:00
Seppo Ingalsuo d47385b384 Tools: Testbench: Build IGO_NR with stub for testbench
This allows to build and load IGO NR stub version to testbench.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-01-18 16:39:29 +00:00
Seppo Ingalsuo 14237ed126 Tools: Rimage: Add RTNR component to TGL, MTL, and LNL platforms
This patch allows load of RTNR component with these platforms.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-01-17 13:19:40 +00:00
Seppo Ingalsuo ac900459b3 Tools: Testbench: Add build of RTNR component to testbench
This patch enables RTNR (with stubs) to be built and loaded
to testbench.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-01-17 13:19:40 +00:00
Yong Zhi 40f6de58da sof_ri_info: fix imr size for cnl
Fix the typo for 8MB imr size.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2024-01-17 11:57:45 +02:00
Adrian Warecki 6c188298b9 rimage: loadable_modules: Set correct image type
The image header contains a bitfield with flags specifying a image type.
This commit sets correct image type depending on whether firmware or
a loadable module is being signed.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2024-01-12 17:52:53 +02:00
Chao Song 16d788efed Topology2: Add sof-lnl-rt722-l0
This patch adds the topology for LNL RVP with rt722
multiple function codec.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2024-01-11 12:38:28 +00:00
Andrula Song 3a78701fb0 Tools: Topology2: Add sof-hda-benchmark-src_lite16/24/32-<platform>
This patch adds build of hda-generic development topologies to
test SRC LITE component with all s16/s24/s32 formats

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-09 15:09:37 +00:00
Andrula Song 04a0553d67 Tools: Topology2: Add widget class SRC LITE
This patch allows to build topologies to use the SRC LITE
component.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-09 15:09:37 +00:00
Peter Ujfalusi 4bb48758ad topology2: Remove redundant DEEPBUFFER_FW_DMA_MS=100 settings
The default for DEEPBUFFER_FW_DMA_MS is 100, remove the
DEEPBUFFER_FW_DMA_MS parameter set for individual topologies when the value
set is also 100

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-08 14:19:50 +00:00
Peter Ujfalusi 80f283de0c topology2: Mark DeepBuffer D0I3 compatible by default
The DeepBuffer stream is D0I3 compatible for some time now on all IPC4
platforms, The CAVS2.5 topologies just did not got updated.

Swap the default for the DEEPBUFFER_D0I3_COMPATIBLE to true.
New, experimental platforms can change this if needed until the feature is
verified.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-01-08 14:19:50 +00:00
Andrula Song dae9214e37 Topology: Topology2: Add sof-hda-benchmark-src24/16-<platform>
This patch adds build of hda-generic development topologies to
test SRC component with s24/16 format.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-08 10:47:30 +02:00
Andrula Song 344778384a Tools: Topology2: Add more specific src format .conf files
Add more s24 and s16 format src .conf files. These files
have the similar function as s32 files.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-08 10:47:30 +02:00
Chao Song 874eda7ca8 Topology2: Add sof-lnl-rt712-l2-rt1712-l3 topology
This patch adds the topology for LNL RVP with rt712
multiple function codec.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2024-01-05 13:15:49 +02:00
Andrula Song 1c33c4e1b7 Topology: Topology2: Add sof-hda-benchmark-src32-<platform>
This patch adds build of hda-generic development topologies to
test SRC component with s32 format.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2024-01-04 15:31:26 +00:00
Yong Zhi 1f3cf75a1b topology2: cavs-rt5682: Assign RTC_AEC to secondary core
Run RTC_AEC module on core 2 to balance workloads.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2024-01-04 15:27:16 +02:00
Kai Vehmanen a9bd8245d2 topology2: cavs-nocodec-bt: fix PCM0 and PCM1 capabilities
The pipelines for PCM0 and PCM1 only support S32_LE audio
format. Fix the PCM capability descriptions to match the actual
pipeline definitions. This allows to run test suites that enumerate
all support PCMs and their formats.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-12-22 11:36:39 +02:00
Seppo Ingalsuo dabf0a672e Tools: Topology2: Add switch control to topologies with DRC
The mixer control for switch is added to widget definition
of drc.conf.

In cavs-mixin-mixout-efx-hda.conf the existing control name
is changed to have "bytes" similarly as multiband-drc has. The
switch control is added for the widget to implement the switch.

The controls definitions files in benchmark topologies are replaced
to new format from current .conf generator script. The bytes control
is same as before, and the mixer control for switch is added.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-21 13:12:42 +00:00
Guennadi Liakhovetski cf9a444bfc toml: modularise TOML configuration
Split TOML configuration files into platform and module parts. Use
the C preprocessor to merge them back together.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-12-21 13:07:13 +00:00
Andrula Song 7ec22d80ea Tools: Topology: Fix the topology2 ASRC UUID
Correcting the UUID in asrc.conf to match with firmware.

Signed-off-by: Andrula Song <andrula.song@intel.com>
2023-12-20 14:58:58 +00:00
Seppo Ingalsuo 3d083e7ca7 Tools: Tune: DRC: Add calculation of blob for speaker processing
This patch adds generation of a blob that applies about
10 dB gain with compression and additional post gain of
3 dB for strong loudness boost effect.

The drc_gen_coefs.m script is changed to display
the master linear gain as decibels to help achieve
suitable gain when setting parameters.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Seppo Ingalsuo 18f170352d Tools: Tune: DRC: Add information how to create topology blobs
This patch updates the generator script example_drc.m with added
information how the blobs were created.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Seppo Ingalsuo 4baa131628 Tools: sof-ctl: Add DRC blobs for testing
These blobs are useful in setting DRC in runtime to
pass-through or strong compression mode to evaluate
performance.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Seppo Ingalsuo 895450ec6f Tools: Topology2: Update comments in DRC configuration blobs
Add descriptive comments how these blobs for DRC were
created.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Seppo Ingalsuo b2b6f099d2 Tools: Topology2: DRC: Add blob for speaker processing
This blob exercises fully the features of DRC and is
therefore useful for performance evaluation in all
operation regions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Seppo Ingalsuo 6eed29c74f Tools: Topology1: Add speaker DRC blob for testbench run
This blob exercises fully the features of DRC and is
therefore good for testbench runs to evaluate performance
in all operation regions.

The pipeline pipe-drc-playback.m4 is used only with testbench
so it is safe to change to use this blob.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Balamurugan C fc860826a8 topology2:cavs-es83x6: Add support to Es8326 codec + HDMI-in capture
Add Es8326 codec support and HDMI-in capture via I2S.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2023-12-19 17:03:57 +00:00
Marc Herbert 27e5f40b9a rebuild-testbench.sh: error when unknown arguments are passed
Silently discarding user input is really bad.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-12-19 16:54:45 +00:00
Seppo Ingalsuo e5da161264 Tools: Topology2: Add sof-hda-benchmark-rtnr16/24/32-<platform>
This patch adds build of hda-generic development topologies to
test IGO NR component with all s16/s24/s32 formats.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:41:02 +02:00