rk30: smp: boot_secondary power off cpu1 first
author黄涛 <huangtao@rock-chips.com>
Sun, 25 Mar 2012 03:39:31 +0000 (11:39 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sun, 25 Mar 2012 03:39:31 +0000 (11:39 +0800)
arch/arm/mach-rk30/platsmp.c

index c727174f658eec4d96b68f1b7af6b25625c38a57..144f04d3c9d302f3df063fa51cb46695b5804cdb 100644 (file)
@@ -68,16 +68,19 @@ extern void rk30_sram_secondary_startup(void);
 
 int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
-       static bool copied;
+       static bool first = true;
 
-       if (!copied) {
+       if (first) {
                unsigned long sz = 0x100;
 
+               pmu_set_power_domain(PD_A9_1, false);
+
                memcpy(RK30_IMEM_BASE + sz - 4, (void *)rk30_sram_secondary_startup + sz - 4, 4);
                memcpy(RK30_IMEM_BASE, rk30_sram_secondary_startup, sz);
                flush_icache_range((unsigned long)RK30_IMEM_BASE, (unsigned long)RK30_IMEM_BASE + sz);
                outer_clean_range(0, sz);
-               copied = true;
+
+               first = false;
        }
 
        dsb_sev();