linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i
@ 2013-09-21 14:11 Maxime Ripard
  2013-09-21 14:11 ` [PATCH 2/2] ARM: sunxi: Simplify restart setup code Maxime Ripard
  2013-09-27 16:35 ` [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard
  0 siblings, 2 replies; 4+ messages in thread
From: Maxime Ripard @ 2013-09-21 14:11 UTC (permalink / raw)
  To: linux-arm-kernel

The A20 and A31 SMP code have a different way of bringing up a new core.
This will prevent us from using the same set of smp_operations for the
two SoCs family.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 arch/arm/mach-sunxi/sunxi.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
index e79fb34..e0641dd 100644
--- a/arch/arm/mach-sunxi/sunxi.c
+++ b/arch/arm/mach-sunxi/sunxi.c
@@ -133,8 +133,6 @@ static const char * const sunxi_board_dt_compat[] = {
 	"allwinner,sun4i-a10",
 	"allwinner,sun5i-a10s",
 	"allwinner,sun5i-a13",
-	"allwinner,sun6i-a31",
-	"allwinner,sun7i-a20",
 	NULL,
 };
 
@@ -143,3 +141,25 @@ DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
 	.init_time	= sunxi_timer_init,
 	.dt_compat	= sunxi_board_dt_compat,
 MACHINE_END
+
+static const char * const sun6i_board_dt_compat[] = {
+	"allwinner,sun6i-a31",
+	NULL,
+};
+
+DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
+	.init_machine	= sunxi_dt_init,
+	.init_time	= sunxi_timer_init,
+	.dt_compat	= sun6i_board_dt_compat,
+MACHINE_END
+
+static const char * const sun7i_board_dt_compat[] = {
+	"allwinner,sun7i-a20",
+	NULL,
+};
+
+DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family")
+	.init_machine	= sunxi_dt_init,
+	.init_time	= sunxi_timer_init,
+	.dt_compat	= sun7i_board_dt_compat,
+MACHINE_END
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ARM: sunxi: Simplify restart setup code
  2013-09-21 14:11 [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard
@ 2013-09-21 14:11 ` Maxime Ripard
  2013-09-27 16:36   ` Maxime Ripard
  2013-09-27 16:35 ` [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard
  1 sibling, 1 reply; 4+ messages in thread
From: Maxime Ripard @ 2013-09-21 14:11 UTC (permalink / raw)
  To: linux-arm-kernel

Now that we have different machine definitions for different SoCs, we
can remove the DT lookup to get the restart hook we should be using, and
hardcode it in the machine definition instead.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 arch/arm/mach-sunxi/sunxi.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
index e0641dd..f184f6c 100644
--- a/arch/arm/mach-sunxi/sunxi.c
+++ b/arch/arm/mach-sunxi/sunxi.c
@@ -93,14 +93,13 @@ static void sun6i_restart(enum reboot_mode mode, const char *cmd)
 }
 
 static struct of_device_id sunxi_restart_ids[] = {
-	{ .compatible = "allwinner,sun4i-wdt", .data = sun4i_restart },
-	{ .compatible = "allwinner,sun6i-wdt", .data = sun6i_restart },
+	{ .compatible = "allwinner,sun4i-wdt" },
+	{ .compatible = "allwinner,sun6i-wdt" },
 	{ /*sentinel*/ }
 };
 
 static void sunxi_setup_restart(void)
 {
-	const struct of_device_id *of_id;
 	struct device_node *np;
 
 	np = of_find_matching_node(NULL, sunxi_restart_ids);
@@ -109,11 +108,6 @@ static void sunxi_setup_restart(void)
 
 	wdt_base = of_iomap(np, 0);
 	WARN(!wdt_base, "failed to map watchdog base address");
-
-	of_id = of_match_node(sunxi_restart_ids, np);
-	WARN(!of_id, "restart function not available");
-
-	arm_pm_restart = of_id->data;
 }
 
 static void __init sunxi_timer_init(void)
@@ -140,6 +134,7 @@ DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
 	.init_machine	= sunxi_dt_init,
 	.init_time	= sunxi_timer_init,
 	.dt_compat	= sunxi_board_dt_compat,
+	.restart	= sun4i_restart,
 MACHINE_END
 
 static const char * const sun6i_board_dt_compat[] = {
@@ -151,6 +146,7 @@ DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
 	.init_machine	= sunxi_dt_init,
 	.init_time	= sunxi_timer_init,
 	.dt_compat	= sun6i_board_dt_compat,
+	.restart	= sun6i_restart,
 MACHINE_END
 
 static const char * const sun7i_board_dt_compat[] = {
@@ -162,4 +158,5 @@ DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family")
 	.init_machine	= sunxi_dt_init,
 	.init_time	= sunxi_timer_init,
 	.dt_compat	= sun7i_board_dt_compat,
+	.restart	= sun4i_restart,
 MACHINE_END
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i
  2013-09-21 14:11 [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard
  2013-09-21 14:11 ` [PATCH 2/2] ARM: sunxi: Simplify restart setup code Maxime Ripard
@ 2013-09-27 16:35 ` Maxime Ripard
  1 sibling, 0 replies; 4+ messages in thread
From: Maxime Ripard @ 2013-09-27 16:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Sep 21, 2013 at 09:11:45AM -0500, Maxime Ripard wrote:
> The A20 and A31 SMP code have a different way of bringing up a new core.
> This will prevent us from using the same set of smp_operations for the
> two SoCs family.
> 
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

Applied to my sunxi/core-for-3.13 branch.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130927/ec020dd9/attachment-0001.sig>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ARM: sunxi: Simplify restart setup code
  2013-09-21 14:11 ` [PATCH 2/2] ARM: sunxi: Simplify restart setup code Maxime Ripard
@ 2013-09-27 16:36   ` Maxime Ripard
  0 siblings, 0 replies; 4+ messages in thread
From: Maxime Ripard @ 2013-09-27 16:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Sep 21, 2013 at 09:11:46AM -0500, Maxime Ripard wrote:
> Now that we have different machine definitions for different SoCs, we
> can remove the DT lookup to get the restart hook we should be using, and
> hardcode it in the machine definition instead.
> 
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

Applied to my sunxi/core-for-3.13 branch.

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130927/88b9b5b3/attachment.sig>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-09-27 16:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-21 14:11 [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard
2013-09-21 14:11 ` [PATCH 2/2] ARM: sunxi: Simplify restart setup code Maxime Ripard
2013-09-27 16:36   ` Maxime Ripard
2013-09-27 16:35 ` [PATCH 1/2] ARM: sunxi: Split out the DT machines for sun6i and sun7i Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).