Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: avoid boot interrupt quirk for AMD 813x B1 devices

AMD 813x rev. B1 (like rev. B2) devices generate no interrupts if
quirk_disable_amd_813x_boot_interrupt is executed, add an exception.
http://bugzilla.kernel.org/show_bug.cgi?id=14159

Patch also adds missing cases for DECLARE_PCI_FIXUP_RESUME and
DECLARE_PCI_FIXUP_FINAL calls to quirk_disable_amd_813x_boot_interrupt.

Signed-off-by: Stefan Assmann <sassmann@redhat.com>
Tested-by: Gabriele Giorgetti <g.giorgetti@teamsystem.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

authored by

Stefan Assmann and committed by
Jesse Barnes
4fd8bdc5 58c08628

+7 -3
+7 -3
drivers/pci/quirks.c
··· 1680 1680 */ 1681 1681 #define AMD_813X_MISC 0x40 1682 1682 #define AMD_813X_NOIOAMODE (1<<0) 1683 + #define AMD_813X_REV_B1 0x12 1683 1684 #define AMD_813X_REV_B2 0x13 1684 1685 1685 1686 static void quirk_disable_amd_813x_boot_interrupt(struct pci_dev *dev) ··· 1689 1688 1690 1689 if (noioapicquirk) 1691 1690 return; 1692 - if (dev->revision == AMD_813X_REV_B2) 1691 + if ((dev->revision == AMD_813X_REV_B1) || 1692 + (dev->revision == AMD_813X_REV_B2)) 1693 1693 return; 1694 1694 1695 1695 pci_read_config_dword(dev, AMD_813X_MISC, &pci_config_dword); ··· 1700 1698 dev_info(&dev->dev, "disabled boot interrupts on device [%04x:%04x]\n", 1701 1699 dev->vendor, dev->device); 1702 1700 } 1703 - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1704 - DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1701 + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1702 + DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1703 + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1704 + DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, quirk_disable_amd_813x_boot_interrupt); 1705 1705 1706 1706 #define AMD_8111_PCI_IRQ_ROUTING 0x56 1707 1707