All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Move Loongson1 restart handler to watchdog driver
@ 2023-03-30 10:20 Keguang Zhang
  2023-03-30 10:20 ` [PATCH 1/2] MIPS: Loongson32: Remove reset.c Keguang Zhang
  2023-03-30 10:20 ` [PATCH 2/2] watchdog: loongson1_wdt: Implement restart handler Keguang Zhang
  0 siblings, 2 replies; 5+ messages in thread
From: Keguang Zhang @ 2023-03-30 10:20 UTC (permalink / raw)
  To: linux-watchdog, linux-mips, linux-kernel
  Cc: Wim Van Sebroeck, Guenter Roeck, Thomas Bogendoerfer, Yang Ling,
	Keguang Zhang

Move Loongson1 restart handler to watchdog driver
and update the Makefile accordingly.

Keguang Zhang (2):
  MIPS: Loongson32: Remove reset.c
  watchdog: loongson1_wdt: Implement restart handler

 .../include/asm/mach-loongson32/regs-wdt.h    | 15 ------
 arch/mips/loongson32/common/Makefile          |  2 +-
 arch/mips/loongson32/common/reset.c           | 51 -------------------
 drivers/watchdog/loongson1_wdt.c              | 19 ++++++-
 4 files changed, 19 insertions(+), 68 deletions(-)
 delete mode 100644 arch/mips/include/asm/mach-loongson32/regs-wdt.h
 delete mode 100644 arch/mips/loongson32/common/reset.c


base-commit: cf3be7e82b129ed34f811f116f2b113f6299d449
-- 
2.34.1


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

* [PATCH 1/2] MIPS: Loongson32: Remove reset.c
  2023-03-30 10:20 [PATCH 0/2] Move Loongson1 restart handler to watchdog driver Keguang Zhang
@ 2023-03-30 10:20 ` Keguang Zhang
  2023-03-30 11:30   ` Thomas Bogendoerfer
  2023-03-30 10:20 ` [PATCH 2/2] watchdog: loongson1_wdt: Implement restart handler Keguang Zhang
  1 sibling, 1 reply; 5+ messages in thread
From: Keguang Zhang @ 2023-03-30 10:20 UTC (permalink / raw)
  To: linux-watchdog, linux-mips, linux-kernel
  Cc: Wim Van Sebroeck, Guenter Roeck, Thomas Bogendoerfer, Yang Ling,
	Keguang Zhang

The Loongson-1 restart handler will be moved to watchdog driver,
then _machine_restart is no longer needed.
The _machine_halt and pm_power_off are also unnecessary,
which contain no hardware operations.

Therefore, remove the entire reset.c and related header file.
Update the Makefile accordingly.

Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com>
---
 .../include/asm/mach-loongson32/regs-wdt.h    | 15 ------
 arch/mips/loongson32/common/Makefile          |  2 +-
 arch/mips/loongson32/common/reset.c           | 51 -------------------
 3 files changed, 1 insertion(+), 67 deletions(-)
 delete mode 100644 arch/mips/include/asm/mach-loongson32/regs-wdt.h
 delete mode 100644 arch/mips/loongson32/common/reset.c

diff --git a/arch/mips/include/asm/mach-loongson32/regs-wdt.h b/arch/mips/include/asm/mach-loongson32/regs-wdt.h
deleted file mode 100644
index c6d345fe13f2..000000000000
--- a/arch/mips/include/asm/mach-loongson32/regs-wdt.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (c) 2011 Zhang, Keguang <keguang.zhang@gmail.com>
- *
- * Loongson 1 Watchdog Register Definitions.
- */
-
-#ifndef __ASM_MACH_LOONGSON32_REGS_WDT_H
-#define __ASM_MACH_LOONGSON32_REGS_WDT_H
-
-#define WDT_EN			0x0
-#define WDT_TIMER		0x4
-#define WDT_SET			0x8
-
-#endif /* __ASM_MACH_LOONGSON32_REGS_WDT_H */
diff --git a/arch/mips/loongson32/common/Makefile b/arch/mips/loongson32/common/Makefile
index 7b49c8260706..f3950d308187 100644
--- a/arch/mips/loongson32/common/Makefile
+++ b/arch/mips/loongson32/common/Makefile
@@ -3,4 +3,4 @@
 # Makefile for common code of loongson1 based machines.
 #
 
-obj-y	+= time.o irq.o platform.o prom.o reset.o setup.o
+obj-y	+= time.o irq.o platform.o prom.o setup.o
diff --git a/arch/mips/loongson32/common/reset.c b/arch/mips/loongson32/common/reset.c
deleted file mode 100644
index 0c7399b303fb..000000000000
--- a/arch/mips/loongson32/common/reset.c
+++ /dev/null
@@ -1,51 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (c) 2011 Zhang, Keguang <keguang.zhang@gmail.com>
- */
-
-#include <linux/io.h>
-#include <linux/pm.h>
-#include <linux/sizes.h>
-#include <asm/idle.h>
-#include <asm/reboot.h>
-
-#include <loongson1.h>
-
-static void __iomem *wdt_reg_base;
-
-static void ls1x_halt(void)
-{
-	while (1) {
-		if (cpu_wait)
-			cpu_wait();
-	}
-}
-
-static void ls1x_restart(char *command)
-{
-	__raw_writel(0x1, wdt_reg_base + WDT_EN);
-	__raw_writel(0x1, wdt_reg_base + WDT_TIMER);
-	__raw_writel(0x1, wdt_reg_base + WDT_SET);
-
-	ls1x_halt();
-}
-
-static void ls1x_power_off(void)
-{
-	ls1x_halt();
-}
-
-static int __init ls1x_reboot_setup(void)
-{
-	wdt_reg_base = ioremap(LS1X_WDT_BASE, (SZ_4 + SZ_8));
-	if (!wdt_reg_base)
-		panic("Failed to remap watchdog registers");
-
-	_machine_restart = ls1x_restart;
-	_machine_halt = ls1x_halt;
-	pm_power_off = ls1x_power_off;
-
-	return 0;
-}
-
-arch_initcall(ls1x_reboot_setup);
-- 
2.34.1


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

* [PATCH 2/2] watchdog: loongson1_wdt: Implement restart handler
  2023-03-30 10:20 [PATCH 0/2] Move Loongson1 restart handler to watchdog driver Keguang Zhang
  2023-03-30 10:20 ` [PATCH 1/2] MIPS: Loongson32: Remove reset.c Keguang Zhang
