[alsa-devel] [PATCH v5 1/2] ALSA: hda: add Intel DSP configuration / probe code

Jaroslav Kysela perex at perex.cz
Fri Oct 25 11:49:46 CEST 2019


Dne 24. 10. 19 v 22:33 Pierre-Louis Bossart napsal(a):
> 
> 
> On 10/22/19 12:43 PM, Jaroslav Kysela wrote:
>> For distributions, we need one place where we can decide
>> which driver will be activated for the auto-configation of the
>> Intel's HDA hardware with DSP. Actually, we cover three drivers:
>>
>> * Legacy HDA
>> * Intel SST
>> * Intel Sound Open Firmware (SOF)
>>
>> All those drivers registers similar PCI IDs, so the first
>> driver probed from the PCI stack can win. But... it is not
>> guaranteed that the correct driver wins.
>>
>> This commit changes Intel's NHLT ACPI module to a common
>> DSP probe module for the Intel's hardware. All above sound
>> drivers calls this code. The user can force another behaviour
>> using the module parameter 'dsp_driver' located in
>> the 'snd-intel-dspcfg' module.
>>
>> This change allows to add specific dmi checks for the specific
>> systems. The examples are taken from the pull request:
>>
>>     https://github.com/thesofproject/linux/pull/927
>>
>> Tested on Lenovo Carbon X1 7th gen.
> 
> Jaroslav, I found a case where the logic doesn't seem to work as intended.
> 
> the code currently scans through the table looking for a PCI ID match,
> and a DMI match for quirks.
> 
> On a KBL NUC device with the DSP enabled, we go through the entire list
> without finding a match, which means we return the _ANY flag. so if we
> try to probe the snd-soc-skl driver, the checks will allow the driver to
> continue, despite this configuration not being supported.
> 
> It was my understanding that we would always load the legacy driver
> *unless* there is a match in the table? If yes, there we can change the
> default this way:
> 
> @@ -333,7 +355,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
>           /* find the configuration for the specific device */
>           cfg = snd_intel_dsp_find_config(pci, config_table,
> ARRAY_SIZE(config_table));
>           if (!cfg)
> -               return SND_INTEL_DSP_DRIVER_ANY;
> +               return SND_INTEL_DSP_DRIVER_LEGACY;
> 
> Or we need to add a case where we force the legacy in the table for each
> platform.

I would prefer to add another entry to the configuration table without .flags 
(or .flags = 0) with a comment, why the legacy driver is selected by default 
even if the DSP is present.

				Thanks,
					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list