ASoC: SOF: ipc4-topology: Advertise passthrough capable PCMs (using ChainDMA)
If a PCM is set to use ChainDMA then add it to the card->components string
after a marker of iec61937-pcm:, for example on current HDA platforms where
HDMI is set to use ChainDMA:
iec61937-pcm:5,4,3 (the ordr of the PCM ids can differ)
UCM is expected to parse and use this property to allow applications to
use bytsestream passthrough in a standard way.
Changes since v1:
- replace 'hdmi-pt:1' with a simple 'hdmi-pt'
Changes since v2:
- depends on https://github.com/thesofproject/linux/pull/4928 because now the old components string is freed.
- the new implementation will collect the PCM ids after a
iec958-pcm:tag and user space is expected to use this to figure things out (on HDA board we know that PCM 3-5 is the HDMI for example)
Likely going to WARN on HDA setups with dmic....
Changes since v3:
- Updated the commit message to reflect the hdmi-pt -> iec958-pcm:
change
Changes since v4:
- replaced the iec958-pcm with iec61937-pcm (iec958 is S/PDIF, iec61937 is the bytestream standard)
Changes since v5:
- fixed typos in commit message
@plbossart, @kv2019i, @ranj063, I guess the main question around this is: will it scale to S/PDIF PCM and how we will deal with compress? Compress is, well, compressed and it has it's own API to query what it supports, so... I think this should scale for normal PCMs.
Accompanying UCM patches: https://github.com/ujfalusi/alsa-ucm-conf/commits/topic/sof-hdmi/