powerpc/wii: Don't rely on the reserved memory hack
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>
Wed, 28 Mar 2018 00:25:43 +0000 (02:25 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 31 Mar 2018 13:47:43 +0000 (00:47 +1100)
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>
arch/powerpc/platforms/embedded6xx/wii.c

index 419a88938b0a088a6676ead299aa16fcc7cfb133..8bb46dcbebd845cb54cf2c303fa9c726ff5c09e3 100644 (file)
@@ -80,21 +80,9 @@ void __init wii_memory_fixups(void)
        BUG_ON(memblock.memory.cnt != 2);
        BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base));
 
-       /* trim unaligned tail */
-       memblock_remove(ALIGN(p[1].base + p[1].size, PAGE_SIZE),
-                       (phys_addr_t)ULLONG_MAX);
-
-       /* determine hole, add & reserve them */
+       /* determine hole */
        wii_hole_start = ALIGN(p[0].base + p[0].size, PAGE_SIZE);
        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)