ARM: tegra: call cpu_do_idle from C code
authorArnd Bergmann <arnd@arndb.de>
Tue, 23 Apr 2013 13:36:26 +0000 (15:36 +0200)
committerArnd Bergmann <arnd@arndb.de>
Mon, 29 Apr 2013 14:51:59 +0000 (16:51 +0200)
When building a kernel for multiple CPU architecture levels,
cpu_do_idle() is a macro for an indirect function call, which
cannot be called from assembly code as Tegra does.

Adding a trivial C wrapper for this function lets us build
a tegra kernel with ARMv6 support enabled.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Joseph Lo <josephl@nvidia.com>
Cc: Stephen Warren <swarren@nvidia.com>
arch/arm/mach-tegra/pm.c
arch/arm/mach-tegra/sleep-tegra20.S

index 0494f73..04a8e06 100644 (file)
@@ -162,6 +162,11 @@ bool tegra_set_cpu_in_lp2(int phy_cpu_id)
        return last_cpu;
 }
 
+int tegra_cpu_do_idle(void)
+{
+       return cpu_do_idle();
+}
+
 static int tegra_sleep_cpu(unsigned long v2p)
 {
        /* Switch to the identity mapping. */
index 9f6bfaf..e3f2417 100644 (file)
@@ -197,7 +197,7 @@ ENTRY(tegra20_sleep_cpu_secondary_finish)
        mov     r3, #CPU_RESETTABLE
        str     r3, [r0]
 
-       bl      cpu_do_idle
+       bl      tegra_cpu_do_idle
 
        /*
         * cpu may be reset while in wfi, which will return through