This is a reference topology, and it was successfully validated on few production laptops (including models on which DMIC capture was not working).
The topology exposes a path that's not present in the hardware then?
Sorry, I don't understand what's missing in the cAVS driver?
All you need is to select a different topology based on the number of DMICs detected.
We have a mechanism to choose the PCM configuration of given topology path via amixer control. That way we can include both 2ch and 4ch DMIC configurations in one topology file and simply change DMIC pipeline configuration on runtime.
Unfortunately this mechanism is not currently available on upstream.
As said before, this is a reference topology, if needed I can also upload modified version with 4ch DMIC path.
I don't understand the concept of 'reference topology'. It's not like anyone is going to modify this file, which is seriously cryptic, so it's got to be a 'usable topology', turn-key really.
You would need three files, with no dmic, with 2 dmic with 4 dmic and a driver level code selection. Today the code loads the topology name coming from NHLT or dfw_sst.bin, you'd need a more elaborate logic to deal with the hardware variants and without requiring any fiddling, rename or edits of topology files.