+struct avs_path {
+ u32 dma_id;
that is very surprising...
This would seem to limit the concept of an avs path to a single host DMA
channel, which somewhat contradicts that there can be multiple pipelines
in the same path, or that a path can contain mixers.
And even if this is a single dma, what does this represent? the
stream_tag? the BE DMA for SSP/DMIC?
Please clarify the concepts first, it's frustrating to discover this at
patch 8.
A single path is tied to either FE or BE. So at most to a single,
user-visible endpoint if it's FE. If there are more FEs, then we move to
NxFE <-> 1xBE scenario. You can have many pipelines forming the path -
most of the pipelines do not contain module connected to any gateway
(HDA/SSP/DMIC etc.) anyway.
This should have been explained in the cover letter.
Assuming that there's a single Back-End that can handle all possible
routing cases is a very narrow interpretation of how DPCM is supposed to
be used, and it adds quite a few opens on routing changes that can't be
handled with regular triggers. What happens when not all interfaces are
handled by the DSP 'gateway' is also interesting.