* Linus Torvalds <torva...@linux-foundation.org> wrote:
> On Thu, Dec 20, 2018 at 7:38 AM Takashi Iwai <ti...@suse.de> wrote: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git > > tags/sound-4.21-rc1 > > Hmm. > > It turns out that commit c337104b1a16 ("ALSA: HD-Audio: SKL+: abort > probe if DSP is present and Skylake driver selected") causes my laptop > (XPS13 9350) to no longer suspend. Just a wild guess, I can see two ways in which that commit could make a difference on your setup: 1) If any of these is not set in your .config: + select SND_HDA_INTEL_DSP_DETECTION_SKL if SND_SOC_INTEL_SKL + select SND_HDA_INTEL_DSP_DETECTION_APL if SND_SOC_INTEL_APL + select SND_HDA_INTEL_DSP_DETECTION_KBL if SND_SOC_INTEL_KBL + select SND_HDA_INTEL_DSP_DETECTION_GLK if SND_SOC_INTEL_GLK + select SND_HDA_INTEL_DSP_DETECTION_CNL if SND_SOC_INTEL_CNL + select SND_HDA_INTEL_DSP_DETECTION_CFL if SND_SOC_INTEL_CFL I.e. I'd enable all of the SND_SOC_INTEL_* options to cover this angle. 2) There's the added logic of checking whether the DSP is enabled: + /* check if this driver can be used on SKL+ Intel platforms */ + if ((pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) && + pci->class != 0x040300) + return -ENODEV; + if pci->class is not 0x040300 the driver could end up not detecting the device while previously it would. That code goes through several transformations later on - but the hack below should make the commit an invariant. I think. Totally untested though. Thanks, Ingo ==============> sound/pci/hda/hda_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index e42cc2230977..f9e9c87f6d15 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -2056,7 +2056,7 @@ static int azx_probe(struct pci_dev *pci, if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) { switch (skl_pci_binding) { case SND_SKL_PCI_BIND_AUTO: - if (pci->class != 0x040300) { + if (0 && pci->class != 0x040300) { dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n"); return -ENODEV; }