Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

topology2: add split topologies description #507

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

bardliao
Copy link

Describe what are split topologies and how to create it.

****************

Linux kernel can load multiple topologies, a topology for a single function.
This feature is useful when a single device is disabled in specific productuds. To achieve this, you need to split
Copy link
Contributor

Choose a reason for hiding this comment

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

typo: s/productuds/products


Linux kernel can load multiple topologies, a topology for a single function.
This feature is useful when a single device is disabled in specific productuds. To achieve this, you need to split
the topology into multiple tplg files. The split topology files should be named as follows:
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this is more useful to handle the mix and match nature of things?
Or actually to support SDCA setups with standardized components.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, lets call out this is to support SDCA standards.

.. code-block:: bash

sdca-jack
sdca-<n>amp where n is the amp link numbers
Copy link
Contributor

Choose a reason for hiding this comment

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

number of amps?

Copy link
Author

Choose a reason for hiding this comment

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

No, it is the amp link number. For example, if there are 2 amps on the same link, n should be 1. I.e. sdca-1amp


.. code-block:: bash

sdca-jack
Copy link
Contributor

Choose a reason for hiding this comment

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

this handles headphone, headset and line jack?

Copy link
Author

Choose a reason for hiding this comment

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

Yes, it includes the "Jack Out" and "Jack In" PCMs


sdca-jack
sdca-<n>amp where n is the amp link numbers
sdca-mic
Copy link
Contributor

Choose a reason for hiding this comment

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

chase build mic (analog or DMIC) and headset mic?

Copy link
Author

Choose a reason for hiding this comment

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

sdca-mic is for the build mic that connected to the SDW codecs. Not headset mic. The headset mic is handled by the sdca-jack device.

sdca-jack
sdca-<n>amp where n is the amp link numbers
sdca-mic
dmic-<n>ch where n is the channel numbers. Currently, only 2ch and 4ch are supported.
Copy link
Contributor

Choose a reason for hiding this comment

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

this is not SNDW connected DMIC or SNDW connected?

'where n is the number of supported channels'

Copy link
Member

Choose a reason for hiding this comment

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

do we have a max number of channels ? best to say either way.

Copy link
Author

Choose a reason for hiding this comment

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

this is not SNDW connected DMIC or SNDW connected?

This is for PCH-DMIC.

do we have a max number of channels ?

Currently only 2 and 4 channels are supported. So the max number of channels is 4.


.. code-block:: bash

sof-arl-sdca-2amp-id2.tplg
Copy link
Contributor

Choose a reason for hiding this comment

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

so in topology it is better to ship sof-arl-sdca-2amp-id[1-256].tplg to cover pretty much any place the 2amp can be?

Copy link
Author

Choose a reason for hiding this comment

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

Not necessary, the BE id of amp is fixed to 2 in the machine driver. Unless there is a special case, otherwise, -id2 is good enough.


The split topologies are the subset of the monolithic topology. Usually, you just need to add a description with proper
macro settings to disable the features that you don't need and set the first BE ID that in the topology in the cmake file
to generate the split topologies.
Copy link
Contributor

Choose a reason for hiding this comment

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

Can these topologies have dependencies in order of loading them, that one topology refers to some component from other topology?
LIke direct routing audio from mic to speaker via some processing.

Copy link
Author

Choose a reason for hiding this comment

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

We don't support this so far. Currently, all split topologies are independent.

sdca-<n>amp where n is the amp link numbers
sdca-mic
dmic-<n>ch where n is the channel numbers. Currently, only 2ch and 4ch are supported.
sdca-hdmi
Copy link
Contributor

Choose a reason for hiding this comment

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

SNDW connected display audio or HDA connected display audio in a system where other codecs are SNDW?

Copy link
Author

Choose a reason for hiding this comment

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

HDA connected display audio in a system where other codecs are SNDW.

@lgirdwood
Copy link
Member

@ranj063 pls review

Describe what are split topologies and how to create it.

Signed-off-by: Bard Liao <[email protected]>
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.

3 participants