Lines Matching +full:dsp +full:- +full:based

1 // SPDX-License-Identifier: GPL-2.0
12 #include <sound/intel-dsp-config.h>
13 #include <sound/intel-nhlt.h>
14 #include <sound/soc-acpi.h>
21 MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF, 4…
47 * - the order of similar PCI ID entries is important!
48 * - the first successful match will win
61 * Chromebooks (SST), as well as devices based on the ES8336 codec
121 DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
136 * Chromebooks and devices based on the ES8336 codec
166 * When the Chromebook quirk is not present, it's based on information
168 * either based on product information or a placeholder.
184 .ident = "UP-WHL",
225 /* Cometlake-LP */
261 /* Cometlake-H */
363 .ident = "UPX-TGL",
510 /* Meteorlake-P */
515 /* ArrowLake-S */
529 /* Lunarlake-P */
551 device = pci->device; in snd_intel_dsp_find_config()
552 for (; len > 0; len--, table++) { in snd_intel_dsp_find_config()
553 if (table->device != device) in snd_intel_dsp_find_config()
555 if (table->dmi_table && !dmi_check_system(table->dmi_table)) in snd_intel_dsp_find_config()
557 if (table->codec_hid) { in snd_intel_dsp_find_config()
560 for (i = 0; i < table->codec_hid->num_codecs; i++) { in snd_intel_dsp_find_config()
564 if (!acpi_dev_present(table->codec_hid->codecs[i], NULL, -1)) in snd_intel_dsp_find_config()
567 nhlt = intel_nhlt_init(&pci->dev); in snd_intel_dsp_find_config()
569 dev_warn(&pci->dev, "%s: NHLT table not found, skipped HID %s\n", in snd_intel_dsp_find_config()
570 __func__, table->codec_hid->codecs[i]); in snd_intel_dsp_find_config()
583 dev_warn(&pci->dev, "%s: no valid SSP found for HID %s, skipped\n", in snd_intel_dsp_find_config()
584 __func__, table->codec_hid->codecs[i]); in snd_intel_dsp_find_config()
586 if (i == table->codec_hid->num_codecs) in snd_intel_dsp_find_config()
600 if (acpi_nhlt_find_endpoint(ACPI_NHLT_LINKTYPE_PDM, -1, -1, -1)) in snd_intel_dsp_check_dmic()
615 handle = ACPI_HANDLE(&pci->dev); in snd_intel_dsp_check_soundwire()
635 if (pci->vendor != PCI_VENDOR_ID_INTEL) in snd_intel_dsp_driver_probe()
639 * Legacy devices don't have a PCI-based DSP and use HDaudio in snd_intel_dsp_driver_probe()
642 switch (pci->device) { in snd_intel_dsp_driver_probe()
656 * detect DSP by checking class/subclass/prog-id information in snd_intel_dsp_driver_probe()
657 * class=04 subclass 03 prog-if 00: no DSP, use legacy driver in snd_intel_dsp_driver_probe()
658 * class=04 subclass 01 prog-if 00: DSP is present in snd_intel_dsp_driver_probe()
660 * class=04 subclass 03 prog-if 80: use DSP or legacy mode in snd_intel_dsp_driver_probe()
662 if (pci->class == 0x040300) in snd_intel_dsp_driver_probe()
664 if (pci->class != 0x040100 && pci->class != 0x040380) { in snd_intel_dsp_driver_probe()
665 …dev_err(&pci->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, selecting HDAud… in snd_intel_dsp_driver_probe()
669 dev_dbg(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class); in snd_intel_dsp_driver_probe()
676 if (cfg->flags & FLAG_SOF) { in snd_intel_dsp_driver_probe()
677 if (cfg->flags & FLAG_SOF_ONLY_IF_SOUNDWIRE && in snd_intel_dsp_driver_probe()
679 dev_info_once(&pci->dev, "SoundWire enabled on CannonLake+ platform, using SOF driver\n"); in snd_intel_dsp_driver_probe()
682 if (cfg->flags & FLAG_SOF_ONLY_IF_DMIC && in snd_intel_dsp_driver_probe()
684 dev_info_once(&pci->dev, "Digital mics found on Skylake+ platform, using SOF driver\n"); in snd_intel_dsp_driver_probe()
687 if (!(cfg->flags & FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE)) in snd_intel_dsp_driver_probe()
692 if (cfg->flags & FLAG_SST) { in snd_intel_dsp_driver_probe()
693 if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) { in snd_intel_dsp_driver_probe()
695 dev_info_once(&pci->dev, "Digital mics found on Skylake+ platform, using SST driver\n"); in snd_intel_dsp_driver_probe()
717 * - the order of similar ACPI ID entries is important!
718 * - the first successful match will win
751 /* Haswell - not supported by SOF but added for consistency */
764 for (; len > 0; len--, table++) { in snd_intel_acpi_dsp_find_config()
765 if (memcmp(table->acpi_hid, acpi_hid, ACPI_ID_LEN)) in snd_intel_acpi_dsp_find_config()
767 if (table->dmi_table && !dmi_check_system(table->dmi_table)) in snd_intel_acpi_dsp_find_config()
792 if (cfg->flags & FLAG_SST) in snd_intel_acpi_dsp_driver_probe()
795 if (cfg->flags & FLAG_SOF) in snd_intel_acpi_dsp_driver_probe()
803 MODULE_DESCRIPTION("Intel DSP config driver");