[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |