Commit Graph

1538 Commits

Author SHA1 Message Date
SaiSurya Ch 6a448db42e topology: Update topology name of platform ACP_6_3
update topology file name of platform ACP_6_3

Signed-off-by: SaiSurya Ch <saisurya.chakkaveeravenkatanaga@amd.com>
2024-08-08 14:40:40 +03:00
Pierre-Louis Bossart 22c3285788 topology2: sdw-dmic-generic: add eqiir to control DC offset
For some reason we had the EQIIR for topology1/IPC3 but we didn't add
it for topology2/IPC4.  All recordings show there's a strong DC offset
with RT722 and other codecs, so let's add this component by default in
the non-passthrough cases.

The widget is added in the scope of a pipeline, so that the
auto-generated instance is not handled at a global level.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 15:32:03 +01:00
Pierre-Louis Bossart 394b63a190 topology2: sdw-jack-generic: move eqiir widget in scope of pipeline
The widget should only be defined in the scope of a pipeline,
otherwise the instance management is global instead of local to the
pipeline.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 15:32:03 +01:00
Pierre-Louis Bossart dd4c68ed4c topology2: sdw-jack-generic: simplify capture formats
The ALH copier only supports 32bits stereo on capture. All the
additional formatls on the host copiers make no sense, and we also
don't need to generate 4ch on the host side.

It looks like the addition of the 1ch support was also problematic
since the link always operates with 2ch.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 14:30:25 +01:00
Pierre-Louis Bossart fab56b89de topology2: revisit use of SAMPLE_TYPE_MSB_INTEGER and SDW_LINK_VALID_BITS
These two variables should only be used on the link side. It makes no
sense to use them on the host-facing side of the DAI copier.

FIXME: do we need to use 3 formats for the ALH copiers, in most cases
there's really a need for a 32-bit format only?

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 14:30:25 +01:00
Pierre-Louis Bossart ea0e4b51f2 topology2: remove audio_format
We need to use input_audio_format and output_audio_format.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 14:30:25 +01:00
Pierre-Louis Bossart 2e94170d50 topology2: add support for MTL Acer Swift Go 14
This device has RT712 on link0 2 PCH-attached DMICs.

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

Link: https://github.com/thesofproject/linux/issues/4923
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-08-05 14:24:32 +01:00
Bard Liao 8394ac3d30 topology2: sof-mtl-rt712-l0: modify HDMI_IDs
There is no SDW DMIC or PCH DMIC included in the configuration. Thus the
last SDW link ID will be 2 and the HDMI link ID will start with 3.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2024-08-05 14:24:32 +01:00
Pierre-Louis Bossart dc28dbdc6a topology2: add basic definitions for PTL
Start moving SoundWire topologies from the shadows into main...

We generate a single topology for RT722-based skews since the link
information is not used in the matching with the machine driver
dailinks. The same topology can be used for link0 or link3 setups.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-07-24 12:37:28 +01:00
Pierre-Louis Bossart 6382963fb5 topology2: force all SoundWire link-side copiers to use S24_LE
Using S32_LE wastes bandwdith for no good reason, we should use 24
bits on the link to maximize bus efficiency with the 9.6 MHz bus
clock.

There is no need for a kernel-side change, the dailink fixup already
changes the dailink format based on the topology information.

Link: https://github.com/thesofproject/sof/issues/8960
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-07-15 18:54:45 +03:00
Pierre-Louis Bossart c97bba3d3b topology2: fix HDMI dailink offsets for RT711-based RVPs
removing NUM_HDMIS=0 was not enough, the offsets need to be modified
as well.

While we're at it, make sure all RT711-based RVPs use the same
formatting, ADL had the setting buried in the middle of the chain of
macros.

Closes: https://github.com/thesofproject/linux/issues/5094
Fixes: 75ed6960b8 ("topology2: enable HDMI for all SoundWire production topologies")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-07-05 15:09:54 +03:00
Pierre-Louis Bossart 75ed6960b8 topology2: enable HDMI for all SoundWire production topologies
For some reason we still have NUM_HDMIS=0 in production topologies,
that's a miss. We have no reason to keep those initial developer
settings.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-07-04 13:36:27 +03:00
Andy Ross bbd25c4a59 topology2: mtl-rt5650: Add configuration for AEC w/o DTS
Combinatorics get hard with all the features, but it's really useful
to be able to test features in isolation.

