Re: [PATCH v12 4/4] Watchdog: introduce ARM SBSA watchdog driver

From: Guenter Roeck
Date: Tue Feb 16 2016 - 10:30:18 EST


On 02/16/2016 12:36 AM, fu.wei@xxxxxxxxxx wrote:
From: Fu Wei <fu.wei@xxxxxxxxxx>

According to Server Base System Architecture (SBSA) specification,
the SBSA Generic Watchdog has two stage timeouts: the first signal (WS0)
is for alerting the system by interrupt, the second one (WS1) is a real
hardware reset.
More details about the hardware specification of this device:
ARM DEN0029B - Server Base System Architecture (SBSA)

This driver can operate ARM SBSA Generic Watchdog as a single stage watchdog
or a two stages watchdog, it's set up by the module parameter "action".
In the single stage mode, when the timeout is reached, your system
will be reset by WS1. The first signal (WS0) is ignored.
In the two stages mode, when the timeout is reached, the first signal (WS0)
will trigger panic. If the system is getting into trouble and cannot be reset
by panic or restart properly by the kdump kernel(if supported), then the
second stage (as long as the first stage) will be reached, system will be
reset by WS1. This function can help administrator to backup the system
context info by panic console output or kdump.

This driver bases on linux kernel watchdog framework, so it can get
timeout from module parameter and FDT at the driver init stage.

Signed-off-by: Fu Wei <fu.wei@xxxxxxxxxx>
Reviewed-by: Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Tested-by: Pratyush Anand <panand@xxxxxxxxxx>
Acked-by: Timur Tabi <timur@xxxxxxxxxxxxxx>
Reviewed-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
---
drivers/watchdog/Kconfig | 20 +++
drivers/watchdog/Makefile | 1 +
drivers/watchdog/sbsa_gwdt.c | 403 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 424 insertions(+)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 0f6d851..ed9a5cb 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig

[ ... ]

+
+static int sbsa_gwdt_probe(struct platform_device *pdev)
+{

[ ... ]

+ if (!action)
+ dev_warn(dev, "falling back to signle stage mode.\n");

Still:

s/signle/single/

[ ... ]

+
+MODULE_DESCRIPTION("SBSA Generic Watchdog Driver");
+MODULE_AUTHOR("Fu Wei <fu.wei@xxxxxxxxxx>");
+MODULE_AUTHOR("Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>");
+MODULE_AUTHOR("Al Stone <al.stone@xxxxxxxxxx>");
+MODULE_AUTHOR("Timur Tabi <timur@xxxxxxxxxxxxxx>");
+MODULE_LICENSE("GPL v2");

Do you need a MODULE_ALIAS ?

Guenter