Message ID | 1366734653-488286-7-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 2013-04-24 at 00:30 +0800, Arnd Bergmann wrote: > 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> > Cc: Joseph Lo <josephl@nvidia.com> > Cc: Stephen Warren <swarren@nvidia.com> > --- Hi Arnd, Thanks for fixing. Tested-by: Joseph Lo <josephl@nvidia.com> Joseph
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c index 523604d..398e932 100644 --- a/arch/arm/mach-tegra/pm.c +++ b/arch/arm/mach-tegra/pm.c @@ -181,6 +181,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 9f6bfafd..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
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> Cc: Joseph Lo <josephl@nvidia.com> Cc: Stephen Warren <swarren@nvidia.com> --- arch/arm/mach-tegra/pm.c | 5 +++++ arch/arm/mach-tegra/sleep-tegra20.S | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-)