aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2008-10-07 15:14:55 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-10-09 16:29:46 -0400
commit3bca103a1e658d23737d20e1989139d9ca8973bf (patch)
tree672dcfde5a28cd0b2c4b06521f65413eab49750a
parent000b50259271c9c14f6e175795f5164e1d51d35b (diff)
[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
148 148
149config ZONE_DMA 149config ZONE_DMA
150 bool 150 bool
151 default y
152 151
153config GENERIC_ISA_DMA 152config GENERIC_ISA_DMA
154 bool 153 bool
@@ -357,6 +356,7 @@ config ARCH_IXP4XX
357 select GENERIC_GPIO 356 select GENERIC_GPIO
358 select GENERIC_TIME 357 select GENERIC_TIME
359 select GENERIC_CLOCKEVENTS 358 select GENERIC_CLOCKEVENTS
359 select ZONE_DMA if PCI
360 help 360 help
361 Support for Intel's IXP4XX (XScale) family of processors. 361 Support for Intel's IXP4XX (XScale) family of processors.
362 362
@@ -503,6 +503,7 @@ config ARCH_SHARK
503 bool "Shark" 503 bool "Shark"
504 select ISA 504 select ISA
505 select ISA_DMA 505 select ISA_DMA
506 select ZONE_DMA
506 select PCI 507 select PCI
507 help 508 help
508 Support for the StrongARM based Digital DNARD machine, also known 509 Support for the StrongARM based Digital DNARD machine, also known
@@ -524,6 +525,7 @@ config ARCH_DAVINCI
524 select GENERIC_CLOCKEVENTS 525 select GENERIC_CLOCKEVENTS
525 select GENERIC_GPIO 526 select GENERIC_GPIO
526 select HAVE_CLK 527 select HAVE_CLK
528 select ZONE_DMA
527 help 529 help
528 Support for TI's DaVinci platform. 530 Support for TI's DaVinci platform.
529 531
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
12 12
13config SA1111 13config SA1111
14 bool 14 bool
15 select DMABOUNCE 15 select DMABOUNCE if !ARCH_PXA
16 select ZONE_DMA if !ARCH_PXA
16 17
17config DMABOUNCE 18config DMABOUNCE
18 bool 19 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 @@
137 137
138#ifndef arch_adjust_zones 138#ifndef arch_adjust_zones
139#define arch_adjust_zones(node,size,holes) do { } while (0) 139#define arch_adjust_zones(node,size,holes) do { } while (0)
140#elif !defined(CONFIG_ZONE_DMA)
141#error "custom arch_adjust_zones() requires CONFIG_ZONE_DMA"
140#endif 142#endif
141 143
142/* 144/*
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
210 bool "CompuLab CM-X270 modules" 210 bool "CompuLab CM-X270 modules"
211 select PXA27x 211 select PXA27x
212 select IWMMXT 212 select IWMMXT
213 select ZONE_DMA if PCI
213 214
214config MACH_MAGICIAN 215config MACH_MAGICIAN
215 bool "Enable HTC Magician Support" 216 bool "Enable HTC Magician Support"