Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe61f9fd authored by Olof Johansson's avatar Olof Johansson
Browse files

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
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -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);