+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.