[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] Backport: PCI: define PCI resource names in an 'enum'



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1236934215 0
# Node ID f77ac4979fae40185d00543d99f789d84c9d1f41
# Parent  f0dd7eb92bc9db85f5f652e7e61fbadbd6ec6752
Backport: PCI: define PCI resource names in an 'enum'

    commit fde09c6d8f92de0c9f75698a75f0989f2234c517
    Author: Yu Zhao <yu.zhao@xxxxxxxxx>
    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@xxxxxx>
    Signed-off-by: Yu Zhao <yu.zhao@xxxxxxxxx>
    Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>

Signed-off-by: Yu Zhao <yu.zhao@xxxxxxxxx>
---
 drivers/pci/pci-sysfs.c |    4 +++-
 drivers/pci/probe.c     |    2 +-
 drivers/pci/proc.c      |    7 ++++---
 include/linux/pci.h     |   39 +++++++++++++++++++++++++--------------
 4 files changed, 33 insertions(+), 19 deletions(-)

diff -r f0dd7eb92bc9 -r f77ac4979fae drivers/pci/pci-sysfs.c
--- a/drivers/pci/pci-sysfs.c   Fri Mar 13 07:42:13 2009 +0000
+++ b/drivers/pci/pci-sysfs.c   Fri Mar 13 08:50:15 2009 +0000
@@ -85,11 +85,13 @@ resource_show(struct device * dev, struc
        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];
diff -r f0dd7eb92bc9 -r f77ac4979fae drivers/pci/probe.c
--- a/drivers/pci/probe.c       Fri Mar 13 07:42:13 2009 +0000
+++ b/drivers/pci/probe.c       Fri Mar 13 08:50:15 2009 +0000
@@ -417,7 +417,7 @@ pci_alloc_child_bus(struct pci_bus *pare
        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;
        }
diff -r f0dd7eb92bc9 -r f77ac4979fae drivers/pci/proc.c
--- a/drivers/pci/proc.c        Fri Mar 13 07:42:13 2009 +0000
+++ b/drivers/pci/proc.c        Fri Mar 13 08:50:15 2009 +0000
@@ -348,15 +348,16 @@ static int show_device(struct seq_file *
                        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",
diff -r f0dd7eb92bc9 -r f77ac4979fae include/linux/pci.h
--- a/include/linux/pci.h       Fri Mar 13 07:42:13 2009 +0000
+++ b/include/linux/pci.h       Fri Mar 13 08:50:15 2009 +0000
@@ -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)
@@ -203,18 +226,6 @@ static inline void pci_remove_saved_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

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.