@ 2023-03-30 10:20 ` Keguang Zhang
  1 sibling, 0 replies; 5+ messages in thread
From: Keguang Zhang @ 2023-03-30 10:20 UTC (permalink / raw)
  To: linux-watchdog, linux-mips, linux-kernel
  Cc: Wim Van Sebroeck, Guenter Roeck, Thomas Bogendoerfer, Yang Ling,
	Keguang Zhang

Implement restart handler for the Loongson-1 watchdog driver and
define the watchdog registers instead of including the legacy header.

Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com>
---
 drivers/watchdog/loongson1_wdt.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/loongson1_wdt.c b/drivers/watchdog/loongson1_wdt.c
index bb3d075c0633..a0b6fe62e516 100644
--- a/drivers/watchdog/loongson1_wdt.c
+++ b/drivers/watchdog/loongson1_wdt.c
@@ -7,7 +7,11 @@
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/watchdog.h>
-#include <loongson1.h>
+
+/* Loongson 1 Watchdog Register Definitions */
+#define WDT_EN			0x0
+#define WDT_TIMER		0x4
+#define WDT_SET			0x8
 
 #define DEFAULT_HEARTBEAT	30
 
@@ -66,6 +70,18 @@ static int ls1x_wdt_stop(struct watchdog_device *wdt_dev)
 	return 0;
 }
 
+static int ls1x_wdt_restart(struct watchdog_device *wdt_dev,
+			    unsigned long action, void *data)
+{
+	struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
+
+	writel(0x1, drvdata->base + WDT_EN);
+	writel(0x1, drvdata->base + WDT_TIMER);
+	writel(0x1, drvdata->base + WDT_SET);
+
+	return 0;
+}
+
 static const struct watchdog_info ls1x_wdt_info = {
 	.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
 	.identity = "Loongson1 Watchdog",
@@ -77,6 +93,7 @@ static const struct watchdog_ops ls1x_wdt_ops = {
 	.stop = ls1x_wdt_stop,
 	.ping = ls1x_wdt_ping,
 	.set_timeout = ls1x_wdt_set_timeout,
+	.restart = ls1x_wdt_restart,
 };
 
 static void ls1x_clk_disable_unprepare(void *data)
-- 
2.34.1


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

* Re: [PATCH 1/2] MIPS: Loongson32: Remove reset.c
  2023-03-30 10:20 ` [PATCH 1/2] MIPS: Loongson32: Remove reset.c Keguang Zhang
