diff options
author | Jason Cooper <jason@lakedaemon.net> | 2014-07-24 11:41:36 +0000 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-07-24 11:41:36 +0000 |
commit | 5abe65e3d67aac9f9b5c08660f817a2d6ec5515f (patch) | |
tree | 7422d99151ab4967a4b0f1783a156e6a1527ccde /arch/arm/mach-mvebu/pmsu.c | |
parent | ba364fc752daeded072a5ef31e43b84cb1f9e5fd (diff) | |
parent | a728b977429383b3fe92b6e3bff9e69365609e0f (diff) | |
download | blackbird-op-linux-5abe65e3d67aac9f9b5c08660f817a2d6ec5515f.tar.gz blackbird-op-linux-5abe65e3d67aac9f9b5c08660f817a2d6ec5515f.zip |
Merge branch 'mvebu/fixes' into mvebu/soc-cpuidle
Diffstat (limited to 'arch/arm/mach-mvebu/pmsu.c')
-rw-r--r-- | arch/arm/mach-mvebu/pmsu.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c index 9c819d65b337..b31a8293a347 100644 --- a/arch/arm/mach-mvebu/pmsu.c +++ b/arch/arm/mach-mvebu/pmsu.c @@ -66,6 +66,8 @@ static void __iomem *pmsu_mp_base; extern void ll_disable_coherency(void); extern void ll_enable_coherency(void); +extern void armada_370_xp_cpu_resume(void); + static struct platform_device armada_xp_cpuidle_device = { .name = "cpuidle-armada-370-xp", }; @@ -140,13 +142,6 @@ static void armada_370_xp_pmsu_enable_l2_powerdown_onidle(void) writel(reg, pmsu_mp_base + L2C_NFABRIC_PM_CTL); } -static void armada_370_xp_cpu_resume(void) -{ - asm volatile("bl ll_add_cpu_to_smp_group\n\t" - "bl ll_enable_coherency\n\t" - "b cpu_resume\n\t"); -} - /* No locking is needed because we only access per-CPU registers */ int armada_370_xp_pmsu_idle_enter(unsigned long deepidle) { @@ -201,12 +196,12 @@ int armada_370_xp_pmsu_idle_enter(unsigned long deepidle) /* Test the CR_C bit and set it if it was cleared */ asm volatile( - "mrc p15, 0, %0, c1, c0, 0 \n\t" - "tst %0, #(1 << 2) \n\t" - "orreq %0, %0, #(1 << 2) \n\t" - "mcreq p15, 0, %0, c1, c0, 0 \n\t" + "mrc p15, 0, r0, c1, c0, 0 \n\t" + "tst r0, #(1 << 2) \n\t" + "orreq r0, r0, #(1 << 2) \n\t" + "mcreq p15, 0, r0, c1, c0, 0 \n\t" "isb " - : : "r" (0)); + : : : "r0"); pr_warn("Failed to suspend the system\n"); |