ASoC: Intel: avs: Topology and path management
authorMark Brown <broonie@kernel.org>
Wed, 20 Apr 2022 13:22:05 +0000 (14:22 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 20 Apr 2022 13:22:05 +0000 (14:22 +0100)
commite1bbfccf3c52944dbdb83d8333dba4ae6b8a094c
tree52d9930d88ceaaae1b4d15fa73cfee7b80f9872a
parent89d2bce7e6f10bc361c8b9221afcb3e0d3188aeb
parent274d79e5187558078fcf107445fe56ab2fbe4c97
ASoC: Intel: avs: Topology and path management

Merge series from Cezary Rojewski <cezary.rojewski@intel.com>:

A continuation of avs-driver initial series [1]. This chapter covers
path management and topology parsing part which was ealier path of the
main series. The two patches that represented these two subjects in the
initial series, have been split into many to allow for easier review and
discussion.

AVS topology is split into two major parts: dictionaries - found within
ASoC topology manifest - and path templates.

Dictionaries job is to reduce the total amount of memory
occupied by topology elements. Rather than having every pipeline and
module carry its own information, each refers to specific entry in
specific dictionary by provided (from topology file) indexes. In
consequence, most struct avs_tplg_xxx are made out of pointers.

Path templates are similar to path descriptions found in skylake-driver
and they describe how given path shall look like in runtime - number of
modules and pipelines that shape it and how they are laid out. A single
path template is tied either to FE or BE and thus at most to a single,
user-visible endpoint when speaking of FE.

Path is a software representation of its ADSP firmware equivalent. It's
a logical container for pipelines which are themselves containers - this
time for modules i.e. processing units.
Depending on the number of audio formats supported, each path template
may carry one or more descriptions of given path. During runtime, when
audio format is known, description matching said format is selected and
used when instantiating path on ADSP firmware side through IPCs.