ARM: mach-shmobile: sh73a0 twd_base fix
Fix the case of too late twd_base initialization for SMP on sh73a0 which bas been broken because sh73a0 specific smp_prepare_cpu() and percpu_timer_setup() changed order in the commits:05c74a6cbc
c413521eb4
Without this fix the sh73a0 SMP kernel panics on boot. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
34154f3559
commit
60116a7378
|
@ -59,6 +59,11 @@ unsigned int __init sh73a0_get_core_count(void)
|
||||||
{
|
{
|
||||||
void __iomem *scu_base = scu_base_addr();
|
void __iomem *scu_base = scu_base_addr();
|
||||||
|
|
||||||
|
#ifdef CONFIG_HAVE_ARM_TWD
|
||||||
|
/* twd_base needs to be initialized before percpu_timer_setup() */
|
||||||
|
twd_base = (void __iomem *)0xf0000600;
|
||||||
|
#endif
|
||||||
|
|
||||||
return scu_get_core_count(scu_base);
|
return scu_get_core_count(scu_base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,10 +87,6 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
|
||||||
|
|
||||||
void __init sh73a0_smp_prepare_cpus(void)
|
void __init sh73a0_smp_prepare_cpus(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_HAVE_ARM_TWD
|
|
||||||
twd_base = (void __iomem *)0xf0000600;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
scu_enable(scu_base_addr());
|
scu_enable(scu_base_addr());
|
||||||
|
|
||||||
/* Map the reset vector (in headsmp.S) */
|
/* Map the reset vector (in headsmp.S) */
|
||||||
|
|
Loading…
Reference in New Issue