diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-16 14:09:02 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-16 14:09:02 -0700 |
commit | 91e341fcb2ec42630ceb6a9c5a38396f033116f6 (patch) | |
tree | 9e7c3087eb4eb7d9a45425d03b700fd7333f6892 /pci | |
parent | fa85fcfe976353f1ec893a3b5bdeb3f483bc75f6 (diff) | |
download | patches-91e341fcb2ec42630ceb6a9c5a38396f033116f6.tar.gz |
add configurable resource changes
Diffstat (limited to 'pci')
6 files changed, 1354 insertions, 0 deletions
diff --git a/pci/kconfigurable-resources-arch-dependent-changes-arch-q-z.patch b/pci/kconfigurable-resources-arch-dependent-changes-arch-q-z.patch new file mode 100644 index 0000000000000..f6368ce598e92 --- /dev/null +++ b/pci/kconfigurable-resources-arch-dependent-changes-arch-q-z.patch @@ -0,0 +1,228 @@ +From vivek@in.ibm.com Fri May 5 10:36:20 2006 +Date: Fri, 5 May 2006 13:36:06 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +To: linux kernel mailing list <linux-kernel@vger.kernel.org> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources arch dependent changes arch/q-z +Message-ID: <20060505173606.GH6450@in.ibm.com> +Content-Disposition: inline + +o Changes to arch specific code for kconfigurable resources. This + patch contains changes for arch/[q-z]* + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + arch/s390/Kconfig | 8 ++++++++ + arch/sh/Kconfig | 7 +++++++ + arch/sh/boards/mpc1211/pci.c | 4 ++-- + arch/sh/boards/overdrive/galileo.c | 2 +- + arch/sh/drivers/pci/pci.c | 6 +++--- + arch/sh64/kernel/pcibios.c | 4 ++-- + arch/sparc/Kconfig | 7 +++++++ + arch/sparc/kernel/pcic.c | 2 +- + arch/sparc64/kernel/pci.c | 2 +- + arch/v850/Kconfig | 7 +++++++ + arch/v850/kernel/rte_mb_a_pci.c | 2 +- + arch/xtensa/Kconfig | 7 +++++++ + arch/xtensa/kernel/pci.c | 6 +++--- + 13 files changed, 50 insertions(+), 14 deletions(-) + +--- gregkh-2.6.orig/arch/s390/Kconfig ++++ gregkh-2.6/arch/s390/Kconfig +@@ -218,6 +218,14 @@ config WARN_STACK_SIZE + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ depends on !64BIT ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + comment "I/O subsystem configuration" + + config MACHCHK_WARNING +--- gregkh-2.6.orig/arch/sh/Kconfig ++++ gregkh-2.6/arch/sh/Kconfig +@@ -532,6 +532,13 @@ config NODES_SHIFT + default "1" + depends on NEED_MULTIPLE_NODES + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + menu "Boot options" +--- gregkh-2.6.orig/arch/sh/boards/mpc1211/pci.c ++++ gregkh-2.6/arch/sh/boards/mpc1211/pci.c +@@ -273,9 +273,9 @@ void __init pcibios_fixup_irqs(void) + } + + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (res->flags & IORESOURCE_IO) { + if (start >= 0x10000UL) { +--- gregkh-2.6.orig/arch/sh/boards/overdrive/galileo.c ++++ gregkh-2.6/arch/sh/boards/overdrive/galileo.c +@@ -536,7 +536,7 @@ void __init pcibios_fixup_bus(struct pci + } + + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size) ++ resource_size_t size) + { + } + +--- gregkh-2.6.orig/arch/sh/drivers/pci/pci.c ++++ gregkh-2.6/arch/sh/drivers/pci/pci.c +@@ -75,7 +75,7 @@ pcibios_update_resource(struct pci_dev * + } + + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + __attribute__ ((weak)); + + /* +@@ -85,10 +85,10 @@ void pcibios_align_resource(void *data, + * modulo 0x400. + */ + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (start & 0x300) { + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/sh64/kernel/pcibios.c ++++ gregkh-2.6/arch/sh64/kernel/pcibios.c +@@ -69,10 +69,10 @@ pcibios_update_resource(struct pci_dev * + * modulo 0x400. + */ + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (start & 0x300) { + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/sparc/Kconfig ++++ gregkh-2.6/arch/sparc/Kconfig +@@ -67,6 +67,13 @@ config SPARC32 + maintains both the SPARC32 and SPARC64 ports; its web page is + available at <http://www.ultralinux.org/>. + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + # Global things across all Sun machines. + config ISA + bool +--- gregkh-2.6.orig/arch/sparc/kernel/pcic.c ++++ gregkh-2.6/arch/sparc/kernel/pcic.c +@@ -859,7 +859,7 @@ char * __init pcibios_setup(char *str) + } + + void pcibios_align_resource(void *data, struct resource *res, +- u64 size, u64 align) ++ resource_size_t size, resource_size_t align) + { + } + +--- gregkh-2.6.orig/arch/sparc64/kernel/pci.c ++++ gregkh-2.6/arch/sparc64/kernel/pci.c +@@ -390,7 +390,7 @@ void pcibios_update_irq(struct pci_dev * + } + + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + } + +--- gregkh-2.6.orig/arch/v850/Kconfig ++++ gregkh-2.6/arch/v850/Kconfig +@@ -235,6 +235,13 @@ menu "Processor type and features" + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + +--- gregkh-2.6.orig/arch/v850/kernel/rte_mb_a_pci.c ++++ gregkh-2.6/arch/v850/kernel/rte_mb_a_pci.c +@@ -329,7 +329,7 @@ void pcibios_fixup_bus(struct pci_bus *b + + void + pcibios_align_resource (void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + } + +--- gregkh-2.6.orig/arch/xtensa/Kconfig ++++ gregkh-2.6/arch/xtensa/Kconfig +@@ -99,6 +99,13 @@ config MATH_EMULATION + config HIGHMEM + bool "High memory support" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + menu "Platform options" +--- gregkh-2.6.orig/arch/xtensa/kernel/pci.c ++++ gregkh-2.6/arch/xtensa/kernel/pci.c +@@ -71,13 +71,13 @@ static int pci_bus_count; + * which might have be mirrored at 0x0100-0x03ff.. + */ + void +-pcibios_align_resource(void *data, struct resource *res, unsigned long size, +- unsigned long align) ++pcibios_align_resource(void *data, struct resource *res, resource_size_t size, ++ resource_size_t align) + { + struct pci_dev *dev = data; + + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (size > 0x100) { + printk(KERN_ERR "PCI: I/O Region %s/%d too large" diff --git a/pci/kconfigurable-resources-arch-dependent-changes-arch.patch b/pci/kconfigurable-resources-arch-dependent-changes-arch.patch new file mode 100644 index 0000000000000..8f75d64990582 --- /dev/null +++ b/pci/kconfigurable-resources-arch-dependent-changes-arch.patch @@ -0,0 +1,316 @@ +From vivek@in.ibm.com Fri May 5 10:34:48 2006 +Date: Fri, 5 May 2006 13:34:34 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources arch dependent changes arch/[j-p] +Message-ID: <20060505173434.GG6450@in.ibm.com> +Content-Disposition: inline + + +o Changes to arch specific code for kconfigurable resources. This + patch contains changes for arch/[j-p]* + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + arch/m32r/Kconfig | 7 +++++++ + arch/m68k/Kconfig | 7 +++++++ + arch/m68knommu/Kconfig | 7 +++++++ + arch/m68knommu/kernel/comempci.c | 3 ++- + arch/mips/Kconfig | 8 ++++++++ + arch/mips/pci/pci.c | 4 ++-- + arch/mips/pmc-sierra/yosemite/ht.c | 4 ++-- + arch/parisc/Kconfig | 8 ++++++++ + arch/parisc/kernel/pci.c | 2 +- + arch/powerpc/Kconfig | 8 ++++++++ + arch/powerpc/kernel/pci_32.c | 10 +++++----- + arch/powerpc/kernel/pci_64.c | 4 ++-- + arch/ppc/Kconfig | 7 +++++++ + arch/ppc/kernel/pci.c | 12 ++++++------ + include/asm-powerpc/pci.h | 2 +- + include/asm-ppc/pci.h | 2 +- + 16 files changed, 74 insertions(+), 21 deletions(-) + +--- gregkh-2.6.orig/arch/m32r/Kconfig ++++ gregkh-2.6/arch/m32r/Kconfig +@@ -188,6 +188,13 @@ config ARCH_DISCONTIGMEM_ENABLE + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config IRAM_START + hex "Internal memory start address (hex)" + default "00f00000" if !CHIP_M32104 +--- gregkh-2.6.orig/arch/m68k/Kconfig ++++ gregkh-2.6/arch/m68k/Kconfig +@@ -368,6 +368,13 @@ config 060_WRITETHROUGH + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + menu "General setup" +--- gregkh-2.6.orig/arch/m68knommu/Kconfig ++++ gregkh-2.6/arch/m68knommu/Kconfig +@@ -605,6 +605,13 @@ endchoice + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + config ISA_DMA_API +--- gregkh-2.6.orig/arch/m68knommu/kernel/comempci.c ++++ gregkh-2.6/arch/m68knommu/kernel/comempci.c +@@ -357,7 +357,8 @@ void pcibios_fixup_bus(struct pci_bus *b + + /*****************************************************************************/ + +-void pcibios_align_resource(void *data, struct resource *res, unsigned long size, unsigned long align) ++void pcibios_align_resource(void *data, struct resource *res, ++ resource_size_t size, resource_size_t align) + { + } + +--- gregkh-2.6.orig/arch/mips/Kconfig ++++ gregkh-2.6/arch/mips/Kconfig +@@ -1655,6 +1655,14 @@ config NR_CPUS + + source "kernel/Kconfig.preempt" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ depends on 32BIT ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config RTC_DS1742 + bool "DS1742 BRAM/RTC support" + depends on TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 +--- gregkh-2.6.orig/arch/mips/pci/pci.c ++++ gregkh-2.6/arch/mips/pci/pci.c +@@ -51,11 +51,11 @@ unsigned long PCIBIOS_MIN_MEM = 0; + */ + void + pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + struct pci_controller *hose = dev->sysdata; +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (res->flags & IORESOURCE_IO) { + /* Make sure we start at our min on all hoses */ +--- gregkh-2.6.orig/arch/mips/pmc-sierra/yosemite/ht.c ++++ gregkh-2.6/arch/mips/pmc-sierra/yosemite/ht.c +@@ -383,12 +383,12 @@ void pcibios_update_resource(struct pci_ + + + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + /* We need to avoid collisions with `mirrored' VGA ports + and other strange ISA hardware, so we always want the +--- gregkh-2.6.orig/arch/parisc/Kconfig ++++ gregkh-2.6/arch/parisc/Kconfig +@@ -217,6 +217,14 @@ source "kernel/Kconfig.preempt" + source "kernel/Kconfig.hz" + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ depends on !64BIT ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config COMPAT + def_bool y + depends on 64BIT +--- gregkh-2.6.orig/arch/parisc/kernel/pci.c ++++ gregkh-2.6/arch/parisc/kernel/pci.c +@@ -289,7 +289,7 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); + * than res->start. + */ + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long alignment) ++ resource_size_t size, resource_size_t alignment) + { + unsigned long mask, align; + +--- gregkh-2.6.orig/arch/powerpc/Kconfig ++++ gregkh-2.6/arch/powerpc/Kconfig +@@ -626,6 +626,14 @@ config CRASH_DUMP + + Don't change this unless you know what you are doing. + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ depends on PPC32 ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config EMBEDDEDBOOT + bool + depends on 8xx || 8260 +--- gregkh-2.6.orig/arch/powerpc/kernel/pci_32.c ++++ gregkh-2.6/arch/powerpc/kernel/pci_32.c +@@ -173,18 +173,18 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); + * but we want to try to avoid allocating at 0x2900-0x2bff + * which might have be mirrored at 0x0100-0x03ff.. + */ +-void pcibios_align_resource(void *data, struct resource *res, u64 size, +- u64 align) ++void pcibios_align_resource(void *data, struct resource *res, ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + + if (res->flags & IORESOURCE_IO) { +- u64 start = res->start; ++ resource_size_t start = res->start; + + if (size > 0x100) { + printk(KERN_ERR "PCI: I/O Region %s/%d too large" + " (%lld bytes)\n", pci_name(dev), +- dev->resource - res, size); ++ dev->resource - res, (unsigned long long)size); + } + + if (start & 0x300) { +@@ -1756,7 +1756,7 @@ long sys_pciconfig_iobase(long which, un + + void pci_resource_to_user(const struct pci_dev *dev, int bar, + const struct resource *rsrc, +- u64 *start, u64 *end) ++ resource_size_t *start, resource_size_t *end) + { + struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); + unsigned long offset = 0; +--- gregkh-2.6.orig/arch/powerpc/kernel/pci_64.c ++++ gregkh-2.6/arch/powerpc/kernel/pci_64.c +@@ -146,11 +146,11 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); + * which might have be mirrored at 0x0100-0x03ff.. + */ + void pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + struct pci_controller *hose = pci_bus_to_host(dev->bus); +- unsigned long start = res->start; ++ resource_size_t start = res->start; + unsigned long alignto; + + if (res->flags & IORESOURCE_IO) { +--- gregkh-2.6.orig/arch/ppc/Kconfig ++++ gregkh-2.6/arch/ppc/Kconfig +@@ -953,6 +953,13 @@ source kernel/Kconfig.hz + source kernel/Kconfig.preempt + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + source "fs/Kconfig.binfmt" + + config PREP_RESIDUAL +--- gregkh-2.6.orig/arch/ppc/kernel/pci.c ++++ gregkh-2.6/arch/ppc/kernel/pci.c +@@ -171,13 +171,13 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); + * but we want to try to avoid allocating at 0x2900-0x2bff + * which might have be mirrored at 0x0100-0x03ff.. + */ +-void pcibios_align_resource(void *data, struct resource *res, u64 size, +- u64 align) ++void pcibios_align_resource(void *data, struct resource *res, ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + + if (res->flags & IORESOURCE_IO) { +- u64 start = res->start; ++ resource_size_t start = res->start; + + if (size > 0x100) { + printk(KERN_ERR "PCI: I/O Region %s/%d too large" +@@ -960,8 +960,8 @@ static pgprot_t __pci_mmap_set_pgprot(st + else + prot |= _PAGE_GUARDED; + +- printk("PCI map for %s:%llx, prot: %llx\n", pci_name(dev), rp->start, +- prot); ++ printk("PCI map for %s:%llx, prot: %lx\n", pci_name(dev), ++ (unsigned long long)rp->start, prot); + + return __pgprot(prot); + } +@@ -1131,7 +1131,7 @@ long sys_pciconfig_iobase(long which, un + + void pci_resource_to_user(const struct pci_dev *dev, int bar, + const struct resource *rsrc, +- u64 *start, u64 *end) ++ resource_size_t *start, resource_size_t *end) + { + struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); + unsigned long offset = 0; +--- gregkh-2.6.orig/include/asm-powerpc/pci.h ++++ gregkh-2.6/include/asm-powerpc/pci.h +@@ -242,7 +242,7 @@ extern pgprot_t pci_phys_mem_access_prot + #define HAVE_ARCH_PCI_RESOURCE_TO_USER + extern void pci_resource_to_user(const struct pci_dev *dev, int bar, + const struct resource *rsrc, +- u64 *start, u64 *end); ++ resource_size_t *start, resource_size_t *end); + #endif /* CONFIG_PPC_MULTIPLATFORM || CONFIG_PPC32 */ + + #endif /* __KERNEL__ */ +--- gregkh-2.6.orig/include/asm-ppc/pci.h ++++ gregkh-2.6/include/asm-ppc/pci.h +@@ -133,7 +133,7 @@ extern pgprot_t pci_phys_mem_access_prot + #define HAVE_ARCH_PCI_RESOURCE_TO_USER + extern void pci_resource_to_user(const struct pci_dev *dev, int bar, + const struct resource *rsrc, +- u64 *start, u64 *end); ++ resource_size_t *start, resource_size_t *end); + + + #endif /* __KERNEL__ */ diff --git a/pci/kconfigurable-resources-arch-dependent-changes.patch b/pci/kconfigurable-resources-arch-dependent-changes.patch new file mode 100644 index 0000000000000..8c7c68d868a79 --- /dev/null +++ b/pci/kconfigurable-resources-arch-dependent-changes.patch @@ -0,0 +1,207 @@ +From vivek@in.ibm.com Fri May 5 10:33:41 2006 +Date: Fri, 5 May 2006 13:33:26 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources arch dependent changes (arch/[a-i]*) +Message-ID: <20060505173326.GF6450@in.ibm.com> +Content-Disposition: inline + + + +o Changes to arch specific code for kconfigurable resources. This + patch contains changes for arch/[a-i]* + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + +--- + arch/alpha/kernel/pci.c | 4 ++-- + arch/arm/Kconfig | 7 +++++++ + arch/arm/kernel/bios32.c | 6 +++--- + arch/arm26/Kconfig | 7 +++++++ + arch/cris/Kconfig | 7 +++++++ + arch/cris/arch-v32/drivers/pci/bios.c | 4 ++-- + arch/frv/Kconfig | 7 +++++++ + arch/frv/mb93090-mb00/pci-frv.c | 4 ++-- + arch/i386/Kconfig | 7 +++++++ + arch/i386/pci/i386.c | 4 ++-- + arch/ia64/pci/pci.c | 2 +- + 11 files changed, 47 insertions(+), 12 deletions(-) + +--- gregkh-2.6.orig/arch/alpha/kernel/pci.c ++++ gregkh-2.6/arch/alpha/kernel/pci.c +@@ -124,12 +124,12 @@ DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ + + void + pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; + struct pci_controller *hose = dev->sysdata; + unsigned long alignto; +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (res->flags & IORESOURCE_IO) { + /* Make sure we start at our min on all hoses */ +--- gregkh-2.6.orig/arch/arm/Kconfig ++++ gregkh-2.6/arch/arm/Kconfig +@@ -518,6 +518,13 @@ config NODES_SHIFT + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config LEDS + bool "Timer and CPU usage LEDs" + depends on ARCH_CDB89712 || ARCH_CO285 || ARCH_EBSA110 || \ +--- gregkh-2.6.orig/arch/arm/kernel/bios32.c ++++ gregkh-2.6/arch/arm/kernel/bios32.c +@@ -304,7 +304,7 @@ static inline int pdev_bad_for_parity(st + static void __devinit + pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) + { +- u64 offset; ++ resource_size_t offset; + int i; + + for (i = 0; i < PCI_NUM_RESOURCES; i++) { +@@ -634,9 +634,9 @@ char * __init pcibios_setup(char *str) + * which might be mirrored at 0x0100-0x03ff.. + */ + void pcibios_align_resource(void *data, struct resource *res, +- u64 size, u64 align) ++ resource_sz_t size, resource_size_t align) + { +- u64 start = res->start; ++ resource_size_t start = res->start; + + if (res->flags & IORESOURCE_IO && start & 0x300) + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/arm26/Kconfig ++++ gregkh-2.6/arch/arm26/Kconfig +@@ -187,6 +187,13 @@ config CMDLINE + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + source "net/Kconfig" +--- gregkh-2.6.orig/arch/cris/Kconfig ++++ gregkh-2.6/arch/cris/Kconfig +@@ -80,6 +80,13 @@ config PREEMPT + + source mm/Kconfig + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + endmenu + + menu "Hardware setup" +--- gregkh-2.6.orig/arch/cris/arch-v32/drivers/pci/bios.c ++++ gregkh-2.6/arch/cris/arch-v32/drivers/pci/bios.c +@@ -45,10 +45,10 @@ int pci_mmap_page_range(struct pci_dev * + + void + pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (start & 0x300) { + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/frv/Kconfig ++++ gregkh-2.6/arch/frv/Kconfig +@@ -80,6 +80,13 @@ config HIGHPTE + + source "mm/Kconfig" + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + choice + prompt "uClinux kernel load address" + depends on !MMU +--- gregkh-2.6.orig/arch/frv/mb93090-mb00/pci-frv.c ++++ gregkh-2.6/arch/frv/mb93090-mb00/pci-frv.c +@@ -64,10 +64,10 @@ pcibios_update_resource(struct pci_dev * + */ + void + pcibios_align_resource(void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + if (res->flags & IORESOURCE_IO) { +- unsigned long start = res->start; ++ resource_size_t start = res->start; + + if (start & 0x300) { + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/i386/Kconfig ++++ gregkh-2.6/arch/i386/Kconfig +@@ -754,6 +754,13 @@ config PHYSICAL_START + + Don't change this unless you know what you are doing. + ++config RESOURCES_32BIT ++ bool "32 bit Memory and IO resources (EXPERIMENTAL)" ++ depends on EXPERIMENTAL ++ help ++ By default resources are 64 bit. This option allows memory and IO ++ resources to be 32 bit to optimize code size. ++ + config HOTPLUG_CPU + bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" + depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER +--- gregkh-2.6.orig/arch/i386/pci/i386.c ++++ gregkh-2.6/arch/i386/pci/i386.c +@@ -48,10 +48,10 @@ + */ + void + pcibios_align_resource(void *data, struct resource *res, +- u64 size, u64 align) ++ resource_size_t size, resource_size_t align) + { + if (res->flags & IORESOURCE_IO) { +- u64 start = res->start; ++ resource_size_t start = res->start; + + if (start & 0x300) { + start = (start + 0x3ff) & ~0x3ff; +--- gregkh-2.6.orig/arch/ia64/pci/pci.c ++++ gregkh-2.6/arch/ia64/pci/pci.c +@@ -568,7 +568,7 @@ pcibios_disable_device (struct pci_dev * + + void + pcibios_align_resource (void *data, struct resource *res, +- unsigned long size, unsigned long align) ++ resource_size_t size, resource_size_t align) + { + } + diff --git a/pci/kconfigurable-resources-core-changes.patch b/pci/kconfigurable-resources-core-changes.patch new file mode 100644 index 0000000000000..4bee35682999c --- /dev/null +++ b/pci/kconfigurable-resources-core-changes.patch @@ -0,0 +1,219 @@ +From vivek@in.ibm.com Fri May 5 10:29:02 2006 +Date: Fri, 5 May 2006 13:28:47 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources core changes +Message-ID: <20060505172847.GC6450@in.ibm.com> +Content-Disposition: inline + + + +o Core changes for Kconfigurable memory and IO resources. By default resources + are 64bit until chosen to be 32bit. + +o Last time I posted the patches for 64bit memory resources but it raised + the concerns regarding code bloat on 32bit systems who use 32 bit + resources. + +o This patch-set allows resources to be kconfigurable. + +o I have done cross compilation on i386, x86_64, ppc, powerpc, sparc, sparc64 + ia64 and alpha. + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + include/linux/ioport.h | 25 ++++++++++++++----------- + include/linux/types.h | 6 ++++++ + kernel/resource.c | 43 +++++++++++++++++++++++++++---------------- + 3 files changed, 47 insertions(+), 27 deletions(-) + +--- gregkh-2.6.orig/include/linux/ioport.h ++++ gregkh-2.6/include/linux/ioport.h +@@ -15,7 +15,7 @@ + * nesting etc.. + */ + struct resource { +- u64 start, end; ++ resource_size_t start, end; + const char *name; + unsigned long flags; + struct resource *parent, *sibling, *child; +@@ -97,31 +97,34 @@ extern struct resource * ____request_res + extern int release_resource(struct resource *new); + extern __deprecated_for_modules int insert_resource(struct resource *parent, struct resource *new); + extern int allocate_resource(struct resource *root, struct resource *new, +- u64 size, +- u64 min, u64 max, +- u64 align, ++ resource_size_t size, resource_size_t min, ++ resource_size_t max, resource_size_t align, + void (*alignf)(void *, struct resource *, +- u64, u64), ++ resource_size_t, resource_size_t), + void *alignf_data); +-int adjust_resource(struct resource *res, u64 start, +- u64 size); ++int adjust_resource(struct resource *res, resource_size_t start, ++ resource_size_t size); + + /* Convenience shorthand with allocation */ + #define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name)) + #define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name)) + #define rename_region(region, newname) do { (region)->name = (newname); } while (0) + +-extern struct resource * __request_region(struct resource *, u64 start, u64 n, const char *name); ++extern struct resource * __request_region(struct resource *, ++ resource_size_t start, ++ resource_size_t n, const char *name); + + /* Compatibility cruft */ + #define release_region(start,n) __release_region(&ioport_resource, (start), (n)) + #define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n)) + #define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n)) + +-extern int __check_region(struct resource *, u64, u64); +-extern void __release_region(struct resource *, u64, u64); ++extern int __check_region(struct resource *, resource_size_t, resource_size_t); ++extern void __release_region(struct resource *, resource_size_t, ++ resource_size_t); + +-static inline int __deprecated check_region(u64 s, u64 n) ++static inline int __deprecated check_region(resource_size_t s, ++ resource_size_t n) + { + return __check_region(&ioport_resource, s, n); + } +--- gregkh-2.6.orig/include/linux/types.h ++++ gregkh-2.6/include/linux/types.h +@@ -141,6 +141,12 @@ typedef unsigned long sector_t; + typedef unsigned long blkcnt_t; + #endif + ++#ifdef CONFIG_RESOURCES_32BIT ++typedef u32 resource_size_t; ++#else ++typedef u64 resource_size_t; ++#endif ++ + /* + * The type of an index into the pagecache. Use a #define so asm/types.h + * can override it. +--- gregkh-2.6.orig/kernel/resource.c ++++ gregkh-2.6/kernel/resource.c +@@ -23,7 +23,11 @@ + + struct resource ioport_resource = { + .name = "PCI IO", ++#ifdef CONFIG_RESOURCES_32BIT ++ .start = 0x0000UL, ++#else + .start = 0x0000ULL, ++#endif + .end = IO_SPACE_LIMIT, + .flags = IORESOURCE_IO, + }; +@@ -32,8 +36,13 @@ EXPORT_SYMBOL(ioport_resource); + + struct resource iomem_resource = { + .name = "PCI mem", ++#ifdef CONFIG_RESOURCES_32BIT ++ .start = 0UL, ++ .end = ~0UL, ++#else + .start = 0ULL, + .end = ~0ULL, ++#endif + .flags = IORESOURCE_MEM, + }; + +@@ -151,8 +160,8 @@ __initcall(ioresources_init); + /* Return the conflict entry if you can't request it */ + static struct resource * __request_resource(struct resource *root, struct resource *new) + { +- u64 start = new->start; +- u64 end = new->end; ++ resource_size_t start = new->start; ++ resource_size_t end = new->end; + struct resource *tmp, **p; + + if (end < start) +@@ -236,11 +245,10 @@ EXPORT_SYMBOL(release_resource); + * Find empty slot in the resource tree given range and alignment. + */ + static int find_resource(struct resource *root, struct resource *new, +- u64 size, +- u64 min, u64 max, +- u64 align, ++ resource_size_t size, resource_size_t min, ++ resource_size_t max, resource_size_t align, + void (*alignf)(void *, struct resource *, +- u64, u64), ++ resource_size_t, resource_size_t), + void *alignf_data) + { + struct resource *this = root->child; +@@ -282,11 +290,10 @@ static int find_resource(struct resource + * Allocate empty slot in the resource tree given range and alignment. + */ + int allocate_resource(struct resource *root, struct resource *new, +- u64 size, +- u64 min, u64 max, +- u64 align, ++ resource_size_t size, resource_size_t min, ++ resource_size_t max, resource_size_t align, + void (*alignf)(void *, struct resource *, +- u64, u64), ++ resource_size_t, resource_size_t), + void *alignf_data) + { + int err; +@@ -378,10 +385,10 @@ EXPORT_SYMBOL(insert_resource); + * arguments. Returns -EBUSY if it can't fit. Existing children of + * the resource are assumed to be immutable. + */ +-int adjust_resource(struct resource *res, u64 start, u64 size) ++int adjust_resource(struct resource *res, resource_size_t start, resource_size_t size) + { + struct resource *tmp, *parent = res->parent; +- u64 end = start + size - 1; ++ resource_size_t end = start + size - 1; + int result = -EBUSY; + + write_lock(&resource_lock); +@@ -428,7 +435,9 @@ EXPORT_SYMBOL(adjust_resource); + * + * Release-region releases a matching busy region. + */ +-struct resource * __request_region(struct resource *parent, u64 start, u64 n, const char *name) ++struct resource * __request_region(struct resource *parent, ++ resource_size_t start, resource_size_t n, ++ const char *name) + { + struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL); + +@@ -464,7 +473,8 @@ struct resource * __request_region(struc + + EXPORT_SYMBOL(__request_region); + +-int __check_region(struct resource *parent, u64 start, u64 n) ++int __check_region(struct resource *parent, resource_size_t start, ++ resource_size_t n) + { + struct resource * res; + +@@ -479,10 +489,11 @@ int __check_region(struct resource *pare + + EXPORT_SYMBOL(__check_region); + +-void __release_region(struct resource *parent, u64 start, u64 n) ++void __release_region(struct resource *parent, resource_size_t start, ++ resource_size_t n) + { + struct resource **p; +- u64 end; ++ resource_size_t end; + + p = &parent->child; + end = start + n - 1; diff --git a/pci/kconfigurable-resources-driver-others-changes.patch b/pci/kconfigurable-resources-driver-others-changes.patch new file mode 100644 index 0000000000000..1118937846e58 --- /dev/null +++ b/pci/kconfigurable-resources-driver-others-changes.patch @@ -0,0 +1,219 @@ +From vivek@in.ibm.com Fri May 5 10:31:16 2006 +Date: Fri, 5 May 2006 13:31:02 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources driver others changes +Message-ID: <20060505173102.GE6450@in.ibm.com> +Content-Disposition: inline + + + +o Changes to files under driver/* except driver/pci/* which is covered in a + separate patch. + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/ieee1394/ohci1394.c | 2 +- + drivers/infiniband/hw/ipath/ipath_driver.c | 8 ++++---- + drivers/net/8139cp.c | 2 +- + drivers/pcmcia/rsrc_nonstatic.c | 13 ++++++++----- + drivers/pnp/manager.c | 11 ++++++----- + drivers/pnp/resource.c | 8 ++++---- + include/linux/pnp.h | 7 +++++-- + 7 files changed, 29 insertions(+), 22 deletions(-) + +--- gregkh-2.6.orig/drivers/ieee1394/ohci1394.c ++++ gregkh-2.6/drivers/ieee1394/ohci1394.c +@@ -3210,7 +3210,7 @@ static int __devinit ohci1394_pci_probe( + { + struct hpsb_host *host; + struct ti_ohci *ohci; /* shortcut to currently handled device */ +- u64 ohci_base; ++ resource_size_t ohci_base; + + if (pci_enable_device(dev)) + FAIL(-ENXIO, "Failed to enable OHCI hardware"); +--- gregkh-2.6.orig/drivers/infiniband/hw/ipath/ipath_driver.c ++++ gregkh-2.6/drivers/infiniband/hw/ipath/ipath_driver.c +@@ -460,10 +460,10 @@ static int __devinit ipath_init_one(stru + for (j = 0; j < 6; j++) { + if (!pdev->resource[j].start) + continue; +- ipath_cdbg(VERBOSE, "BAR %d start %lx, end %lx, len %lx\n", +- j, pdev->resource[j].start, +- pdev->resource[j].end, +- pci_resource_len(pdev, j)); ++ ipath_cdbg(VERBOSE, "BAR %d start %llx, end %llx, len %llx\n", ++ j, (unsigned long long)pdev->resource[j].start, ++ (unsigned long long)pdev->resource[j].end, ++ (unsigned long long)pci_resource_len(pdev, j)); + } + + if (!addr) { +--- gregkh-2.6.orig/drivers/net/8139cp.c ++++ gregkh-2.6/drivers/net/8139cp.c +@@ -1668,7 +1668,7 @@ static int cp_init_one (struct pci_dev * + struct cp_private *cp; + int rc; + void __iomem *regs; +- u64 pciaddr; ++ resource_size_t pciaddr; + unsigned int addr_len, i, pci_using_dac; + u8 pci_rev; + +--- gregkh-2.6.orig/drivers/pcmcia/rsrc_nonstatic.c ++++ gregkh-2.6/drivers/pcmcia/rsrc_nonstatic.c +@@ -72,7 +72,7 @@ static DEFINE_MUTEX(rsrc_mutex); + ======================================================================*/ + + static struct resource * +-make_resource(u64 b, u64 n, int flags, char *name) ++make_resource(resource_size_t b, resource_size_t n, int flags, char *name) + { + struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL); + +@@ -86,7 +86,8 @@ make_resource(u64 b, u64 n, int flags, c + } + + static struct resource * +-claim_region(struct pcmcia_socket *s, u64 base, u64 size, int type, char *name) ++claim_region(struct pcmcia_socket *s, resource_size_t base, ++ resource_size_t size, int type, char *name) + { + struct resource *res, *parent; + +@@ -517,10 +518,11 @@ struct pcmcia_align_data { + }; + + static void +-pcmcia_common_align(void *align_data, struct resource *res, u64 size, u64 align) ++pcmcia_common_align(void *align_data, struct resource *res, ++ resource_size_t size, resource_size_t align) + { + struct pcmcia_align_data *data = align_data; +- u64 start; ++ resource_size_t start; + /* + * Ensure that we have the correct start address + */ +@@ -531,7 +533,8 @@ pcmcia_common_align(void *align_data, st + } + + static void +-pcmcia_align(void *align_data, struct resource *res, u64 size, u64 align) ++pcmcia_align(void *align_data, struct resource *res, resource_size_t size, ++ resource_size_t align) + { + struct pcmcia_align_data *data = align_data; + struct resource_map *m; +--- gregkh-2.6.orig/drivers/pnp/manager.c ++++ gregkh-2.6/drivers/pnp/manager.c +@@ -20,7 +20,7 @@ DECLARE_MUTEX(pnp_res_mutex); + + static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) + { +- u64 *start, *end; ++ resource_size_t *start, *end; + unsigned long *flags; + + if (!dev || !rule) +@@ -64,7 +64,7 @@ static int pnp_assign_port(struct pnp_de + + static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) + { +- u64 *start, *end; ++ resource_size_t *start, *end; + unsigned long *flags; + + if (!dev || !rule) +@@ -118,7 +118,7 @@ static int pnp_assign_mem(struct pnp_dev + + static int pnp_assign_irq(struct pnp_dev * dev, struct pnp_irq *rule, int idx) + { +- u64 *start, *end; ++ resource_size_t *start, *end; + unsigned long *flags; + int i; + +@@ -171,7 +171,7 @@ static int pnp_assign_irq(struct pnp_dev + + static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) + { +- u64 *start, *end; ++ resource_size_t *start, *end; + unsigned long *flags; + int i; + +@@ -586,7 +586,8 @@ int pnp_disable_dev(struct pnp_dev *dev) + * @size: size of region + * + */ +-void pnp_resource_change(struct resource *resource, u64 start, u64 size) ++void pnp_resource_change(struct resource *resource, resource_size_t start, ++ resource_size_t size) + { + if (resource == NULL) + return; +--- gregkh-2.6.orig/drivers/pnp/resource.c ++++ gregkh-2.6/drivers/pnp/resource.c +@@ -241,7 +241,7 @@ int pnp_check_port(struct pnp_dev * dev, + { + int tmp; + struct pnp_dev *tdev; +- u64 *port, *end, *tport, *tend; ++ resource_size_t *port, *end, *tport, *tend; + port = &dev->res.port_resource[idx].start; + end = &dev->res.port_resource[idx].end; + +@@ -297,7 +297,7 @@ int pnp_check_mem(struct pnp_dev * dev, + { + int tmp; + struct pnp_dev *tdev; +- u64 *addr, *end, *taddr, *tend; ++ resource_size_t *addr, *end, *taddr, *tend; + addr = &dev->res.mem_resource[idx].start; + end = &dev->res.mem_resource[idx].end; + +@@ -358,7 +358,7 @@ int pnp_check_irq(struct pnp_dev * dev, + { + int tmp; + struct pnp_dev *tdev; +- u64 * irq = &dev->res.irq_resource[idx].start; ++ resource_size_t * irq = &dev->res.irq_resource[idx].start; + + /* if the resource doesn't exist, don't complain about it */ + if (cannot_compare(dev->res.irq_resource[idx].flags)) +@@ -423,7 +423,7 @@ int pnp_check_dma(struct pnp_dev * dev, + #ifndef CONFIG_IA64 + int tmp; + struct pnp_dev *tdev; +- u64 * dma = &dev->res.dma_resource[idx].start; ++ resource_size_t * dma = &dev->res.dma_resource[idx].start; + + /* if the resource doesn't exist, don't complain about it */ + if (cannot_compare(dev->res.dma_resource[idx].flags)) +--- gregkh-2.6.orig/include/linux/pnp.h ++++ gregkh-2.6/include/linux/pnp.h +@@ -389,7 +389,8 @@ int pnp_start_dev(struct pnp_dev *dev); + int pnp_stop_dev(struct pnp_dev *dev); + int pnp_activate_dev(struct pnp_dev *dev); + int pnp_disable_dev(struct pnp_dev *dev); +-void pnp_resource_change(struct resource *resource, u64 start, u64 size); ++void pnp_resource_change(struct resource *resource, resource_size_t start, ++ resource_size_t size); + + /* protocol helpers */ + int pnp_is_active(struct pnp_dev * dev); +@@ -434,7 +435,9 @@ static inline int pnp_start_dev(struct p + static inline int pnp_stop_dev(struct pnp_dev *dev) { return -ENODEV; } + static inline int pnp_activate_dev(struct pnp_dev *dev) { return -ENODEV; } + static inline int pnp_disable_dev(struct pnp_dev *dev) { return -ENODEV; } +-static inline void pnp_resource_change(struct resource *resource, u64 start, u64 size) { } ++static inline void pnp_resource_change(struct resource *resource, ++ resource_size_t start, ++ resource_size_t size) { } + + /* protocol helpers */ + static inline int pnp_is_active(struct pnp_dev * dev) { return 0; } diff --git a/pci/kconfigurable-resources-driver-pci-changes.patch b/pci/kconfigurable-resources-driver-pci-changes.patch new file mode 100644 index 0000000000000..570ffee610d83 --- /dev/null +++ b/pci/kconfigurable-resources-driver-pci-changes.patch @@ -0,0 +1,165 @@ +From vivek@in.ibm.com Fri May 5 10:30:21 2006 +Date: Fri, 5 May 2006 13:30:02 -0400 +From: Vivek Goyal <vgoyal@in.ibm.com> +To: linux kernel mailing list <linux-kernel@vger.kernel.org> +Cc: Greg KH <gregkh@suse.de>, Morton Andrew Morton <akpm@osdl.org> +Subject: kconfigurable resources driver pci changes +Message-ID: <20060505173002.GD6450@in.ibm.com> +Content-Disposition: inline + + + +o Changes to drivers/pci/* for kconfigurable resources. + +Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/pci/bus.c | 10 +++++----- + drivers/pci/pci-sysfs.c | 4 ++-- + drivers/pci/pci.h | 6 +++--- + drivers/pci/proc.c | 4 ++-- + drivers/pci/setup-res.c | 6 +++--- + include/linux/pci.h | 13 +++++++------ + 6 files changed, 22 insertions(+), 21 deletions(-) + +--- gregkh-2.6.orig/drivers/pci/bus.c ++++ gregkh-2.6/drivers/pci/bus.c +@@ -34,11 +34,11 @@ + */ + int + pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, +- u64 size, u64 align, u64 min, +- unsigned int type_mask, +- void (*alignf)(void *, struct resource *, +- u64, u64), +- void *alignf_data) ++ resource_size_t size, resource_size_t align, ++ resource_size_t min, unsigned int type_mask, ++ void (*alignf)(void *, struct resource *, resource_size_t, ++ resource_size_t), ++ void *alignf_data) + { + int i, ret = -ENOMEM; + +--- gregkh-2.6.orig/drivers/pci/pci-sysfs.c ++++ gregkh-2.6/drivers/pci/pci-sysfs.c +@@ -64,7 +64,7 @@ resource_show(struct device * dev, struc + char * str = buf; + int i; + int max = 7; +- u64 start, end; ++ resource_size_t start, end; + + if (pci_dev->subordinate) + max = DEVICE_COUNT_RESOURCE; +@@ -320,7 +320,7 @@ pci_mmap_resource(struct kobject *kobj, + struct device, kobj)); + struct resource *res = (struct resource *)attr->private; + enum pci_mmap_state mmap_type; +- u64 start, end; ++ resource_size_t start, end; + int i; + + for (i = 0; i < PCI_ROM_RESOURCE; i++) +--- gregkh-2.6.orig/drivers/pci/pci.h ++++ gregkh-2.6/drivers/pci/pci.h +@@ -6,10 +6,10 @@ extern int pci_create_sysfs_dev_files(st + extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev); + extern void pci_cleanup_rom(struct pci_dev *dev); + extern int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, +- u64 size, u64 align, +- u64 min, unsigned int type_mask, ++ resource_size_t size, resource_size_t align, ++ resource_size_t min, unsigned int type_mask, + void (*alignf)(void *, struct resource *, +- u64, u64), ++ resource_size_t, resource_size_t), + void *alignf_data); + /* Firmware callbacks */ + extern int (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state); +--- gregkh-2.6.orig/drivers/pci/proc.c ++++ gregkh-2.6/drivers/pci/proc.c +@@ -350,14 +350,14 @@ static int show_device(struct seq_file * + dev->irq); + /* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */ + for (i=0; i<7; i++) { +- u64 start, end; ++ 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++) { +- u64 start, end; ++ resource_size_t start, end; + pci_resource_to_user(dev, i, &dev->resource[i], &start, &end); + seq_printf(m, "\t%16llx", + dev->resource[i].start < dev->resource[i].end ? +--- gregkh-2.6.orig/drivers/pci/setup-res.c ++++ gregkh-2.6/drivers/pci/setup-res.c +@@ -121,7 +121,7 @@ int pci_assign_resource(struct pci_dev * + { + struct pci_bus *bus = dev->bus; + struct resource *res = dev->resource + resno; +- u64 size, min, align; ++ resource_size_t size, min, align; + int ret; + + size = res->end - res->start + 1; +@@ -169,7 +169,7 @@ pdev_sort_resources(struct pci_dev *dev, + for (i = 0; i < PCI_NUM_RESOURCES; i++) { + struct resource *r; + struct resource_list *list, *tmp; +- u64 r_align; ++ resource_size_t r_align; + + r = &dev->resource[i]; + r_align = r->end - r->start; +@@ -185,7 +185,7 @@ pdev_sort_resources(struct pci_dev *dev, + } + r_align = (i < PCI_BRIDGE_RESOURCES) ? r_align + 1 : r->start; + for (list = head; ; list = list->next) { +- u64 align = 0; ++ resource_size_t align = 0; + struct resource_list *ln = list->next; + int idx; + +--- gregkh-2.6.orig/include/linux/pci.h ++++ gregkh-2.6/include/linux/pci.h +@@ -403,8 +403,8 @@ int pcibios_enable_device(struct pci_dev + char *pcibios_setup (char *str); + + /* Used only when drivers/pci/setup.c is used */ +-void pcibios_align_resource(void *, struct resource *, +- u64, u64); ++void pcibios_align_resource(void *, struct resource *, resource_size_t, ++ resource_size_t); + void pcibios_update_irq(struct pci_dev *, int irq); + + /* Generic PCI functions used internally */ +@@ -530,10 +530,10 @@ void pci_release_region(struct pci_dev * + + /* drivers/pci/bus.c */ + int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, +- u64 size, u64 align, +- u64 min, unsigned int type_mask, ++ resource_size_t size, resource_size_t align, ++ resource_size_t min, unsigned int type_mask, + void (*alignf)(void *, struct resource *, +- u64, u64), ++ resource_size_t, resource_size_t), + void *alignf_data); + void pci_enable_bridges(struct pci_bus *bus); + +@@ -727,7 +727,8 @@ static inline char *pci_name(struct pci_ + */ + #ifndef HAVE_ARCH_PCI_RESOURCE_TO_USER + static inline void pci_resource_to_user(const struct pci_dev *dev, int bar, +- const struct resource *rsrc, u64 *start, u64 *end) ++ const struct resource *rsrc, resource_size_t *start, ++ resource_size_t *end) + { + *start = rsrc->start; + *end = rsrc->end; |