powerpc/wii: Don't rely on the reserved memory hack
Because the two memory blocks (usually called MEM1 and MEM2) are not merged anymore, __request_region in kernel/resource.c will correctly allow reserving regions in the physical address space between MEM1 and MEM2, where many important peripherals are (GPIO, MMC, USB, ...). A previous change to __ioremap_caller in arch/powerpc/mm/pgtable_32.c ensures that multiple memblocks are properly considered in ioremap; this makes it unnecessary to set __allow_ioremap_reserved. Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
2bbf63264a
commit
57deb8fea0
|
@ -80,21 +80,9 @@ void __init wii_memory_fixups(void)
|
||||||
BUG_ON(memblock.memory.cnt != 2);
|
BUG_ON(memblock.memory.cnt != 2);
|
||||||
BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base));
|
BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base));
|
||||||
|
|
||||||
/* trim unaligned tail */
|
/* determine hole */
|
||||||
memblock_remove(ALIGN(p[1].base + p[1].size, PAGE_SIZE),
|
|
||||||
(phys_addr_t)ULLONG_MAX);
|
|
||||||
|
|
||||||
/* determine hole, add & reserve them */
|
|
||||||
wii_hole_start = ALIGN(p[0].base + p[0].size, PAGE_SIZE);
|
wii_hole_start = ALIGN(p[0].base + p[0].size, PAGE_SIZE);
|
||||||
wii_hole_size = p[1].base - wii_hole_start;
|
wii_hole_size = p[1].base - wii_hole_start;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long __init wii_mmu_mapin_mem2(unsigned long top)
|
unsigned long __init wii_mmu_mapin_mem2(unsigned long top)
|
||||||
|
|
Loading…
Reference in New Issue