]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
Backport: PCI: define PCI resource names in an 'enum'
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 13 Mar 2009 08:50:15 +0000 (08:50 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 13 Mar 2009 08:50:15 +0000 (08:50 +0000)
    commit fde09c6d8f92de0c9f75698a75f0989f2234c517
    Author: Yu Zhao <yu.zhao@intel.com>
    Date:   Sat Nov 22 02:39:32 2008 +0800

    PCI: define PCI resource names in an 'enum'

    This patch moves all definitions of the PCI resource names to an
    'enum',
    and also replaces some hard-coded resource variables with symbol
    names. This change eases introduction of device specific
    resources.

Reviewed-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Yu Zhao <yu.zhao@intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Yu Zhao <yu.zhao@intel.com>
drivers/pci/pci-sysfs.c
drivers/pci/probe.c
drivers/pci/proc.c
include/linux/pci.h

index a9c7d41d28d1b1c7e890d2b0ab833557ed2429d9..348d8f19a2866da2d57d15aadc156da762b8dbc3 100644 (file)
@@ -85,11 +85,13 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf)
        struct pci_dev * pci_dev = to_pci_dev(dev);
        char * str = buf;
        int i;
-       int max = 7;
+       int max;
        resource_size_t start, end;
 
        if (pci_dev->subordinate)
                max = DEVICE_COUNT_RESOURCE;
+       else
+               max = PCI_BRIDGE_RESOURCES;
 
        for (i = 0; i < max; i++) {
                struct resource *res =  &pci_dev->resource[i];
index 49062cc757878b62aa2be96970959a41be63045b..faf389021c2a550227519abc5ec243b426868caf 100644 (file)
@@ -417,7 +417,7 @@ pci_alloc_child_bus(struct pci_bus *parent, struct pci_dev *bridge, int busnr)
        child->bridge = get_device(&bridge->dev);
 
        /* Set up default resource pointers and names.. */
-       for (i = 0; i < 4; i++) {
+       for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++) {
                child->resource[i] = &bridge->resource[PCI_BRIDGE_RESOURCES+i];
                child->resource[i]->name = child->name;
        }
index 99cf33379769310619557605b72c390bc913b39f..26adf3f49942a3e10810f7c52797ed087bdac16f 100644 (file)
@@ -348,15 +348,16 @@ static int show_device(struct seq_file *m, void *v)
                        dev->vendor,
                        dev->device,
                        dev->irq);
-       /* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */
-       for (i=0; i<7; i++) {
+
+       /* only print standard and ROM resources to preserve compatibility */
+       for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
                resource_size_t start, end;
                pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
                seq_printf(m, "\t%16llx",
                        (unsigned long long)(start |
                        (dev->resource[i].flags & PCI_REGION_FLAG_MASK)));
        }
-       for (i=0; i<7; i++) {
+       for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
                resource_size_t start, end;
                pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
                seq_printf(m, "\t%16llx",
index e8302334132a4fe01d0f0fbee402396b1a4e9faa..34cd44424f41fb40d7246231d4370eb5b387cf0b 100644 (file)
@@ -65,8 +65,31 @@ enum pci_mmap_state {
 #define PCI_DMA_NONE           3
 
 #define DEVICE_COUNT_COMPATIBLE        4
-#define DEVICE_COUNT_RESOURCE  12
 
+/*
+ *  For PCI devices, the region numbers are assigned this way:
+ */
+enum {
+       /* #0-5: standard PCI resources */
+       PCI_STD_RESOURCES,
+       PCI_STD_RESOURCE_END = 5,
+
+       /* #6: expansion ROM resource */
+       PCI_ROM_RESOURCE,
+
+       /* resources assigned to buses behind the bridge */
+#define PCI_BRIDGE_RESOURCE_NUM 4
+
+       PCI_BRIDGE_RESOURCES,
+       PCI_BRIDGE_RESOURCE_END = PCI_BRIDGE_RESOURCES +
+                                 PCI_BRIDGE_RESOURCE_NUM - 1,
+
+       /* total resources associated with a PCI device */
+       PCI_NUM_RESOURCES,
+
+       /* preserve this for compatibility */
+       DEVICE_COUNT_RESOURCE
+};
 typedef int __bitwise pci_power_t;
 
 #define PCI_D0         ((pci_power_t __force) 0)
@@ -204,18 +227,6 @@ static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap)
        hlist_del(&cap->next);
 }
 
-/*
- *  For PCI devices, the region numbers are assigned this way:
- *
- *     0-5     standard PCI regions
- *     6       expansion ROM
- *     7-10    bridges: address space assigned to buses behind the bridge
- */
-
-#define PCI_ROM_RESOURCE       6
-#define PCI_BRIDGE_RESOURCES   7
-#define PCI_NUM_RESOURCES      11
-
 #ifndef PCI_BUS_NUM_RESOURCES
 #define PCI_BUS_NUM_RESOURCES  8
 #endif