Skip to content

topology2: Split the configuration of dolby-dax on the headphone#10642

Open
checkupup wants to merge 1 commit intothesofproject:mainfrom
checkupup:main_dax_headset_tplg
Open

topology2: Split the configuration of dolby-dax on the headphone#10642
checkupup wants to merge 1 commit intothesofproject:mainfrom
checkupup:main_dax_headset_tplg

Conversation

@checkupup
Copy link
Contributor

@checkupup checkupup commented Mar 23, 2026

On certain platforms, such as Intel PTL, memory limitations prevent the creation of two instances simultaneously on both the speaker and headphone pipelines. Therefore, new configuration SSP_HEADSET_DAX for cavs-rt5682 and SDW_JACK_PIPELINE_SRC for cavs-sdw have been added to allow users to decide whether to enable DAX on both the speaker and headphone pipelines based on the platform's capabilities.

Additionally, to maintain the readability of the cavs-sdw configuration file, the sdw-dax files for the speaker and headphone have been separated into their own files.

sdw-amp-dax.conf: Based on sdw-amp-generic.conf, remove all logic where PASSTHROUGH is set to true and SDW_SPK_ENHANCED_PLAYBACK is set to false, and add the dolby-dax widget

sdw-jack-dax.conf: Based on sdw-jack-generic.conf, remove all logic where PASSTHROUGH is set to true and SDW_SPK_ENHANCED_PLAYBACK is set to false, and add the dolby-dax widget

@sofci
Copy link
Collaborator

sofci commented Mar 23, 2026

Can one of the admins verify this patch?

reply test this please to run this test once

mixout-gain-dax-alh-dai-copier-playback [
{
index 1
IncludeByKey.DAX_HEADSET {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@checkupup would this not be better at the level above ? i.e. we have a sdw-jack-dax.conf file and we include that OR sdw-jack-generic.conf in the higher level conf file using the DAX options.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. I think we can create a sdw-jack-dax.conf and sdw-amp-dax.conf to extract out DAX-related variation, and use IncludeKey.USE_DAX to choose to include either -dax.conf or -generic.conf. These 2 files now are not that friendly to read.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe like this?

IncludeByKey.NUM_SDW_AMP_LINKS {
	"[1-3]" {
		IncludeByKey.SWD_AMP_PIPELINE_SRC {
			"generic"	"platform/intel/sdw-amp-generic.conf" # drc and volume only
			"passthrough"	"platform/intel/sdw-amp-passthrough.conf"
			"xover"		"platform/intel/sdw-amp-xover.conf"
			"dax"		"platform/intel/sdw-amp-dax.conf"
		}
	}
}

IncludeByKey.SDW_JACK_PIPELINE_SRC {
	"generic"	"platform/intel/sdw-jack-generic.conf"
	"passthrough"	"platform/intel/sdw-jack-passthrough.conf"
	"dax"		"platform/intel/sdw-jack-dax.conf"
}

I'm thinking of submitting another change to reorganize this logic.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, like that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have split new dax conf files in the newest commit.

@lgirdwood
Copy link
Member

test this please

@lgirdwood
Copy link
Member

@checkupup btw, what are the memory requirements for DAX in this configuration ? I guess we are good for TEXT, DATA and RODATA sections, but I assume the gap is for continuous memory on the heap for 2 instances (what size) ?

@johnylin76
Copy link
Contributor

@checkupup btw, what are the memory requirements for DAX in this configuration ? I guess we are good for TEXT, DATA and RODATA sections, but I assume the gap is for continuous memory on the heap for 2 instances (what size) ?

The memory requirements are on runtime heap memory. While starting to run, one DAX module will allocate ~590kB dynamic buffer.

Copy link
Contributor

@johnylin76 johnylin76 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I have also verified on my end, thanks.

On certain platforms, such as Intel PTL, memory limitations prevent the
creation of two instances simultaneously on both the speaker and
headphone pipelines. Therefore, new configuration SSP_HEADSET_DAX for
cavs-rt5682 and SDW_JACK_PIPELINE_SRC for cavs-sdw have been added to
allow users to decide whether to enable DAX on both the speaker and
headphone pipelines based on the platform's capabilities.

Additionally, to maintain the readability of the cavs-sdw configuration
file, the sdw-dax files for the speaker and headphone have been
separated into their own files.

sdw-amp-dax.conf: Based on sdw-amp-generic.conf, remove all logic where
PASSTHROUGH is set to true and SDW_SPK_ENHANCED_PLAYBACK is set to false,
and add the dolby-dax widget

sdw-jack-dax.conf: Based on sdw-jack-generic.conf, remove all logic
where PASSTHROUGH is set to true and SDW_SPK_ENHANCED_PLAYBACK is set
to false, and add the dolby-dax widget

Signed-off-by: Jun Lai <jun.lai@dolby.com>
@checkupup checkupup force-pushed the main_dax_headset_tplg branch from 093db05 to 504a85f Compare March 26, 2026 07:24
@checkupup checkupup changed the title topology2: isolated dolby-dax widget setting on headphone topology2: Split the configuration of dolby-dax on the headphone Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants