+SectionPCMCapabilities."DMIC-Capture" { + formats "S16_LE" + rates "48000" + channels_min "2" + channels_max "2" + sig_bits "16" +}
NHLT reports 4 microphones on a number of devices, is there any specific reason to limit the capture to 2ch?
I believe the generic Hdaudio card now reports the number of channels to pulseaudio, so it's possible that PulseAudio would open a 4ch stream but be told sorry no can do by topology.
FWIW we ended-up selecting different topology files in SOF, depending on whether we had 0, 2 or 4 mics.
This patch was prepared to address many issues regarding broken DMIC configurations.
You are right - there are different DMIC configurations on different devices, but, since path multi-configuration feature is not upstreamed in cAVS driver, we are not able to include all of these in one topology file.
This is a reference topology, and it was successfully validated on few production laptops (including models on which DMIC capture was not working).
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.