aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-11-16 12:38:40 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-16 12:38:40 -0500
commit1b12050f17460dc312cfd8cc59c79e181b23062b (patch)
tree5f21465d9eb11f9825d89c3ac225a291f279b1a1
parent8dc39b883e9497445b53c498be7493c3e43af006 (diff)
[ARM] Move zone adjustment for SA1111 on SA11x0 platforms
Unfortunately, using PAGE_SHIFT in asm/arch/memory.h is unsafe, and we can't include asm/page.h into this file because then we have a circular dependency. Move the offending code to arch/arm/common/sa1111.c instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/common/sa1111.c11
-rw-r--r--include/asm-arm/arch-sa1100/memory.h14
2 files changed, 13 insertions, 12 deletions
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 39a6eea300a2..25387cf47530 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -132,6 +132,17 @@ static struct sa1111_dev_info sa1111_devices[] = {
132 }, 132 },
133}; 133};
134 134
135void __init sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes)
136{
137 unsigned int sz = SZ_1M >> PAGE_SHIFT;
138
139 if (node != 0)
140 sz = 0;
141
142 size[1] = size[0] - sz;
143 size[0] = sz;
144}
145
135/* 146/*
136 * SA1111 interrupt support. Since clearing an IRQ while there are 147 * SA1111 interrupt support. Since clearing an IRQ while there are
137 * active IRQs causes the interrupt output to pulse, the upper levels 148 * active IRQs causes the interrupt output to pulse, the upper levels
diff --git a/include/asm-arm/arch-sa1100/memory.h b/include/asm-arm/arch-sa1100/memory.h
index 0fc555b4c912..018a9f0e3986 100644
--- a/include/asm-arm/arch-sa1100/memory.h
+++ b/include/asm-arm/arch-sa1100/memory.h
@@ -18,20 +18,10 @@
18#ifndef __ASSEMBLY__ 18#ifndef __ASSEMBLY__
19 19
20#ifdef CONFIG_SA1111 20#ifdef CONFIG_SA1111
21static inline void 21void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes);
22__arch_adjust_zones(int node, unsigned long *size, unsigned long *holes)
23{
24 unsigned int sz = SZ_1M >> PAGE_SHIFT;
25
26 if (node != 0)
27 sz = 0;
28
29 size[1] = size[0] - sz;
30 size[0] = sz;
31}
32 22
33#define arch_adjust_zones(node, size, holes) \ 23#define arch_adjust_zones(node, size, holes) \
34 __arch_adjust_zones(node, size, holes) 24 sa1111_adjust_zones(node, size, holes)
35 25
36#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_1M - 1) 26#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_1M - 1)
37 27