123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- --- a/drivers/pci/Kconfig
- +++ b/drivers/pci/Kconfig
- @@ -63,6 +63,12 @@ config XEN_PCIDEV_FRONTEND
- The PCI device frontend driver allows the kernel to import arbitrary
- PCI devices from a PCI backend to support PCI driver domains.
-
- +config PCI_DISABLE_COMMON_QUIRKS
- + bool "PCI disable common quirks"
- + depends on PCI
- + help
- + If you don't know what to do here, say N.
- +
- config HT_IRQ
- bool "Interrupts on hypertransport devices"
- default y
- --- a/drivers/pci/quirks.c
- +++ b/drivers/pci/quirks.c
- @@ -44,6 +44,7 @@ static void quirk_mmio_always_on(struct
- DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
- PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
-
- +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
- /* The Mellanox Tavor device gives false positive parity errors
- * Mark this device with a broken_parity_status, to allow
- * PCI scanning code to "skip" this now blacklisted device.
- @@ -2886,6 +2887,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
-
- +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */
-
- static ktime_t fixup_debug_start(struct pci_dev *dev,
- void (*fn)(struct pci_dev *dev))
- @@ -2917,6 +2919,8 @@ static void fixup_debug_report(struct pc
- }
- }
-
- +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
- +
- /*
- * Some BIOS implementations leave the Intel GPU interrupts enabled,
- * even though no one is handling them (f.e. i915 driver is never loaded).
- @@ -2951,6 +2955,8 @@ static void disable_igfx_irq(struct pci_
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
-
- +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */
- +
- /*
- * Some devices may pass our check in pci_intx_mask_supported if
- * PCI_COMMAND_INTX_DISABLE works though they actually do not properly
|