diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-04-23 15:36:26 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-04-29 16:51:59 +0200 |
commit | 2058842e6d7833e41be7cc2434465e69bcd51d45 (patch) | |
tree | 2aceb2d7bf06ae0344731f8314e28700cca341bf /arch | |
parent | 0259d9eb30d003af305626db2d8332805696e60d (diff) | |
download | op-kernel-dev-2058842e6d7833e41be7cc2434465e69bcd51d45.zip op-kernel-dev-2058842e6d7833e41be7cc2434465e69bcd51d45.tar.gz |
ARM: tegra: call cpu_do_idle from C code
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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/pm.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-tegra/sleep-tegra20.S | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c index 0494f73..04a8e06 100644 --- a/arch/arm/mach-tegra/pm.c +++ b/arch/arm/mach-tegra/pm.c @@ -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. */ diff --git a/arch/arm/mach-tegra/sleep-tegra20.S b/arch/arm/mach-tegra/sleep-tegra20.S index 9f6bfaf..e3f2417 100644 --- a/arch/arm/mach-tegra/sleep-tegra20.S +++ b/arch/arm/mach-tegra/sleep-tegra20.S @@ -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 |