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>
This commit is contained in:
Arnd Bergmann 2013-04-23 15:36:26 +02:00
Родитель 0259d9eb30
Коммит 2058842e6d
2 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -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. */

Просмотреть файл

@ -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