Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: Convert platform reservations to use LMB rather than bootmem

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

+32 -31
+2 -1
arch/arm/include/asm/memblock.h
··· 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
+1 -1
arch/arm/kernel/setup.c
··· 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);
+2 -2
arch/arm/mach-clps711x/edb7211-arch.c
··· 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 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
+2 -2
arch/arm/mach-integrator/core.c
··· 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 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 }
+2 -2
arch/arm/mach-pxa/palmt5.c
··· 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 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)
+3 -3
arch/arm/mach-pxa/palmtreo.c
··· 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 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)
+3 -3
arch/arm/mach-s3c2410/mach-h1940.c
··· 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 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)
+3 -3
arch/arm/mach-s3c2440/mach-rx1950.c
··· 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 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")
+3 -3
arch/arm/mach-s3c2440/mach-rx3715.c
··· 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 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)
+2 -2
arch/arm/mach-u300/u300.c
··· 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 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 }
+6 -5
arch/arm/mm/init.c
··· 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 ··· 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; ··· 315 311 find_limits(mi, &min, &max_low, &max_high); 316 312 317 313 arm_bootmem_init(mi, min, max_low); 318 - 319 - if (mdesc->reserve) 320 - mdesc->reserve(); 321 314 322 315 /* 323 316 * Sparsemem tries to allocate bootmem in memory_present(),
+1 -2
arch/arm/mm/mm.h
··· 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);
+1 -1
arch/arm/mm/mmu.c
··· 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);
+1 -1
arch/arm/mm/nommu.c
··· 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 /*