diff options
Diffstat (limited to 'arch/powerpc/platforms/embedded6xx/wii.c')
| -rw-r--r-- | arch/powerpc/platforms/embedded6xx/wii.c | 34 | 
1 files changed, 9 insertions, 25 deletions
diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c index 649473a729b..6d8dadf19f0 100644 --- a/arch/powerpc/platforms/embedded6xx/wii.c +++ b/arch/powerpc/platforms/embedded6xx/wii.c @@ -18,7 +18,6 @@  #include <linux/init.h>  #include <linux/irq.h>  #include <linux/seq_file.h> -#include <linux/kexec.h>  #include <linux/of_platform.h>  #include <linux/memblock.h>  #include <mm/mmu_decl.h> @@ -80,24 +79,19 @@ void __init wii_memory_fixups(void)  	BUG_ON(memblock.memory.cnt != 2);  	BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base)); -	p[0].size = _ALIGN_DOWN(p[0].size, PAGE_SIZE); -	p[1].size = _ALIGN_DOWN(p[1].size, PAGE_SIZE); +	/* trim unaligned tail */ +	memblock_remove(ALIGN(p[1].base + p[1].size, PAGE_SIZE), +			(phys_addr_t)ULLONG_MAX); -	wii_hole_start = p[0].base + p[0].size; +	/* determine hole, add & reserve them */ +	wii_hole_start = ALIGN(p[0].base + p[0].size, PAGE_SIZE);  	wii_hole_size = p[1].base - wii_hole_start; - -	pr_info("MEM1: <%08llx %08llx>\n", p[0].base, p[0].size); -	pr_info("HOLE: <%08lx %08lx>\n", wii_hole_start, wii_hole_size); -	pr_info("MEM2: <%08llx %08llx>\n", p[1].base, p[1].size); - -	p[0].size += wii_hole_size + p[1].size; - -	memblock.memory.cnt = 1; -	memblock_analyze(); - -	/* reserve the hole */ +	memblock_add(wii_hole_start, wii_hole_size);  	memblock_reserve(wii_hole_start, wii_hole_size); +	BUG_ON(memblock.memory.cnt != 1); +	__memblock_dump_all(); +  	/* allow ioremapping the address space in the hole */  	__allow_ioremap_reserved = 1;  } @@ -226,13 +220,6 @@ static void wii_shutdown(void)  	flipper_quiesce();  } -#ifdef CONFIG_KEXEC -static int wii_machine_kexec_prepare(struct kimage *image) -{ -	return 0; -} -#endif /* CONFIG_KEXEC */ -  define_machine(wii) {  	.name			= "wii",  	.probe			= wii_probe, @@ -246,9 +233,6 @@ define_machine(wii) {  	.calibrate_decr		= generic_calibrate_decr,  	.progress		= udbg_progress,  	.machine_shutdown	= wii_shutdown, -#ifdef CONFIG_KEXEC -	.machine_kexec_prepare	= wii_machine_kexec_prepare, -#endif  };  static struct of_device_id wii_of_bus[] = {  | 
