summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2008-10-07 20:14:55 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-10-09 21:29:46 +0100
commit3bca103a1e658d23737d20e1989139d9ca8973bf (patch)
tree672dcfde5a28cd0b2c4b06521f65413eab49750a
parent000b50259271c9c14f6e175795f5164e1d51d35b (diff)
downloadblackbird-op-linux-3bca103a1e658d23737d20e1989139d9ca8973bf.tar.gz
blackbird-op-linux-3bca103a1e658d23737d20e1989139d9ca8973bf.zip
[ARM] 5295/1: make ZONE_DMA optional
Most ARM machines don't need a special "DMA" memory zone, and when configured out, the kernel becomes a bit smaller: | text data bss dec hex filename |3826182 102384 111700 4040266 3da64a vmlinux |3823593 101616 111700 4036909 3d992d vmlinux.nodmazone This is because the system now has only one zone total which effect is to optimize away many conditionals in page allocation paths. So let's configure this zone only on machines that need split zones. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/Kconfig4
-rw-r--r--arch/arm/common/Kconfig3
-rw-r--r--arch/arm/include/asm/memory.h2
-rw-r--r--arch/arm/mach-pxa/Kconfig1
4 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f5bf38b5f38d..ea52fae33290 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -148,7 +148,6 @@ config ARCH_MAY_HAVE_PC_FDC
config ZONE_DMA
bool
- default y
config GENERIC_ISA_DMA
bool
@@ -357,6 +356,7 @@ config ARCH_IXP4XX
select GENERIC_GPIO
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
+ select ZONE_DMA if PCI
help
Support for Intel's IXP4XX (XScale) family of processors.
@@ -503,6 +503,7 @@ config ARCH_SHARK
bool "Shark"
select ISA
select ISA_DMA
+ select ZONE_DMA
select PCI
help
Support for the StrongARM based Digital DNARD machine, also known
@@ -524,6 +525,7 @@ config ARCH_DAVINCI
select GENERIC_CLOCKEVENTS
select GENERIC_GPIO
select HAVE_CLK
+ select ZONE_DMA
help
Support for TI's DaVinci platform.
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig
index 3e073467caca..2e32acca02fb 100644
--- a/arch/arm/common/Kconfig
+++ b/arch/arm/common/Kconfig
@@ -12,7 +12,8 @@ config ICST307
config SA1111
bool
- select DMABOUNCE
+ select DMABOUNCE if !ARCH_PXA
+ select ZONE_DMA if !ARCH_PXA
config DMABOUNCE
bool
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index 7834adbe1774..809ff9ab853a 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -137,6 +137,8 @@
#ifndef arch_adjust_zones
#define arch_adjust_zones(node,size,holes) do { } while (0)
+#elif !defined(CONFIG_ZONE_DMA)
+#error "custom arch_adjust_zones() requires CONFIG_ZONE_DMA"
#endif
/*
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index e8ee7ec9ff6d..e484f609feda 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -210,6 +210,7 @@ config MACH_ARMCORE
bool "CompuLab CM-X270 modules"
select PXA27x
select IWMMXT
+ select ZONE_DMA if PCI
config MACH_MAGICIAN
bool "Enable HTC Magician Support"
OpenPOWER on IntegriCloud