On 2019-09-23 18:57, Jaroslav Kysela wrote:
There are basically three drivers for the PCI devices for the recent Intel hardware with the build-in DSPs. The legacy HDA driver has dmic_detect module option for the auto detection of the platforms with the digital microphone. Because the SOF driver is preferred, just skip PCI probe in the Skylake SST driver when the PCI device ID clashes by default. The user can override the auto behaviour with the pci_binding module parameter.
Honestly, the SKL/ SOF/ legacy enumeration is complicated enough and I don't think it needs yet enough if or else.
On top of that, some of platforms listed here are shared by both and you cannot just enable SOF interface by default there.
Boot log from Lenovo Carbon X1 (7th gen) with the default settings:
snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, aborting probe snd_soc_skl 0000:00:1f.3: SOF driver is preferred on this platform, aborting probe sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380 ....
Perhaps, it may be more wise to create one shared module and all three drivers should call the driver detection routine(s) from one place.
This. It is the only right path to follow.
-
In general there are greater plans ahead as cAVS interface is actually the preferred one. That has been already committed by Intel. The details of actual merge of both drivers to solve the enumeration-and-other issues are still being worked on as that is quite a task : )
Czarek