* 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;
                        }

Reply via email to