diff options
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r-- | drivers/pci/probe.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 9cefc54a0125..118463befef0 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/cpumask.h> | 11 | #include <linux/cpumask.h> |
12 | #include <linux/pci-aspm.h> | 12 | #include <linux/pci-aspm.h> |
13 | #include <linux/iommu.h> | 13 | #include <linux/iommu.h> |
14 | #include <acpi/acpi_hest.h> | ||
14 | #include <xen/xen.h> | 15 | #include <xen/xen.h> |
15 | #include "pci.h" | 16 | #include "pci.h" |
16 | 17 | ||
@@ -706,6 +707,12 @@ static void set_pcie_hotplug_bridge(struct pci_dev *pdev) | |||
706 | pdev->is_hotplug_bridge = 1; | 707 | pdev->is_hotplug_bridge = 1; |
707 | } | 708 | } |
708 | 709 | ||
710 | static void set_pci_aer_firmware_first(struct pci_dev *pdev) | ||
711 | { | ||
712 | if (acpi_hest_firmware_first_pci(pdev)) | ||
713 | pdev->aer_firmware_first = 1; | ||
714 | } | ||
715 | |||
709 | #define LEGACY_IO_RESOURCE (IORESOURCE_IO | IORESOURCE_PCI_FIXED) | 716 | #define LEGACY_IO_RESOURCE (IORESOURCE_IO | IORESOURCE_PCI_FIXED) |
710 | 717 | ||
711 | /** | 718 | /** |
@@ -734,6 +741,7 @@ int pci_setup_device(struct pci_dev *dev) | |||
734 | dev->multifunction = !!(hdr_type & 0x80); | 741 | dev->multifunction = !!(hdr_type & 0x80); |
735 | dev->error_state = pci_channel_io_normal; | 742 | dev->error_state = pci_channel_io_normal; |
736 | set_pcie_port_type(dev); | 743 | set_pcie_port_type(dev); |
744 | set_pci_aer_firmware_first(dev); | ||
737 | 745 | ||
738 | list_for_each_entry(slot, &dev->bus->slots, list) | 746 | list_for_each_entry(slot, &dev->bus->slots, list) |
739 | if (PCI_SLOT(dev->devfn) == slot->number) | 747 | if (PCI_SLOT(dev->devfn) == slot->number) |