ALSA: hda: intel-dsp-config: ignore dsp_driver parameter for PCI legacy devices
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 12 Nov 2020 22:38:25 +0000 (16:38 -0600)
committerMark Brown <broonie@kernel.org>
Thu, 19 Nov 2020 18:24:44 +0000 (18:24 +0000)
On Haswell/Broadwell/Baytrail/Braswell, the DSP is not used for the
HDMI/DP interface, and setting the dsp_driver parameter to a value > 1
has the side effect of preventing the HDaudio legacy driver from
probing.

The DSP driver selection should really only handle cases where a DSP
is actually used. This patch traps all known PCI devices and makes
sure the HDaudio driver can always be probed.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-15-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/hda/intel-dsp-config.c

index 0dc079b..6a0d070 100644 (file)
@@ -379,6 +379,20 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
        if (pci->vendor != 0x8086)
                return SND_INTEL_DSP_DRIVER_ANY;
 
+       /*
+        * Legacy devices don't have a PCI-based DSP and use HDaudio
+        * for HDMI/DP support, ignore kernel parameter
+        */
+       switch (pci->device) {
+       case 0x160c: /* Broadwell */
+       case 0x0a0c: /* Haswell */
+       case 0x0c0c:
+       case 0x0d0c:
+       case 0x0f04: /* Baytrail */
+       case 0x2284: /* Braswell */
+               return SND_INTEL_DSP_DRIVER_ANY;
+       }
+
        if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
                return dsp_driver;