Signed-off-by: Andy Ross <andyross@google.com>
2024-06-25 17:05:14 +01:00
Seppo Ingalsuo 3da8e64745 Tools: Topology2: Update sof-hda-efx-generic controls names
The controls names for IIR, FIR need to be same as in
sof-hda-generic for UCM to find the controls and set up
the components for processing.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-06-19 14:16:09 +03:00
Peter Ujfalusi e137e9bcb8 topology2: common: pcm_caps: Change the periods_max from 1024 to 256
HDA host DMA has limitation on the number of BDL entries which translates
to number of periods, this limit is 256.

The Chrome ALSA compliance test is eagerly try to use as many periods as
it can which exceeds the BDL limit and the stream cannot be started.

Fixes: b3a6d1c570 ("topology2: common: pcm_caps: Increase periods_max from 16 to 1024")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-06-14 11:03:12 +03:00
Seppo Ingalsuo 1470e6c585 Tools: Topology2: Use rates instead of rate_min/max in benchmark
The rate_min/rate_max is obsolete, should use rates with
list of rates to support. Without this change the playback
of non-48 kHz content happens with 48 kHz rate with pitch
shift effect. Aplay shows only a warning.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-06-13 10:37:19 +03:00
Peter Ujfalusi c1ad36d592 topology2: Add new tokens 'playback/capture_pause_supported' as false by default
We need to face with reality that the pause/resume is a feature that is not
well tested (end users are using audio via audio servers and they don't
use pause/resume) causing constant issues with no real life benefit:
With IPC4 multiple pause/resume will make the delay reporting to be
exponentially shoot out, making the reported delay to be unusable.

Looks like suspend/resume with paused stream has been broken for a long
time and just got noticed (since it was not tested).

Add a new token to allow selected PCMs to advertise pause support and
keep it false by default.

The kernel side will allow ignoring the flag to keep the pause advertised
for continued testing while protecting accidental use of it by users.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://github.com/thesofproject/linux/issues/5035
2024-06-07 16:39:39 +01:00
Bard Liao 8af48c03d3 Topology2: sof-mtl-sdw-cs42l42-l0-max98363-l2: add SDW_AMP_FMT_24=true
Max98363 doesn't support 32 bit format. Use 24 bit format instead.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2024-05-30 14:07:17 +03:00
Seppo Ingalsuo 10de58da07 Tools: Topology2: Remove unnecessary NHLT binary from EFX topologies
The NHLT binary is not needed in these audio processing development
and test topologies. With the current build options the NHLT would
work only with cAVS2.5 platforms (TGL). Without NHLT add these are
safe to use in all platforms where the NHLT blob is retrieved from
BIOS.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-27 13:06:32 +03:00
Iuliana Prodan 00664d091a topology: imx: Add a variable for schedule domain
Add DMA_DOMAIN variable and based on this we set
SCHEDULE_DOMAIN to SCHEDULE_TIME_DOMAIN_DMA, otherwise
is SCHEDULE_TIME_DOMAIN_TIMER.

Now, only i.MX8MP is using SCHEDULE_TIME_DOMAIN_DMA.
Therefore the DMA_DOMAIN is added only for 8MP topologies.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-05-23 19:17:56 +03:00
Seppo Ingalsuo a8f2b845ce Tools: Topology2: Define only same channels counts for DMIC0 dai-copier
This patch defines e.g. for sof-hda-generic-2ch.tplg DMIC0 only
stereo formats as s16/24/32. Similarly for e.g. sof-hda-generic-4ch.tplg
only four channels formats are defined.

The reduction of input formats options avoids the issue with kernel
that it possibly selects invalid channels count for DMIC0 DAI when
the channels count in connected pipelines varies due to processing
components.

The output formats are reduced similarly since copier always has
the same input and output channels count.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-23 14:32:12 +03:00
Seppo Ingalsuo b6f1bba44f Tools: Topology1: Change name of default DRC test blob
The tplg1 blobs are still used with IPC3 testbench test pipelines.

The updated script example_drc.m exports the blob used for DRC
test with name "speaker_default" so, the blob file name to include
to test pipeline is changed. The blob content is same as before.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-22 16:20:03 +01:00
Pierre-Louis Bossart 69249fb75b topology2: add mtl-rt712 topologies version
For some reason the sof-mtl-rt712-l0 topology was not created despite
being listed in the kernel, and we now need the rt712 VB support with
an additional SmartMic path.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2024-05-16 18:11:29 +03:00
Seppo Ingalsuo b02a852053 Tools: Topology2: Add benchmark topologies for TDFB component
This patch adds s16/s24/s32 format test topologies for the
time domain fixed beamformer component.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-14 14:42:46 +01:00
Seppo Ingalsuo a81a235ae6 Tools: Topology2: Intel: Add 16 and 24 bit DMIC DAI copier format option
This patch allows the kernel to choose 16 bit format if the DMIC
NHLT is missing the recommended 32 bit mode blob. The 24 bits is
also in theory possible so it is added for completeness.

