diff options
author | Nicolas Pitre <nico@cam.org> | 2008-10-07 15:14:55 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-10-09 16:29:46 -0400 |
commit | 3bca103a1e658d23737d20e1989139d9ca8973bf (patch) | |
tree | 672dcfde5a28cd0b2c4b06521f65413eab49750a | |
parent | 000b50259271c9c14f6e175795f5164e1d51d35b (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/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/common/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/memory.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/Kconfig | 1 |
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 | ||
149 | config ZONE_DMA | 149 | config ZONE_DMA |
150 | bool | 150 | bool |
151 | default y | ||
152 | 151 | ||
153 | config GENERIC_ISA_DMA | 152 | config 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 | ||
13 | config SA1111 | 13 | config SA1111 |
14 | bool | 14 | bool |
15 | select DMABOUNCE | 15 | select DMABOUNCE if !ARCH_PXA |
16 | select ZONE_DMA if !ARCH_PXA | ||
16 | 17 | ||
17 | config DMABOUNCE | 18 | config 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 | ||
214 | config MACH_MAGICIAN | 215 | config MACH_MAGICIAN |
215 | bool "Enable HTC Magician Support" | 216 | bool "Enable HTC Magician Support" |