Skip to content

Commit ec86f80

Browse files
rfvirgillgirdwood
authored andcommitted
topology2: sdw-jack-generic: Make capture widgets honor SDW_JACK_CAPTURE_CH
The BE DAI and all widgets in the capture path should honor the number of capture channels set by SDW_JACK_CAPTURE_CH. Before this change, the value of SDW_JACK_CAPTURE_CH only affected the min/max channels of the FE DAI but all the other widgets in the pipeline were defaulting to 2-channel. Because of this, the codec DAI was always asked for a 2-channel capture, which won't work on codecs that only support 1 channel. And the host-copier output was 2-channel audio that could not be connected to the 1-channel DAI. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
1 parent 6f36fe6 commit ec86f80

1 file changed

Lines changed: 83 additions & 1 deletion

File tree

tools/topology/topology2/platform/intel/sdw-jack-generic.conf

Lines changed: 83 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ Object.Dai.ALH [
3838
name $SDW_JACK_IN_STREAM
3939
default_hw_conf_id 0
4040
rate $JACK_RATE
41-
channels 2
41+
channels $SDW_JACK_CAPTURE_CH
42+
4243

4344
Object.Base.hw_config.1 {
4445
id 0
@@ -344,8 +345,15 @@ Object.Pipeline.host-gateway-capture [
344345
Object.Base.input_audio_format [
345346
{
346347
in_rate $JACK_RATE
348+
in_channels $SDW_JACK_CAPTURE_CH
347349
in_bit_depth 32
348350
in_valid_bit_depth 32
351+
IncludeByKey.SDW_JACK_CAPTURE_CH {
352+
"1" {
353+
in_ch_map $CHANNEL_MAP_MONO
354+
in_ch_cfg $CHANNEL_CONFIG_MONO
355+
}
356+
}
349357
}
350358
]
351359
IncludeByKey.PCM_FORMAT_ALL {
@@ -354,30 +362,65 @@ Object.Pipeline.host-gateway-capture [
354362
Object.Base.output_audio_format [
355363
{
356364
out_rate $JACK_RATE
365+
out_channels $SDW_JACK_CAPTURE_CH
357366
out_bit_depth 16
358367
out_valid_bit_depth 16
368+
IncludeByKey.SDW_JACK_CAPTURE_CH {
369+
"1" {
370+
out_ch_map $CHANNEL_MAP_MONO
371+
out_ch_cfg $CHANNEL_CONFIG_MONO
372+
}
373+
}
359374
}
360375
{
361376
out_rate $JACK_RATE
377+
out_channels $SDW_JACK_CAPTURE_CH
362378
out_bit_depth 32
363379
out_valid_bit_depth 24
380+
IncludeByKey.SDW_JACK_CAPTURE_CH {
381+
"1" {
382+
out_ch_map $CHANNEL_MAP_MONO
383+
out_ch_cfg $CHANNEL_CONFIG_MONO
384+
}
385+
}
364386
}
365387
{
366388
out_rate $JACK_RATE
389+
out_channels $SDW_JACK_CAPTURE_CH
367390
out_bit_depth 32
368391
out_valid_bit_depth 32
392+
IncludeByKey.SDW_JACK_CAPTURE_CH {
393+
"1" {
394+
out_ch_map $CHANNEL_MAP_MONO
395+
out_ch_cfg $CHANNEL_CONFIG_MONO
396+
}
397+
}
369398
}
370399
{
371400
out_rate $JACK_RATE
401+
out_channels $SDW_JACK_CAPTURE_CH
372402
out_bit_depth 32
373403
out_valid_bit_depth 32
374404
out_sample_type $SAMPLE_TYPE_FLOAT
405+
IncludeByKey.SDW_JACK_CAPTURE_CH {
406+
"1" {
407+
out_ch_map $CHANNEL_MAP_MONO
408+
out_ch_cfg $CHANNEL_CONFIG_MONO
409+
}
410+
}
375411
}
376412
{
377413
out_rate $JACK_RATE
414+
out_channels $SDW_JACK_CAPTURE_CH
378415
out_bit_depth 8
379416
out_valid_bit_depth 8
380417
out_sample_type $SAMPLE_TYPE_UNSIGNED_INTEGER
418+
IncludeByKey.SDW_JACK_CAPTURE_CH {
419+
"1" {
420+
out_ch_map $CHANNEL_MAP_MONO
421+
out_ch_cfg $CHANNEL_CONFIG_MONO
422+
}
423+
}
381424
}
382425
]
383426
}
@@ -386,18 +429,39 @@ Object.Pipeline.host-gateway-capture [
386429
Object.Base.output_audio_format [
387430
{
388431
out_rate $JACK_RATE
432+
out_channels $SDW_JACK_CAPTURE_CH
389433
out_bit_depth 16
390434
out_valid_bit_depth 16
435+
IncludeByKey.SDW_JACK_CAPTURE_CH {
436+
"1" {
437+
out_ch_map $CHANNEL_MAP_MONO
438+
out_ch_cfg $CHANNEL_CONFIG_MONO
439+
}
440+
}
391441
}
392442
{
393443
out_rate $JACK_RATE
444+
out_channels $SDW_JACK_CAPTURE_CH
394445
out_bit_depth 32
395446
out_valid_bit_depth 24
447+
IncludeByKey.SDW_JACK_CAPTURE_CH {
448+
"1" {
449+
out_ch_map $CHANNEL_MAP_MONO
450+
out_ch_cfg $CHANNEL_CONFIG_MONO
451+
}
452+
}
396453
}
397454
{
398455
out_rate $JACK_RATE
456+
out_channels $SDW_JACK_CAPTURE_CH
399457
out_bit_depth 32
400458
out_valid_bit_depth 32
459+
IncludeByKey.SDW_JACK_CAPTURE_CH {
460+
"1" {
461+
out_ch_map $CHANNEL_MAP_MONO
462+
out_ch_cfg $CHANNEL_CONFIG_MONO
463+
}
464+
}
401465
}
402466
]
403467
}
@@ -444,17 +508,31 @@ Object.Widget {
444508
Object.Base.input_audio_format [
445509
{
446510
in_rate $JACK_RATE
511+
in_channels $SDW_JACK_CAPTURE_CH
447512
in_bit_depth 32
448513
in_valid_bit_depth $SDW_LINK_VALID_BITS
449514
in_sample_type $SAMPLE_TYPE_MSB_INTEGER
450515
in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]"
516+
IncludeByKey.SDW_JACK_CAPTURE_CH {
517+
"1" {
518+
in_ch_map $CHANNEL_MAP_MONO
519+
in_ch_cfg $CHANNEL_CONFIG_MONO
520+
}
521+
}
451522
}
452523
]
453524
Object.Base.output_audio_format [
454525
{
455526
out_rate $JACK_RATE
527+
out_channels $SDW_JACK_CAPTURE_CH
456528
out_bit_depth 32
457529
out_valid_bit_depth 32
530+
IncludeByKey.SDW_JACK_CAPTURE_CH {
531+
"1" {
532+
out_ch_map $CHANNEL_MAP_MONO
533+
out_ch_cfg $CHANNEL_CONFIG_MONO
534+
}
535+
}
458536
}
459537
]
460538
}
@@ -478,13 +556,15 @@ Object.Widget {
478556
Object.Base.input_audio_format [
479557
{
480558
in_rate $JACK_RATE
559+
in_channels $SDW_JACK_CAPTURE_CH
481560
in_bit_depth 32
482561
in_valid_bit_depth 32
483562
}
484563
]
485564
Object.Base.output_audio_format [
486565
{
487566
out_rate $JACK_RATE
567+
out_channels $SDW_JACK_CAPTURE_CH
488568
out_bit_depth 32
489569
out_valid_bit_depth 32
490570
}
@@ -505,13 +585,15 @@ Object.Widget {
505585
Object.Base.input_audio_format [
506586
{
507587
in_rate $JACK_RATE
588+
in_channels $SDW_JACK_CAPTURE_CH
508589
in_bit_depth 32
509590
in_valid_bit_depth 32
510591
}
511592
]
512593
Object.Base.output_audio_format [
513594
{
514595
out_rate $JACK_RATE
596+
out_channels $SDW_JACK_CAPTURE_CH
515597
out_bit_depth 32
516598
out_valid_bit_depth 32
517599
}

0 commit comments

Comments
 (0)