Open dvandok opened 1 year ago
would add the DMIC-PDM1 label but I cannot
@dvandok thanks for reporting this and confirming that the pdm1 workaround works. Unfortunately we have no means to detect this automagically at the kernel level.
what we could do though is add a set of udev rules to select this topology option by default on specific systems. This is something we've discussed in the past but never acted on, adding @lgirdwood and @kv2019i on this topic.
I fear this is a major usability issue for laptops and handheld devices as they are commonly used for voice and video calls. Is this topology tied to the specific sound chip, or could that even be different between different vendors? The issues page linked above mentions the way Chromebooks seem to handle this (always expose 4 channels, drop the unpopulated channels) and that it is not possible (yet) in upstream UCM/Linux. Would that be the way to solve it, though? I think this might be worth a bump in priority.
@dvandok i understand the frustration but we have no descriptors or indicators from PCI, ACPI or DMI telling us which PDM interface is used. The Chrome case is different, they always use 4 channels but have platform-specific UCM configurations that extract the correct channels.
We have zero information for plain Linux, so no amount of priority escalation will help. This problem affects specific OEMs more than others, my guess is that 95% of platforms rely on PDM0 and 5% on PDM1, if that.
Installation of Debian 12 (bookworm, testing) on laptop with manually adding latest SOF firmware results in a working audio set up with the exception of the microphone.
I've followed guidance on https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html#digital-mic-issues to replace the topology file and use PDM1 and that worked.
Files were taken from sof-v2.24.
Not sure if this needs to be tracked for every type of device or if another solution is in the works. In any case, the hardware report is here:
https://linux-hardware.org/?probe=19a72f502b
Here is a snippet from syslog, let me know if it helps to add more detail.