From: Vivek Goyal o Changes to arch specific code for kconfigurable resources. This patch contains changes for arch/[a-i]* Signed-off-by: Vivek Goyal Cc: Greg KH Signed-off-by: Andrew Morton --- 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/h8300/Kconfig.cpu | 6 ++++++ arch/i386/Kconfig | 7 +++++++ arch/i386/pci/i386.c | 4 ++-- arch/ia64/pci/pci.c | 2 +- 12 files changed, 53 insertions(+), 12 deletions(-) diff -puN arch/alpha/kernel/pci.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/alpha/kernel/pci.c --- devel/arch/alpha/kernel/pci.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/alpha/kernel/pci.c 2006-05-10 20:57:18.000000000 -0700 @@ -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 */ diff -puN arch/arm26/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/arm26/Kconfig --- devel/arch/arm26/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/arm26/Kconfig 2006-05-10 20:57:18.000000000 -0700 @@ -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" diff -puN arch/arm/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/arm/Kconfig --- devel/arch/arm/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/arm/Kconfig 2006-05-10 20:57:18.000000000 -0700 @@ -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 || \ diff -puN arch/arm/kernel/bios32.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/arm/kernel/bios32.c --- devel/arch/arm/kernel/bios32.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/arm/kernel/bios32.c 2006-05-10 20:57:18.000000000 -0700 @@ -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; diff -puN arch/cris/arch-v32/drivers/pci/bios.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/cris/arch-v32/drivers/pci/bios.c --- devel/arch/cris/arch-v32/drivers/pci/bios.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/cris/arch-v32/drivers/pci/bios.c 2006-05-10 20:57:18.000000000 -0700 @@ -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; diff -puN arch/cris/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/cris/Kconfig --- devel/arch/cris/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/cris/Kconfig 2006-05-10 20:57:18.000000000 -0700 @@ -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" diff -puN arch/frv/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/frv/Kconfig --- devel/arch/frv/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/frv/Kconfig 2006-05-10 20:57:18.000000000 -0700 @@ -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 diff -puN arch/frv/mb93090-mb00/pci-frv.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/frv/mb93090-mb00/pci-frv.c --- devel/arch/frv/mb93090-mb00/pci-frv.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/frv/mb93090-mb00/pci-frv.c 2006-05-10 20:57:18.000000000 -0700 @@ -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; diff -puN arch/h8300/Kconfig.cpu~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/h8300/Kconfig.cpu --- devel/arch/h8300/Kconfig.cpu~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/h8300/Kconfig.cpu 2006-05-10 20:57:18.000000000 -0700 @@ -183,4 +183,10 @@ 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 diff -puN arch/i386/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/i386/Kconfig --- devel/arch/i386/Kconfig~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/i386/Kconfig 2006-05-10 20:57:18.000000000 -0700 @@ -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 diff -puN arch/i386/pci/i386.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/i386/pci/i386.c --- devel/arch/i386/pci/i386.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/i386/pci/i386.c 2006-05-10 20:57:18.000000000 -0700 @@ -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; diff -puN arch/ia64/pci/pci.c~kconfigurable-resources-arch-dependent-changes-arch-a-i arch/ia64/pci/pci.c --- devel/arch/ia64/pci/pci.c~kconfigurable-resources-arch-dependent-changes-arch-a-i 2006-05-10 20:57:18.000000000 -0700 +++ devel-akpm/arch/ia64/pci/pci.c 2006-05-10 20:57:18.000000000 -0700 @@ -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) { } _