Skip to content

Commit 60f2713

Browse files
committed
topology2: Rename AW88399 Post Mixer control to Master
Align the AW88399 smart-amp topology with the codec fixup by renaming the SOF gain control to "Master Playback Volume". KDE/PipeWire will now bind to the existing control name without needing extra UCM rules. Signed-off-by: Yakov Till <yakov.till@gmail.com>
1 parent 0360d21 commit 60f2713

1 file changed

Lines changed: 55 additions & 52 deletions

File tree

tools/topology/topology2/sof-hda-generic-aw88399.conf

Lines changed: 55 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ Define {
6565
# SSP1 is the most common for smart amps, but variants are built for all ports
6666
AW_SMART_STREAM_NAME 'SSP1-Codec'
6767
AW_SMART_SSP_INDEX 1
68+
AW_SMART_HOST_PIPELINE_ID 30
69+
AW_SMART_PCM_ID 32
70+
AW_SMART_PCM_NAME 'AW88399 Speakers'
6871
SSP_BLOB_VERSION $SSP_BLOB_VERSION_1_5
6972
}
7073

@@ -215,7 +218,7 @@ Object.Widget.virtual [
215218
}
216219
]
217220

218-
Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback [
221+
Object.Pipeline.mixout-gain-dai-copier-playback [
219222
{
220223
index $AW_SMART_PIPELINE_ID
221224

@@ -225,78 +228,60 @@ Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback [
225228
copier_type "SSP"
226229
stream_name $AW_SMART_STREAM_NAME
227230
node_type $I2S_LINK_OUTPUT_CLASS
228-
num_input_audio_formats 1
229-
num_output_audio_formats 1
230-
Object.Base.input_audio_format [
231-
{
232-
in_rate 48000
233-
in_bit_depth 32
234-
in_valid_bit_depth 32
235-
}
236-
]
237-
Object.Base.output_audio_format [
238-
{
239-
out_rate 48000
240-
out_bit_depth 32
241-
out_valid_bit_depth 32
242-
}
243-
]
244231
}
245232

246233
Object.Widget.gain.1 {
247234
Object.Control.mixer.1 {
248-
name 'Post Mixer AW88399 Playback Volume'
249-
}
250-
}
251-
252-
Object.Widget.smart_amp.1 {
253-
Object.Control.bytes."1" {
254-
name 'HDA AW88399 smart_amp_init'
235+
name 'Master Playback Volume'
255236
}
256237
}
257238
}
258239
]
259240

260-
Object.Pipeline.dai-copier-gain-eqiir-module-copier-capture [
241+
Object.Pipeline.host-copier-gain-mixin-playback [
261242
{
262-
index 21
263-
264-
Object.Widget.dai-copier.1 {
265-
dai_index $AW_SMART_SSP_INDEX
266-
dai_type "SSP"
267-
copier_type "SSP"
268-
stream_name $AW_SMART_STREAM_NAME
269-
node_type $I2S_LINK_INPUT_CLASS
270-
Object.Base.output_pin_binding.1 {
271-
output_pin_binding_name "smart_amp.20.1"
272-
}
273-
}
274-
275-
Object.Widget.module-copier."2" {
276-
stream_name $AW_SMART_STREAM_NAME
243+
index $AW_SMART_HOST_PIPELINE_ID
244+
Object.Widget.host-copier.1 {
245+
stream_name $AW_SMART_PCM_NAME
246+
pcm_id $AW_SMART_PCM_ID
277247
}
278-
279248
Object.Widget.gain.1 {
280249
Object.Control.mixer.1 {
281-
name 'AW88399 Capture Volume'
250+
name 'Pre Mixer AW88399 Playback Volume'
282251
}
283252
}
253+
Object.Widget.mixin.1 {}
254+
Object.Widget.pipeline.1 {
255+
priority 0
256+
lp_mode 0
257+
}
284258
}
285259
]
286260

287261
Object.Base.route [
288262
{
289-
source 'mixin.1.1'
290-
sink 'mixout.20.1'
263+
source "host-copier.$AW_SMART_PCM_ID.playback"
264+
sink "gain.$AW_SMART_HOST_PIPELINE_ID.1"
265+
}
266+
{
267+
source "gain.$AW_SMART_HOST_PIPELINE_ID.1"
268+
sink "mixin.$AW_SMART_HOST_PIPELINE_ID.1"
269+
}
270+
]
271+
272+
Object.Base.route [
273+
{
274+
source "mixin.$AW_SMART_HOST_PIPELINE_ID.1"
275+
sink "mixout.$AW_SMART_PIPELINE_ID.1"
276+
}
277+
{
278+
source "mixout.$AW_SMART_PIPELINE_ID.1"
279+
sink "gain.$AW_SMART_PIPELINE_ID.1"
280+
}
281+
{
282+
source "gain.$AW_SMART_PIPELINE_ID.1"
283+
sink "dai-copier.SSP.$AW_SMART_STREAM_NAME.playback"
291284
}
292-
{
293-
source 'smart_amp.20.1'
294-
sink "dai-copier.SSP.$AW_SMART_STREAM_NAME.playback"
295-
}
296-
{
297-
source "dai-copier.SSP.$AW_SMART_STREAM_NAME.capture"
298-
sink 'smart_amp.20.1'
299-
}
300285
]
301286

302287
Object.Dai.SSP [
@@ -322,3 +307,21 @@ Object.Dai.SSP [
322307
}
323308
}
324309
]
310+
311+
Object.PCM.pcm [
312+
{
313+
name $AW_SMART_PCM_NAME
314+
id $AW_SMART_PCM_ID
315+
direction "playback"
316+
Object.Base.fe_dai.1 {
317+
name $AW_SMART_PCM_NAME
318+
}
319+
Object.PCM.pcm_caps.1 {
320+
direction "playback"
321+
name $AW_SMART_PCM_NAME
322+
formats 'S32_LE,S24_LE,S16_LE'
323+
rate_min 48000
324+
rate_max 48000
325+
}
326+
}
327+
]

0 commit comments

Comments
 (0)