| From: Bin Meng <bmeng.cn@gmail.com> |
| Date: Wed, 26 Sep 2018 08:14:01 -0700 |
| Subject: PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk |
| |
| commit d0c9606b31a21028fb5b753c8ad79626292accfd upstream. |
| |
| Add Device IDs to the Intel GPU "spurious interrupt" quirk table. |
| |
| For these devices, unplugging the VGA cable and plugging it in again causes |
| spurious interrupts from the IGD. Linux eventually disables the interrupt, |
| but of course that disables any other devices sharing the interrupt. |
| |
| The theory is that this is a VGA BIOS defect: it should have disabled the |
| IGD interrupt but failed to do so. |
| |
| See f67fd55fa96f ("PCI: Add quirk for still enabled interrupts on Intel |
| Sandy Bridge GPUs") and 7c82126a94e6 ("PCI: Add new ID for Intel GPU |
| "spurious interrupt" quirk") for some history. |
| |
| [bhelgaas: See link below for discussion about how to fix this more |
| generically instead of adding device IDs for every new Intel GPU. I hope |
| this is the last patch to add device IDs.] |
| |
| Link: https://lore.kernel.org/linux-pci/1537974841-29928-1-git-send-email-bmeng.cn@gmail.com |
| Signed-off-by: Bin Meng <bmeng.cn@gmail.com> |
| [bhelgaas: changelog] |
| Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/pci/quirks.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/pci/quirks.c |
| +++ b/drivers/pci/quirks.c |
| @@ -3068,7 +3068,11 @@ static void disable_igfx_irq(struct pci_ |
| |
| pci_iounmap(dev, regs); |
| } |
| +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0042, disable_igfx_irq); |
| +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0046, disable_igfx_irq); |
| +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x004a, disable_igfx_irq); |
| DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); |
| +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0106, disable_igfx_irq); |
| DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); |
| DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); |
| |