PCI: Identify Enhanced Allocation (EA) BAR Equivalent resources in sysfs
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 16 May 2016 20:12:02 +0000 (15:12 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 16 May 2016 20:12:02 +0000 (15:12 -0500)
Resource flags are exposed to userspace via the sysfs "resource" file.
lspci reads the sysfs file to determine resource properties.

Add a "BAR Equivalent Indicator" flag so lspci can distinguish between
[virtual] and [enhanced] resources.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sean O. Stalley <sean.stalley@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci.c
include/linux/ioport.h

index 25e0327d4429bfc00a694f66f4a28fc7233fb7df..7b008c7cac351568cc5d298c88f7f9bd89e727e3 100644 (file)
@@ -2228,7 +2228,7 @@ void pci_pm_init(struct pci_dev *dev)
 
 static unsigned long pci_ea_flags(struct pci_dev *dev, u8 prop)
 {
-       unsigned long flags = IORESOURCE_PCI_FIXED;
+       unsigned long flags = IORESOURCE_PCI_FIXED | IORESOURCE_PCI_EA_BEI;
 
        switch (prop) {
        case PCI_EA_P_MEM:
index 0b65543dc6cf5b98e0b9e6b745ed349af3ce1bb0..6230064d7f95d072d61e2bc0eedd341463880d32 100644 (file)
@@ -26,6 +26,9 @@ struct resource {
 
 /*
  * IO resources have these defined flags.
+ *
+ * PCI devices expose these flags to userspace in the "resource" sysfs file,
+ * so don't move them.
  */
 #define IORESOURCE_BITS                0x000000ff      /* Bus-specific bits */
 
@@ -110,6 +113,7 @@ struct resource {
 
 /* PCI control bits.  Shares IORESOURCE_BITS with above PCI ROM.  */
 #define IORESOURCE_PCI_FIXED           (1<<4)  /* Do not move resource */
+#define IORESOURCE_PCI_EA_BEI          (1<<5)  /* BAR Equivalent Indicator */
 
 /*
  * I/O Resource Descriptors