ARM: EXYNOS: Fix build breakage cpuidle on !SMP
The Exynos cpuidle driver has coupled cpuidle built-in so it cannot be built without SMP: arch/arm/mach-exynos/pm.c: In function 'exynos_cpu0_enter_aftr': arch/arm/mach-exynos/pm.c:246:4: error: implicit declaration of function 'arch_send_wakeup_ipi_mask' [-Werror=implicit-function-declaration] arch/arm/mach-exynos/built-in.o: In function 'exynos_pre_enter_aftr': ../arch/arm/mach-exynos/pm.c:300: undefined reference to 'cpu_boot_reg_base' arch/arm/mach-exynos/built-in.o: In function 'exynos_cpu1_powerdown': ../arch/arm/mach-exynos/pm.c:282: undefined reference to 'exynos_cpu_power_down' Fix it by adding missing checks for SMP. Reported-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Kukjin Kim <kgene@kernel.org>
This commit is contained in:
parent
435c345448
commit
cfdda3535f
@ -211,7 +211,7 @@ static void __init exynos_dt_machine_init(void)
|
|||||||
if (!IS_ENABLED(CONFIG_SMP))
|
if (!IS_ENABLED(CONFIG_SMP))
|
||||||
exynos_sysram_init();
|
exynos_sysram_init();
|
||||||
|
|
||||||
#ifdef CONFIG_ARM_EXYNOS_CPUIDLE
|
#if defined(CONFIG_SMP) && defined(CONFIG_ARM_EXYNOS_CPUIDLE)
|
||||||
if (of_machine_is_compatible("samsung,exynos4210"))
|
if (of_machine_is_compatible("samsung,exynos4210"))
|
||||||
exynos_cpuidle.dev.platform_data = &cpuidle_coupled_exynos_data;
|
exynos_cpuidle.dev.platform_data = &cpuidle_coupled_exynos_data;
|
||||||
#endif
|
#endif
|
||||||
|
@ -181,6 +181,7 @@ void exynos_enter_aftr(void)
|
|||||||
cpu_pm_exit();
|
cpu_pm_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_SMP) && defined(CONFIG_ARM_EXYNOS_CPUIDLE)
|
||||||
static atomic_t cpu1_wakeup = ATOMIC_INIT(0);
|
static atomic_t cpu1_wakeup = ATOMIC_INIT(0);
|
||||||
|
|
||||||
static int exynos_cpu0_enter_aftr(void)
|
static int exynos_cpu0_enter_aftr(void)
|
||||||
@ -302,3 +303,4 @@ struct cpuidle_exynos_data cpuidle_coupled_exynos_data = {
|
|||||||
.pre_enter_aftr = exynos_pre_enter_aftr,
|
.pre_enter_aftr = exynos_pre_enter_aftr,
|
||||||
.post_enter_aftr = exynos_post_enter_aftr,
|
.post_enter_aftr = exynos_post_enter_aftr,
|
||||||
};
|
};
|
||||||
|
#endif /* CONFIG_SMP && CONFIG_ARM_EXYNOS_CPUIDLE */
|
||||||
|
@ -117,7 +117,8 @@ static int exynos_cpuidle_probe(struct platform_device *pdev)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (of_machine_is_compatible("samsung,exynos4210")) {
|
if (IS_ENABLED(CONFIG_SMP) &&
|
||||||
|
of_machine_is_compatible("samsung,exynos4210")) {
|
||||||
exynos_cpuidle_pdata = pdev->dev.platform_data;
|
exynos_cpuidle_pdata = pdev->dev.platform_data;
|
||||||
|
|
||||||
ret = cpuidle_register(&exynos_coupled_idle_driver,
|
ret = cpuidle_register(&exynos_coupled_idle_driver,
|
||||||
|
Loading…
Reference in New Issue
Block a user