All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Claudiu.Beznea@microchip.com>
To: <sre@kernel.org>, <Nicolas.Ferre@microchip.com>,
	<alexandre.belloni@bootlin.com>,
	<Ludovic.Desroches@microchip.com>
Cc: <linux-pm@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <Claudiu.Beznea@microchip.com>
Subject: [PATCH 12/15] power: reset: at91-reset: make at91sam9g45_restart() generic
Date: Tue, 21 Jan 2020 10:03:37 +0000	[thread overview]
Message-ID: <1579601001-5711-13-git-send-email-claudiu.beznea@microchip.com> (raw)
In-Reply-To: <1579601001-5711-1-git-send-email-claudiu.beznea@microchip.com>

Make at91sam9g45_restart() generic.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
---
 drivers/power/reset/at91-reset.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
index 4e1961334e4d..61433060d784 100644
--- a/drivers/power/reset/at91-reset.c
+++ b/drivers/power/reset/at91-reset.c
@@ -105,32 +105,23 @@ static int at91sam9g45_restart(struct notifier_block *this, unsigned long mode,
 	struct at91_reset *reset = container_of(this, struct at91_reset, nb);
 
 	asm volatile(
-		/*
-		 * Test wether we have a second RAM controller to care
-		 * about.
-		 *
-		 * First, test that we can dereference the virtual address.
-		 */
-		"cmp	%1, #0\n\t"
-		"beq	1f\n\t"
-
-		/* Then, test that the RAM controller is enabled */
-		"ldr	r4, [%1]\n\t"
-		"cmp	r4, #0\n\t"
-
 		/* Align to cache lines */
 		".balign 32\n\t"
 
 		/* Disable SDRAM0 accesses */
-		"1:	str	%3, [%0, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
+		"	tst	%0, #0\n\t"
+		"	beq	1f\n\t"
+		"	str	%3, [%0, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
 		/* Power down SDRAM0 */
 		"	str	%4, [%0, %6]\n\t"
 		/* Disable SDRAM1 accesses */
+		"1:	tst	%1, #0\n\t"
+		"	beq	2f\n\t"
 		"	strne	%3, [%1, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
 		/* Power down SDRAM1 */
 		"	strne	%4, [%1, %6]\n\t"
 		/* Reset CPU */
-		"	str	%5, [%2, #" __stringify(AT91_RSTC_CR) "]\n\t"
+		"2:	str	%5, [%2, #" __stringify(AT91_RSTC_CR) "]\n\t"
 
 		"	b	.\n\t"
 		:
-- 
2.7.4

WARNING: multiple messages have this Message-ID (diff)
From: <Claudiu.Beznea@microchip.com>
To: <sre@kernel.org>, <Nicolas.Ferre@microchip.com>,
	<alexandre.belloni@bootlin.com>,
	<Ludovic.Desroches@microchip.com>
Cc: Claudiu.Beznea@microchip.com, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org
Subject: [PATCH 12/15] power: reset: at91-reset: make at91sam9g45_restart() generic
Date: Tue, 21 Jan 2020 10:03:37 +0000	[thread overview]
Message-ID: <1579601001-5711-13-git-send-email-claudiu.beznea@microchip.com> (raw)
In-Reply-To: <1579601001-5711-1-git-send-email-claudiu.beznea@microchip.com>

Make at91sam9g45_restart() generic.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
---
 drivers/power/reset/at91-reset.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
index 4e1961334e4d..61433060d784 100644
--- a/drivers/power/reset/at91-reset.c
+++ b/drivers/power/reset/at91-reset.c
@@ -105,32 +105,23 @@ static int at91sam9g45_restart(struct notifier_block *this, unsigned long mode,
 	struct at91_reset *reset = container_of(this, struct at91_reset, nb);
 
 	asm volatile(
-		/*
-		 * Test wether we have a second RAM controller to care
-		 * about.
-		 *
-		 * First, test that we can dereference the virtual address.
-		 */
-		"cmp	%1, #0\n\t"
-		"beq	1f\n\t"
-
-		/* Then, test that the RAM controller is enabled */
-		"ldr	r4, [%1]\n\t"
-		"cmp	r4, #0\n\t"
-
 		/* Align to cache lines */
 		".balign 32\n\t"
 
 		/* Disable SDRAM0 accesses */
-		"1:	str	%3, [%0, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
+		"	tst	%0, #0\n\t"
+		"	beq	1f\n\t"
+		"	str	%3, [%0, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
 		/* Power down SDRAM0 */
 		"	str	%4, [%0, %6]\n\t"
 		/* Disable SDRAM1 accesses */
+		"1:	tst	%1, #0\n\t"
+		"	beq	2f\n\t"
 		"	strne	%3, [%1, #" __stringify(AT91_DDRSDRC_RTR) "]\n\t"
 		/* Power down SDRAM1 */
 		"	strne	%4, [%1, %6]\n\t"
 		/* Reset CPU */
-		"	str	%5, [%2, #" __stringify(AT91_RSTC_CR) "]\n\t"
+		"2:	str	%5, [%2, #" __stringify(AT91_RSTC_CR) "]\n\t"
 
 		"	b	.\n\t"
 		:
-- 
2.7.4

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-01-21 10:04 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 10:03 [PATCH 00/15] rework at91-reset driver Claudiu.Beznea
2020-01-21 10:03 ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 01/15] power: reset: at91-reset: introduce struct at91_reset Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 03/15] power: reset: at91-reset: add sclk to " Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 02/15] power: reset: at91-reset: add ramc_base[] " Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 04/15] power: reset: at91-reset: add notifier block " Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 05/15] power: reset: at91-reset: convert reset in pointer " Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 08/15] power: reset: at91-reset: introduce struct at91_reset_data Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 06/15] power: reset: at91-reset: pass rstc base address to at91_reset_status() Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 07/15] power: reset: at91-reset: devm_kzalloc() for at91_reset data structure Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 10/15] power: reset: at91-reset: use r4 as tmp argument Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 09/15] power: reset: at91-reset: introduce args member in at91_reset_data Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 11/15] power: reset: at91-reset: introduce ramc_lpr to struct at91_reset Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` Claudiu.Beznea [this message]
2020-01-21 10:03   ` [PATCH 12/15] power: reset: at91-reset: make at91sam9g45_restart() generic Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 13/15] power: reset: at91-reset: keep only one reset function Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 14/15] power: reset: at91-reset: get rid of at91_reset_data Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-01-21 10:03 ` [PATCH 15/15] power: reset: at91-reset: handle nrst async for sam9x60 Claudiu.Beznea
2020-01-21 10:03   ` Claudiu.Beznea
2020-03-08 18:54 ` [PATCH 00/15] rework at91-reset driver Sebastian Reichel
2020-03-08 18:54   ` Sebastian Reichel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1579601001-5711-13-git-send-email-claudiu.beznea@microchip.com \
    --to=claudiu.beznea@microchip.com \
    --cc=Ludovic.Desroches@microchip.com \
    --cc=Nicolas.Ferre@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.