[ARM] Move zone adjustment for SA1111 on SA11x0 platforms
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Wed, 16 Nov 2005 17:38:40 +0000 (17:38 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 16 Nov 2005 17:38:40 +0000 (17:38 +0000)
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>
arch/arm/common/sa1111.c
include/asm-arm/arch-sa1100/memory.h

index 39a6eea300a265b0c8d7705b032710c8d9db7134..25387cf47530442bedca12fe93ef267f2e707a21 100644 (file)
@@ -132,6 +132,17 @@ static struct sa1111_dev_info sa1111_devices[] = {
        },
 };
 
+void __init sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes)
+{
+       unsigned int sz = SZ_1M >> PAGE_SHIFT;
+
+       if (node != 0)
+               sz = 0;
+
+       size[1] = size[0] - sz;
+       size[0] = sz;
+}
+
 /*
  * SA1111 interrupt support.  Since clearing an IRQ while there are
  * active IRQs causes the interrupt output to pulse, the upper levels
index 0fc555b4c912a7f5d1f92836e1e87cda6bcd0f88..018a9f0e3986d2d8f2c53f7f33b7ef17cfb86dc2 100644 (file)
 #ifndef __ASSEMBLY__
 
 #ifdef CONFIG_SA1111
-static inline void
-__arch_adjust_zones(int node, unsigned long *size, unsigned long *holes)
-{
-       unsigned int sz = SZ_1M >> PAGE_SHIFT;
-
-       if (node != 0)
-               sz = 0;
-
-       size[1] = size[0] - sz;
-       size[0] = sz;
-}
+void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes);
 
 #define arch_adjust_zones(node, size, holes) \
-       __arch_adjust_zones(node, size, holes)
+       sa1111_adjust_zones(node, size, holes)
 
 #define ISA_DMA_THRESHOLD      (PHYS_OFFSET + SZ_1M - 1)