Move Loongson1 restart handler to watchdog driver
Subsystems (3)
Keguang Zhang
maintainercover Move Loongson1 restart handler to watchdog driver
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
Signature · 1 line
2.34.1
Keguang Zhang
maintainerPATCH 1/2 MIPS: Loongson32: Remove reset.c
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.
--- .../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
arch/mips/include/asm/mach-loongson32/regs-wdt.h deleted +0 -15
@@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* -* Copyright (c) 2011 Zhang, Keguang <[email protected]> -* -* 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 */
arch/mips/loongson32/common/Makefile +1 -1
@@ -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
arch/mips/loongson32/common/reset.c deleted +0 -51
51 lines not on this page · raw message
Signature · 1 line
2.34.1
Re: [PATCH 1/2] MIPS: Loongson32: Remove reset.c
Quoted 8 lines · Keguang Zhang
The Loongson-1 restart handler will be moved to watchdog driver, then
_machine_restartis no longer needed.
The_machine_haltandpm_power_offare also unnecessary, which contain no hardware operations.Therefore, remove the entire
reset.cand related header file. Update theMakefileaccordingly.
Quoted 8 lines
Signed-off-by Keguang Zhang <[email protected]>--- .../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
Signature · 2 lines
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]
Keguang Zhang
maintainerRe: [PATCH 1/2] MIPS: Loongson32: Remove reset.c
Quoted 19 lines · Thomas Bogendoerfer
Quoted 8 lines · Keguang Zhang
The Loongson-1 restart handler will be moved to watchdog driver, then
_machine_restartis no longer needed.
The_machine_haltandpm_power_offare also unnecessary, which contain no hardware operations.Therefore, remove the entire
reset.cand related header file. Update theMakefileaccordingly.Quoted 8 lines
Signed-off-by Keguang Zhang <[email protected]>--- .../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
Quoted 2 lines
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/[email protected]/
Thanks very much!
Quoted 3 lines
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
--
Best regards,
Keguang Zhang
Keguang Zhang
maintainerPATCH 2/2 watchdog: loongson1_wdt: Implement restart handler
In reply to Keguang ZhangImplement restart handler for the Loongson-1 watchdog driver and define the watchdog registers instead of including the legacy header.
--- drivers/watchdog/loongson1_wdt.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
drivers/watchdog/loongson1_wdt.c +18 -1
@@ -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)
Signature · 1 line
2.34.1