From: Mark Brown Date: Wed, 20 Apr 2022 13:22:05 +0000 (+0100) Subject: ASoC: Intel: avs: Topology and path management X-Git-Tag: v6.6.17~6759^2~68^2~125 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e1bbfccf3c52944dbdb83d8333dba4ae6b8a094c;p=platform%2Fkernel%2Flinux-rpi.git ASoC: Intel: avs: Topology and path management Merge series from Cezary Rojewski : 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. --- e1bbfccf3c52944dbdb83d8333dba4ae6b8a094c