mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
ALSA: hda: Skip i915 initialization on CNL/LKF-based platforms
Commit 78f613ba1e
("drm/i915: finish removal of CNL") and its friends
removed support for i915 for all CNL-based platforms. HDAudio library,
however, still treats such platforms as valid candidates for i915
binding. Update query mechanism to reflect changes made in drm tree.
At the same time, i915 support for LKF-based platforms has not been
provided so remove them from valid binding candidates.
Link: https://lore.kernel.org/all/20210728215946.1573015-1-lucas.demarchi@intel.com/
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240226124432.1203798-2-cezary.rojewski@intel.com
This commit is contained in:
parent
1601cd53c7
commit
bd6e4c4a70
@ -127,15 +127,41 @@ static int i915_component_master_match(struct device *dev, int subcomponent,
|
||||
/* check whether Intel graphics is present and reachable */
|
||||
static int i915_gfx_present(struct pci_dev *hdac_pci)
|
||||
{
|
||||
/* List of known platforms with no i915 support. */
|
||||
static const struct pci_device_id denylist[] = {
|
||||
/* CNL */
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a40), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a41), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a42), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a44), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a49), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a4a), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a4c), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a50), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a51), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a52), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a54), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a59), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a5a), 0x030000, 0xff0000 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x5a5c), 0x030000, 0xff0000 },
|
||||
/* LKF */
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x9840), 0x030000, 0xff0000 },
|
||||
{}
|
||||
};
|
||||
struct pci_dev *display_dev = NULL;
|
||||
|
||||
if (!gpu_bind || (gpu_bind < 0 && video_firmware_drivers_only()))
|
||||
return false;
|
||||
|
||||
for_each_pci_dev(display_dev) {
|
||||
if (display_dev->vendor == PCI_VENDOR_ID_INTEL &&
|
||||
(display_dev->class >> 16) == PCI_BASE_CLASS_DISPLAY &&
|
||||
connectivity_check(display_dev, hdac_pci)) {
|
||||
if (display_dev->vendor != PCI_VENDOR_ID_INTEL ||
|
||||
(display_dev->class >> 16) != PCI_BASE_CLASS_DISPLAY)
|
||||
continue;
|
||||
|
||||
if (pci_match_id(denylist, display_dev))
|
||||
continue;
|
||||
|
||||
if (connectivity_check(display_dev, hdac_pci)) {
|
||||
pci_dev_put(display_dev);
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user