summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-05-30 21:45:47 -0700
committerOlof Johansson <olof@lixom.net>2014-05-30 21:45:47 -0700
commitfe61f9fd52079143c2cecc5a164dc6cfbe6b0223 (patch)
tree4beab9fad797001460650efd3cacdf55d2a95d29 /arch/arm
parentfe388fac0f18010688032393d042807261791eaf (diff)
parent7c5688e7fd722690e636c64630ad56babb589e96 (diff)
Merge tag 'exynos-mcpm-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc
Merge "Exynos 2nd MCPM updates for v3.16" from Kukjin Kim: - enable mcpm for dual-cluster exynos5800 - since commit 166aaf39 ("ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing"), use new member name wait_for_cpu_powerdown. This is based on tags/exynos-mcpm. Note that since the commit 166aaf39 is in rmk tree so this should be sent to upstream after that in 3.16 merge window. * tag 'exynos-mcpm-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: mcpm rename the power_down_finish ARM: EXYNOS: Enable mcpm for dual-cluster exynos5800 SoC Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-exynos/mcpm-exynos.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c
index 1ac618ce440..0498d0b887e 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)
@@ -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);