ARM: mvebu: split again armada_370_xp_pmsu_idle_enter() in PMSU code
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-mvebu / pmsu.c
index b31a8293a347c04a1974db7ba1644eb94498a309..5fda549d1c6bdf848aecd61cf4faad027b22a4aa 100644 (file)
@@ -143,7 +143,7 @@ static void armada_370_xp_pmsu_enable_l2_powerdown_onidle(void)
 }
 
 /* No locking is needed because we only access per-CPU registers */
-int armada_370_xp_pmsu_idle_enter(unsigned long deepidle)
+static int armada_370_xp_prepare(unsigned long deepidle)
 {
        unsigned int hw_cpu = cpu_logical_map(smp_processor_id());
        u32 reg;
@@ -179,6 +179,17 @@ int armada_370_xp_pmsu_idle_enter(unsigned long deepidle)
        reg |= PMSU_CPU_POWER_DOWN_DIS_SNP_Q_SKIP;
        writel(reg, pmsu_mp_base + PMSU_CPU_POWER_DOWN_CONTROL(hw_cpu));
 
+       return 0;
+}
+
+int armada_370_xp_pmsu_idle_enter(unsigned long deepidle)
+{
+       int ret;
+
+       ret = armada_370_xp_prepare(deepidle);
+       if (ret)
+               return ret;
+
        v7_exit_coherency_flush(all);
 
        ll_disable_coherency();