Skip to content

Commit

Permalink
ARM: tegra: call cpu_do_idle from C code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Arnd Bergmann committed Apr 29, 2013
1 parent 0259d9e commit 2058842
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
5 changes: 5 additions & 0 deletions arch/arm/mach-tegra/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-tegra/sleep-tegra20.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 2058842

Please sign in to comment.