@ 2023-03-30 11:30   ` Thomas Bogendoerfer
  2023-04-17  3:28     ` Keguang Zhang
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Bogendoerfer @ 2023-03-30 11:30 UTC (permalink / raw)
  To: Keguang Zhang
  Cc: linux-watchdog, linux-mips, linux-kernel, Wim Van Sebroeck,
	Guenter Roeck, Yang Ling

On Thu, Mar 30, 2023 at 06:20:12PM +0800, Keguang Zhang wrote:
> The Loongson-1 restart handler will be moved to watchdog driver,
> then _machine_restart is no longer needed.
> The _machine_halt and pm_power_off are also unnecessary,
> which contain no hardware operations.
> 
> Therefore, remove the entire reset.c and related header file.
> Update the Makefile accordingly.
> 
> Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com>
> ---
>  .../include/asm/mach-loongson32/regs-wdt.h    | 15 ------
>  arch/mips/loongson32/common/Makefile          |  2 +-
>  arch/mips/loongson32/common/reset.c           | 51 -------------------
>  3 files changed, 1 insertion(+), 67 deletions(-)
>  delete mode 100644 arch/mips/include/asm/mach-loongson32/regs-wdt.h
>  delete mode 100644 arch/mips/loongson32/common/reset.c

Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]

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

* Re: [PATCH 1/2] MIPS: Loongson32: Remove reset.c
  2023-03-30 11:30   ` Thomas Bogendoerfer
@ 2023-04-17  3:28     ` Keguang Zhang
  0 siblings, 0 replies; 5+ messages in thread
From: Keguang Zhang @ 2023-04-17  3:28 UTC (permalink / raw)
  To: Thomas Bogendoerfer
  Cc: linux-watchdog, linux-mips, linux-kernel, Wim Van Sebroeck,
	Guenter Roeck, Yang Ling

On Thu, Mar 30, 2023 at 7:33 PM Thomas Bogendoerfer
<tsbogend@alpha.franken.de> wrote:
>
> On Thu, Mar 30, 2023 at 06:20:12PM +0800, Keguang Zhang wrote:
> > The Loongson-1 restart handler will be moved to watchdog driver,
> > then _machine_restart is no longer needed.
> > The _machine_halt and pm_power_off are also unnecessary,
> > which contain no hardware operations.
> >
> > Therefore, remove the entire reset.c and related header file.
> > Update the Makefile accordingly.
> >
> > Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com>
> > ---
> >  .../include/asm/mach-loongson32/regs-wdt.h    | 15 ------
> >  arch/mips/loongson32/common/Makefile          |  2 +-
> >  arch/mips/loongson32/common/reset.c           | 51 -------------------
> >  3 files changed, 1 insertion(+), 67 deletions(-)
> >  delete mode 100644 arch/mips/include/asm/mach-loongson32/regs-wdt.h
> >  delete mode 100644 arch/mips/loongson32/common/reset.c
>
> Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
>
Thomas,
Sorry! I forgot to remove the reference to regs-wdt.h, which will
cause a build error.
Could you please review v2:
https://lore.kernel.org/all/20230330112051.551648-2-keguang.zhang@gmail.com/
Thanks very much!

> --
> Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
> good idea.                                                [ RFC1925, 2.3 ]



--
Best regards,

Keguang Zhang

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

end of thread, other threads:[~2023-04-17  3:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-30 10:20 [PATCH 0/2] Move Loongson1 restart handler to watchdog driver Keguang Zhang
2023-03-30 10:20 ` [PATCH 1/2] MIPS: Loongson32: Remove reset.c Keguang Zhang
2023-03-30 11:30   ` Thomas Bogendoerfer
2023-04-17  3:28     ` Keguang Zhang
2023-03-30 10:20 ` [PATCH 2/2] watchdog: loongson1_wdt: Implement restart handler Keguang Zhang

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.