Commit fe61f9fd authored by Olof Johansson's avatar Olof Johansson

Merge tag 'exynos-mcpm-2' of...

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: default avatarOlof Johansson <olof@lixom.net>
parents fe388fac 7c5688e7
...@@ -235,7 +235,7 @@ static void exynos_power_down(void) ...@@ -235,7 +235,7 @@ static void exynos_power_down(void)
/* Not dead at this point? Let our caller cope. */ /* 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 tries = 100;
unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER); 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) ...@@ -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 = { static const struct mcpm_platform_ops exynos_power_ops = {
.power_up = exynos_power_up, .power_up = exynos_power_up,
.power_down = exynos_power_down, .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) 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) ...@@ -290,13 +290,19 @@ static void __naked exynos_pm_power_up_setup(unsigned int affinity_level)
"b cci_enable_port_for_self"); "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) static int __init exynos_mcpm_init(void)
{ {
struct device_node *node; struct device_node *node;
void __iomem *ns_sram_base_addr; void __iomem *ns_sram_base_addr;
int ret; int ret;
node = of_find_compatible_node(NULL, NULL, "samsung,exynos5420"); node = of_find_matching_node(NULL, exynos_dt_mcpm_match);
if (!node) if (!node)
return -ENODEV; return -ENODEV;
of_node_put(node); of_node_put(node);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment