diff options
author | Olof Johansson <olof@lixom.net> | 2014-05-30 21:45:47 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-05-30 21:45:47 -0700 |
commit | fe61f9fd52079143c2cecc5a164dc6cfbe6b0223 (patch) | |
tree | 4beab9fad797001460650efd3cacdf55d2a95d29 /arch/arm/mach-exynos | |
parent | fe388fac0f18010688032393d042807261791eaf (diff) | |
parent | 7c5688e7fd722690e636c64630ad56babb589e96 (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/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/mcpm-exynos.c | 12 |
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); |