From f99acff1c849814bacf7cb13feb6e6a360ec5872 Mon Sep 17 00:00:00 2001 From: Abhilash Kesavan Date: Wed, 28 May 2014 01:19:35 +0900 Subject: [PATCH 1/2] ARM: EXYNOS: Enable mcpm for dual-cluster exynos5800 SoC The exynos5800 is very similar to exynos5420. We can re-use the existing MCPM support for exynos5800 for secondary boot -up and switching. Signed-off-by: Abhilash Kesavan Signed-off-by: Kukjin Kim --- arch/arm/mach-exynos/mcpm-exynos.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c index 1ac618ce440b..20707bdfca6d 100644 --- a/arch/arm/mach-exynos/mcpm-exynos.c +++ b/arch/arm/mach-exynos/mcpm-exynos.c @@ -290,13 +290,19 @@ static void __naked exynos_pm_power_up_setup(unsigned int affinity_level) "b cci_enable_port_for_self"); } +static const struct of_device_id exynos_dt_mcpm_match[] = { + { .compatible = "samsung,exynos5420" }, + { .compatible = "samsung,exynos5800" }, + {}, +}; + static int __init exynos_mcpm_init(void) { struct device_node *node; void __iomem *ns_sram_base_addr; int ret; - node = of_find_compatible_node(NULL, NULL, "samsung,exynos5420"); + node = of_find_matching_node(NULL, exynos_dt_mcpm_match); if (!node) return -ENODEV; of_node_put(node); From 7c5688e7fd722690e636c64630ad56babb589e96 Mon Sep 17 00:00:00 2001 From: Kukjin Kim Date: Wed, 28 May 2014 00:04:34 +0900 Subject: [PATCH 2/2] ARM: EXYNOS: mcpm rename the power_down_finish Since commit 166aaf39 ("ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing") changed the name of power_down_finish to wait_for_cpu_powerdown, so use new member name wait_for_cpu_powerdown. Reported-by: Arnd Bergmann Signed-off-by: Kukjin Kim --- arch/arm/mach-exynos/mcpm-exynos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c index 20707bdfca6d..0498d0b887ef 100644 --- a/arch/arm/mach-exynos/mcpm-exynos.c +++ b/arch/arm/mach-exynos/mcpm-exynos.c @@ -235,7 +235,7 @@ static void exynos_power_down(void) /* Not dead at this point? Let our caller cope. */ } -static int exynos_power_down_finish(unsigned int cpu, unsigned int cluster) +static int exynos_wait_for_powerdown(unsigned int cpu, unsigned int cluster) { unsigned int tries = 100; unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER); @@ -261,7 +261,7 @@ static int exynos_power_down_finish(unsigned int cpu, unsigned int cluster) static const struct mcpm_platform_ops exynos_power_ops = { .power_up = exynos_power_up, .power_down = exynos_power_down, - .power_down_finish = exynos_power_down_finish, + .wait_for_powerdown = exynos_wait_for_powerdown, }; static void __init exynos_mcpm_usage_count_init(void)