Commit 8d717a52d1b0959128be5134dd12608e8e4f2115

Authored by Russell King
1 parent 2778f62056

ARM: Convert platform reservations to use LMB rather than bootmem

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Showing 14 changed files with 32 additions and 31 deletions Side-by-side Diff

arch/arm/include/asm/memblock.h
... ... @@ -9,8 +9,9 @@
9 9 #endif
10 10  
11 11 struct meminfo;
  12 +struct machine_desc;
12 13  
13   -extern void arm_memblock_init(struct meminfo *);
  14 +extern void arm_memblock_init(struct meminfo *, struct machine_desc *);
14 15  
15 16 #endif
arch/arm/kernel/setup.c
... ... @@ -716,7 +716,7 @@
716 716  
717 717 parse_early_param();
718 718  
719   - arm_memblock_init(&meminfo);
  719 + arm_memblock_init(&meminfo, mdesc);
720 720  
721 721 paging_init(mdesc);
722 722 request_standard_resources(&meminfo, mdesc);
arch/arm/mach-clps711x/edb7211-arch.c
... ... @@ -18,7 +18,7 @@
18 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 19 */
20 20 #include <linux/init.h>
21   -#include <linux/bootmem.h>
  21 +#include <linux/memblock.h>
22 22 #include <linux/types.h>
23 23 #include <linux/string.h>
24 24  
... ... @@ -33,7 +33,7 @@
33 33 /* Reserve screen memory region at the start of main system memory. */
34 34 static void __init edb7211_reserve(void)
35 35 {
36   - reserve_bootmem(PHYS_OFFSET, 0x00020000, BOOTMEM_DEFAULT);
  36 + memblock_reserve(PHYS_OFFSET, 0x00020000);
37 37 }
38 38  
39 39 static void __init
arch/arm/mach-integrator/core.c
... ... @@ -14,7 +14,7 @@
14 14 #include <linux/spinlock.h>
15 15 #include <linux/interrupt.h>
16 16 #include <linux/irq.h>
17   -#include <linux/bootmem.h>
  17 +#include <linux/memblock.h>
18 18 #include <linux/sched.h>
19 19 #include <linux/smp.h>
20 20 #include <linux/termios.h>
... ... @@ -225,6 +225,6 @@
225 225 */
226 226 void __init integrator_reserve(void)
227 227 {
228   - reserve_bootmem(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET, BOOTMEM_DEFAULT);
  228 + memblock_reserve(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET);
229 229 }
arch/arm/mach-pxa/palmt5.c
... ... @@ -21,7 +21,7 @@
21 21 #include <linux/irq.h>
22 22 #include <linux/gpio_keys.h>
23 23 #include <linux/input.h>
24   -#include <linux/bootmem.h>
  24 +#include <linux/memblock.h>
25 25 #include <linux/pda_power.h>
26 26 #include <linux/pwm_backlight.h>
27 27 #include <linux/gpio.h>
... ... @@ -399,7 +399,7 @@
399 399  
400 400 static void __init palmt5_reserve(void)
401 401 {
402   - reserve_bootmem(0xa0200000, 0x1000, BOOTMEM_EXCLUSIVE);
  402 + memblock_reserve(0xa0200000, 0x1000);
403 403 }
404 404  
405 405 static void __init palmt5_init(void)
arch/arm/mach-pxa/palmtreo.c
... ... @@ -20,7 +20,7 @@
20 20 #include <linux/irq.h>
21 21 #include <linux/gpio_keys.h>
22 22 #include <linux/input.h>
23   -#include <linux/bootmem.h>
  23 +#include <linux/memblock.h>
24 24 #include <linux/pda_power.h>
25 25 #include <linux/pwm_backlight.h>
26 26 #include <linux/gpio.h>
... ... @@ -636,8 +636,8 @@
636 636  
637 637 static void __init treo_reserve(void)
638 638 {
639   - reserve_bootmem(0xa0000000, 0x1000, BOOTMEM_EXCLUSIVE);
640   - reserve_bootmem(0xa2000000, 0x1000, BOOTMEM_EXCLUSIVE);
  639 + memblock_reserve(0xa0000000, 0x1000);
  640 + memblock_reserve(0xa2000000, 0x1000);
641 641 }
642 642  
643 643 static void __init treo_init(void)
arch/arm/mach-s3c2410/mach-h1940.c
... ... @@ -15,7 +15,7 @@
15 15 #include <linux/types.h>
16 16 #include <linux/interrupt.h>
17 17 #include <linux/list.h>
18   -#include <linux/bootmem.h>
  18 +#include <linux/memblock.h>
