Commit de40614e authored by Joonsoo Kim's avatar Joonsoo Kim Committed by Russell King

ARM: 7694/1: ARM, TCM: initialize TCM in paging_init(), instead of setup_arch()

tcm_init() call iotable_init() and it use early_alloc variants which
do memblock allocation. Directly using memblock allocation after
initializing bootmem should not permitted, because bootmem can't know
where are additinally reserved.
So move tcm_init() to a safe place before initalizing bootmem.

(On the U300)
Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent f5d6a144
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
#include <asm/virt.h> #include <asm/virt.h>
#include "atags.h" #include "atags.h"
#include "tcm.h"
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE) #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
...@@ -798,8 +797,6 @@ void __init setup_arch(char **cmdline_p) ...@@ -798,8 +797,6 @@ void __init setup_arch(char **cmdline_p)
reserve_crashkernel(); reserve_crashkernel();
tcm_init();
#ifdef CONFIG_MULTI_IRQ_HANDLER #ifdef CONFIG_MULTI_IRQ_HANDLER
handle_arch_irq = mdesc->handle_irq; handle_arch_irq = mdesc->handle_irq;
#endif #endif
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/system_info.h> #include <asm/system_info.h>
#include "tcm.h"
static struct gen_pool *tcm_pool; static struct gen_pool *tcm_pool;
static bool dtcm_present; static bool dtcm_present;
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <asm/mach/pci.h> #include <asm/mach/pci.h>
#include "mm.h" #include "mm.h"
#include "tcm.h"
/* /*
* empty_zero_page is a special page that is used for * empty_zero_page is a special page that is used for
...@@ -1277,6 +1278,7 @@ void __init paging_init(struct machine_desc *mdesc) ...@@ -1277,6 +1278,7 @@ void __init paging_init(struct machine_desc *mdesc)
dma_contiguous_remap(); dma_contiguous_remap();
devicemaps_init(mdesc); devicemaps_init(mdesc);
kmap_init(); kmap_init();
tcm_init();
top_pmd = pmd_off_k(0xffff0000); top_pmd = pmd_off_k(0xffff0000);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment