Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions tools/topology/topology2/cavs-uaol.conf
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,15 @@ Define {
# map, so it is the one count in the range which cannot be run.
UAOL_CHANNELS_MIN 1
UAOL_CHANNELS_MAX 8
# UAOL supports up to 192 kHz
# UAOL supports up to 384 kHz
UAOL_RATE_MIN 8000
UAOL_RATE_MAX 192000
UAOL_RATES '8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000'
UAOL_RATE_MAX 384000
UAOL_RATES '8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,384000'

# The deep buffer PCM feeds the same mixer as the normal playback PCM. It
# takes the source and the sink as plain widget names, so it repeats the
# pipeline IDs defined above.
UAOL_DEEP_BUFFER 'true'
DEEP_BUFFER_PCM_NAME 'Deepbuffer UAOL'
DEEP_BUFFER_PCM_ID 22
DEEP_BUFFER_PIPELINE_ID 214
Expand Down
72 changes: 72 additions & 0 deletions tools/topology/topology2/development/sof-hda-generic-uaol.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# HDA generic topology extended with the USB Audio Offload Link (UAOL).
#
# Development topology. The UAOL is not part of sof-hda-generic itself: the
# backend of a function which is not present on the machine makes the whole
# topology fail to load, and the UAOL DAIs only exist on ACE2 and newer
# platforms, with a kernel built for USB audio offload. Keeping it separate
# leaves sof-hda-generic loadable everywhere.
#
# Select it with:
# options snd_sof tplg_filename=sof-hda-generic-uaol.tplg
#
# The module parameter also stops the machine driver from appending the -idisp
# suffix, so this topology carries the iDisp backends unconditionally, as
# sof-hda-generic does.
#
# The UAOL function itself lives in platform/intel/uaol-generic.conf, and is
# shared with the cavs-uaol function topology of the sof_sdw card.

<searchdir:include>
<searchdir:include/common>
<searchdir:include/components>
<searchdir:include/dais>
<searchdir:include/pipelines>
<searchdir:include/pipelines/cavs>
<searchdir:platform>
<searchdir:platform/intel>

<sof-hda-generic.conf>

<uaol.conf>
<input_audio_format.conf>
<output_audio_format.conf>

Define {
UAOL_PLAYBACK_PCM 'UAOL Playback'
UAOL_CAPTURE_PCM 'UAOL Capture'
# The two directions are separate DAI links so that the format fixup of
# a link is decided by the DAI copier of that direction alone. The names
# are abbreviated because alsatplg drops widget tuples above 36 characters
# and the dai-copier name is 'dai-copier.UAOL.<name>.<direction>'
UAOL_PB_DAI_NAME 'UAOL0-Play'
UAOL_CP_DAI_NAME 'UAOL0-Cap'
# The BE IDs are the dai link IDs that are matched with the machine
# driver. skl_hda_dsp_generic assigns fixed IDs, so these are the same
# whichever other functions the board has
UAOL_PB_BE_ID 9
UAOL_CP_BE_ID 10
# UAOL_DAI_INDEX is the UAOL link the DSP uses, only link 0 is addressable
UAOL_DAI_INDEX 0
UAOL_PCM_NAME 'UAOL'
UAOL_PCM_ID 21
UAOL_PB_HOST_PIPELINE_ID 210
UAOL_PB_DAI_PIPELINE_ID 211
UAOL_CP_HOST_PIPELINE_ID 212
UAOL_CP_DAI_PIPELINE_ID 213
# Both paths pass through whatever the offloaded USB device asks for, so
# the PCM advertises everything a USB device may support. 7 channels is
# left out of the widget formats, it has no channel config and no channel
# map, so it is the one count in the range which cannot be run.
UAOL_CHANNELS_MIN 1
UAOL_CHANNELS_MAX 8
# UAOL supports up to 384 kHz
UAOL_RATE_MIN 8000
UAOL_RATE_MAX 384000
UAOL_RATES '8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,384000'

# The HDA playback already has the one deep buffer PCM the topology can
# hold, so the UAOL runs without one here
UAOL_DEEP_BUFFER 'false'
}

<platform/intel/uaol-generic.conf>
5 changes: 5 additions & 0 deletions tools/topology/topology2/development/tplg-targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,11 @@ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-nocodec-crossover.bin,EFX_CROSSOVE
"development/cavs-nocodec-rtcaec\;sof-tgl-nocodec-rtcaec\;PLATFORM=tgl,\
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-nocodec-rtcaec.bin"

# Topology to test the USB audio offload on an HDA machine, load it with
# snd_sof.tplg_filename=sof-hda-generic-uaol.tplg
"development/sof-hda-generic-uaol\;sof-hda-generic-uaol\;HDA_CONFIG=mix,HDA_MIC_ENHANCED_CAPTURE=true,\
EFX_HDA_MIC_TDFB_PARAMS=line2_pass,EFX_HDA_MIC_DRC_PARAMS=passthrough"

# SSP test topology for Data Processing SRC on MTL
"cavs-nocodec\;sof-mtl-nocodec-dp-test\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\
PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec.bin,SRC_DOMAIN=DP"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Every format the offloaded USB endpoint can carry: S16_LE, S24_LE and
# S32_LE, 1 to 8 channels and every standard rate from 8 to 192 kHz.
# S32_LE, 1 to 8 channels and every standard rate from 8 to 384 kHz.
#
# 7 channels is left out, it has no channel config and no channel map in
# common_definitions.conf.
num_input_audio_formats 315
num_input_audio_formats 336
CombineArrays.Object.Base.input_audio_format [
{
in_rate [
Expand All @@ -22,6 +22,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -46,6 +47,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -70,6 +72,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -94,6 +97,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -118,6 +122,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -142,6 +147,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -166,6 +172,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -190,6 +197,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -214,6 +222,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -238,6 +247,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -262,6 +272,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -286,6 +297,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand All @@ -310,6 +322,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 16 ]
in_valid_bit_depth [ 16 ]
Expand All @@ -334,6 +347,7 @@
128000
176400
192000
384000
]
in_bit_depth [ 32 ]
in_valid_bit_depth [ 24 32 ]
Expand Down
Loading
Loading