19 19 #include <linux/timer.h>
20 20 #include <linux/init.h>
21 21 #include <linux/sysdev.h>
... ... @@ -308,8 +308,8 @@
308 308 /* H1940 and RX3715 need to reserve this for suspend */
309 309 static void __init h1940_reserve(void)
310 310 {
311   - reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
312   - reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
  311 + memblock_reserve(0x30003000, 0x1000);
  312 + memblock_reserve(0x30081000, 0x1000);
313 313 }
314 314  
315 315 static void __init h1940_init_irq(void)
arch/arm/mach-s3c2440/mach-rx1950.c
... ... @@ -15,7 +15,7 @@
15 15 #include <linux/types.h>
16 16 #include <linux/interrupt.h>
17 17 #include <linux/list.h>
18   -#include <linux/bootmem.h>
  18 +#include <linux/memblock.h>
19 19 #include <linux/delay.h>
20 20 #include <linux/timer.h>
21 21 #include <linux/init.h>
... ... @@ -574,8 +574,8 @@
574 574 /* H1940 and RX3715 need to reserve this for suspend */
575 575 static void __init rx1950_reserve(void)
576 576 {
577   - reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
578   - reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
  577 + memblock_reserve(0x30003000, 0x1000);
  578 + memblock_reserve(0x30081000, 0x1000);
579 579 }
580 580  
581 581 MACHINE_START(RX1950, "HP iPAQ RX1950")
arch/arm/mach-s3c2440/mach-rx3715.c
... ... @@ -15,7 +15,7 @@
15 15 #include <linux/types.h>
16 16 #include <linux/interrupt.h>
17 17 #include <linux/list.h>
18   -#include <linux/bootmem.h>
  18 +#include <linux/memblock.h>
19 19 #include <linux/timer.h>
20 20 #include <linux/init.h>
21 21 #include <linux/tty.h>
... ... @@ -195,8 +195,8 @@
195 195 /* H1940 and RX3715 need to reserve this for suspend */
196 196 static void __init rx3715_reserve(void)
197 197 {
198   - reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT);
199   - reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT);
  198 + memblock_reserve(0x30003000, 0x1000);
  199 + memblock_reserve(0x30081000, 0x1000);
200 200 }
201 201  
202 202 static void __init rx3715_init_irq(void)
arch/arm/mach-u300/u300.c
... ... @@ -14,7 +14,7 @@
14 14 #include <linux/sched.h>
15 15 #include <linux/interrupt.h>
16 16 #include <linux/ioport.h>
17   -#include <linux/bootmem.h>
  17 +#include <linux/memblock.h>
18 18 #include <linux/platform_device.h>
19 19 #include <linux/io.h>
20 20 #include <mach/hardware.h>
... ... @@ -33,7 +33,7 @@
33 33 #ifdef CONFIG_MACH_U300_SINGLE_RAM
34 34 #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \
35 35 CONFIG_MACH_U300_2MB_ALIGNMENT_FIX
36   - reserve_bootmem(PHYS_OFFSET, 0x00100000, BOOTMEM_DEFAULT);
  36 + memblock_reserve(PHYS_OFFSET, 0x00100000);
37 37 #endif
38 38 #endif
39 39 }
... ... @@ -271,7 +271,7 @@
271 271 }
272 272 #endif
273 273  
274   -void __init arm_memblock_init(struct meminfo *mi)
  274 +void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
275 275 {
276 276 int i;
277 277  
278 278  
... ... @@ -297,11 +297,15 @@
297 297  
298 298 arm_mm_memblock_reserve();
299 299  
  300 + /* reserve any platform specific memblock areas */
  301 + if (mdesc->reserve)
  302 + mdesc->reserve();
  303 +
300 304 memblock_analyze();
301 305 memblock_dump_all();
302 306 }
303 307  
304   -void __init bootmem_init(struct machine_desc *mdesc)
  308 +void __init bootmem_init(void)
305 309 {
306 310 struct meminfo *mi = &meminfo;
307 311 unsigned long min, max_low, max_high;
... ... @@ -311,9 +315,6 @@
311 315 find_limits(mi, &min, &max_low, &max_high);
312 316  
313 317 arm_bootmem_init(mi, min, max_low);
314   -
315   - if (mdesc->reserve)
316   - mdesc->reserve();
317 318  
318 319 /*
319 320 * Sparsemem tries to allocate bootmem in memory_present(),
... ... @@ -28,7 +28,6 @@
28 28  
29 29 #endif
30 30  
31   -struct machine_desc;
32   -void __init bootmem_init(struct machine_desc *);
  31 +void __init bootmem_init(void);
33 32 void arm_mm_memblock_reserve(void);
... ... @@ -1006,7 +1006,7 @@
1006 1006 /* allocate the zero page. */
1007 1007 zero_page = early_alloc(PAGE_SIZE);
1008 1008  
1009   - bootmem_init(mdesc);
  1009 + bootmem_init();
1010 1010  
1011 1011 empty_zero_page = virt_to_page(zero_page);
1012 1012 __flush_dcache_page(NULL, empty_zero_page);
... ... @@ -33,7 +33,7 @@
33 33 */
34 34 void __init paging_init(struct machine_desc *mdesc)
35 35 {
36   - bootmem_init(mdesc);
  36 + bootmem_init();
37 37 }
38 38  
39 39 /*