summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/intel/skylake/skl.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index df36b8fe6d5e..41a084b3d48f 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -916,6 +916,21 @@ static int skl_first_init(struct hdac_bus *bus)
916 unsigned short gcap; 916 unsigned short gcap;
917 int cp_streams, pb_streams, start_idx; 917 int cp_streams, pb_streams, start_idx;
918 918
919 /*
920 * detect DSP by checking class/subclass/prog-id information
921 * class=04 subclass 03 prog-if 00: no DSP, legacy driver needs to be used
922 * class=04 subclass 01 prog-if 00: DSP is present (and may be required e.g. for DMIC or SSP support)
923 * class=04 subclass 03 prog-if 80: either of DSP or legacy mode can be used
924 */
925 if (pci->class == 0x040300) {
926 dev_err(bus->dev, "The DSP is not enabled on this platform, aborting probe\n");
927 return -ENODEV;
928 } else if (pci->class != 0x040100 && pci->class != 0x040380) {
929 dev_err(bus->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, aborting probe\n", pci->class);
930 return -ENODEV;
931 }
932 dev_info(bus->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
933
919 err = pci_request_regions(pci, "Skylake HD audio"); 934 err = pci_request_regions(pci, "Skylake HD audio");
920 if (err < 0) 935 if (err < 0)
921 return err; 936 return err;