aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/probe.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r--drivers/pci/probe.c8
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
710static 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)