The DAI copier is converting the output format for internal pipelines
into S32_LE format, so the other operation is not impacted. For systems
with 32 bit DMIC NHLT there is no impact.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-09 11:19:12 +03:00
Kai Vehmanen d533d4290e topology2: common_definitions: improve SAMPLE_TYPE documentation
Clarify documentation of SAMPLE_TYPE_MSB_INTEGER sample type
value and fix documentation of SAMPLE_TYPE_LSB_INTEGER. These
definitions are often confused with integer endianness, which is
not related. Clarify this better.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-05-09 11:14:12 +03:00
Bard Liao 4a761f6d60 Topology2: add mtl rt713 rt1318 rt1713 support
Two configurations for sof-mtl-rt713-l0-rt1318-l12-rt1713-l3 and
sof-mtl-rt713-l0-rt1318-l1-rt1713-l3.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2024-05-08 09:56:31 +01:00
Seppo Ingalsuo 07c9043516 Tools: Topology2: Use for LNL own platform configuration lnl.conf
The new lnl.conf is copy of mtl.conf but DMIC_DRIVER_VERSION needs
to be increased by one for a small registers change.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-06 12:33:41 +03:00
Yong Zhi 18ab8c2468 topology2: cavs-rt5682: expose spk core_id for overriding
Port from nocodec topology for multi-core validation.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2024-04-30 13:17:42 +03:00
Kai Vehmanen 278ecc5b74 topology2: intel: bt-generic.conf: fix rate constraints
Commit c77a4feb2f ("topology2: pcm_caps: Remove defaults for
rate_min/rate_max") changed how rate constraints are described in
topology. After this change, the rate_min/max was ignored by SOF Linux
driver and the rate was incorrectly limited to 48000Hz for these
topologies.

Fix this issue by enumerating the supported sampling rates with "rates".

Link: https://github.com/thesofproject/sof/issues/9067
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2024-04-26 13:04:35 +01:00
Laurentiu Mihalcea 65b8a32f27 nxp: imx8ulp: switch to native Zephyr drivers and timer domain
Switch to Zephyr native drivers and timer domain. This
includes:
	1) Switching all imx8ulp topologies to timer domain.
	2) Disabling Zephyr DMA domain
	3) Various interrupt-related fixes via Kconfig-related
	ifdef logic.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-25 14:12:41 +03:00
Peter Ujfalusi aa60e65c6b topology2: intel: deep-buffer: Adjust the buffer_size_min only
There is no benefit on changing the period/buffer size_max as it is set
by default to a reasonably large value already.
What matters is the buffer_size_min: it needs to be larger than the
amount of data that one DMA burst will transfer, which is equal to the
DeepBuffer size. For safety reasons the minimum buffer size has to be
larger than this.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-04-24 16:27:52 +03:00
Peter Ujfalusi bba6a4cb04 topology2: common: pcm_caps: Revisit default period and buffer sizes
Increase the default period_size_max to a much larger value which is
commonly used by sound cards from 16384 to 2097152.

Adjust the buffer_size limits to minimum 384 (2 * period_size_min) and the
maximum to 4194304 (2 * period_size_max).

Applications do not need to use these large buffers, but there is no
technical reason to not allow them, like they available on other sound
hardware.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-04-24 16:27:52 +03:00
Peter Ujfalusi b3a6d1c570 topology2: common: pcm_caps: Increase periods_max from 16 to 1024
There is no technical reason to limit how many periods applications use.
Generic sound cards tends to allow 32768 periods (period size range
is 16 - 524288) but that is an overshot, let's raise the limit to 1024.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2024-04-24 16:27:52 +03:00
Laurentiu Mihalcea 9737e124bc nxp: imx8/imx8x: switch to native Zephyr drivers and timer domain
This commit includes all necessary changes for switching
to timer domain and Zephyr native drivers on imx8 and imx8x.
This consists of:
	1) Switching all imx8 topologies to timer domain.
	2) Disabling Zephyr DMA domain
	3) Various interrupt-related fixes via Kconfig-related
	ifdef logic.

This commit includes all necessary changes for switching
to native Zephyr drivers on imx8/imx8x.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-23 12:20:31 +01:00
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
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
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
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