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

From: Wim Van Sebroeck
Date: Fri Mar 04 2016 - 14:48:11 EST


Hi Fu,

> From: Fu Wei <fu.wei@xxxxxxxxxx>
>
> This patchset:
> (1)Introduce Documentation/devicetree/bindings/watchdog/sbsa-gwdt.txt
> for FDT info of SBSA Generic Watchdog, and give two examples of
> adding SBSA Generic Watchdog device node into the dts files:
> foundation-v8.dts and amd-seattle-soc.dtsi.
>
> (2)Introduce ARM SBSA watchdog driver:
> a.Use linux kernel watchdog framework;
> b.Work with FDT on ARM64;
> c.Support getting timeout from parameter and FDT at the driver
> init stage.
> d.The driver works in two modes:
> (1) single stage timeout (ignore WS0 interrupt)
> (2) two stages timeout (register WS0 interrupt, do panic in routine)
> e.User can config working mode by module parameter "action".
>
> This patchset has been tested with watchdog daemon
> (ACPI/FDT, module/build-in) on the following platforms:
> (1)ARM Foundation v8 model
> (2)AMD Seattle platform
>
> This patchset has been tested with kdump successfully.
>
> Changelog:
> v14:Fix a bug of registering interrupt routine: do a ping before
> registering interrupt routine, in case where is a pending interrupt.
> Reorder the initialization code to postpone registering interrupt routine.
> Improve some code style:
> (1)add some macro of string
> (2)use watchdog_get_drvdata instead of to_sbsa_gwdt,
> delete to_sbsa_gwdt.
>
> v13:https://lkml.org/lkml/2016/2/16/713
> Fix a dev_warn message typo"signle"-->"single"
> Add MODULE_ALIAS
> Add more *ed-by in commit message.
>
> v12:https://lkml.org/lkml/2016/2/16/154
> Fix a dev_warn message typo"fall"--"falling"
> Remove unnecessary "status" in dts
> Add more *ed-by in commit message.
>
> v11:https://lkml.org/lkml/2016/2/9/577
> Merge patch 4 and 5.
> Improve some comments.
> The driver works in two modes, it's configured by "action"(instead of
> panic_enabled).
> Improve the initialization of the timeout limits.
> Feeding dog by writing "0" to WRR.
>
> v10:https://lkml.org/lkml/2016/2/3/817
> Delete pretimeout support.
> Separate the driver to two parts:
> (1) single stage timeout driver(ignore WS0 interrupt);
> (2) register WS0 interrupt for the half timeout panic.
> timeout == (enable --> WS1).
>
> v9: https://lkml.org/lkml/2015/11/9/57
> Rebase to latest kernel version(4.3).
> Update the Documentation of sbsa-gwdt device node info of FDT:
> (1) move some introduction to pretimeout patch
> (2) delete WS1 value from "interrupts" of binding documentation,
> since WS1 won't be handled by Linux.
>
> v8: https://lkml.org/lkml/2015/10/27/466
> Rebase to latest kernel version(4.3-rc7).
> Separate the patches of GTDT support and arm_arch_timer. This
> clocksource relevant patch will upstreamed in a individual patchset.
> Update all the default timeout and pretimeout to 30s and 60s.
> Improve documentation and inline comments.
> Fix a bug in pretimeout support which makes timeout and pretimeout
> parameters initialization fail.
>
> v7: https://lkml.org/lkml/2015/8/24/611
> Rebase to latest kernel version(4.2-rc7).
> Improve FDT support: geting resource by order, instead of name.
> According to the FDT support, Update the example dts file, gtdt.c
> and sbsa_gwdt.c.
> Pass the sparse test, and fix the warning.
> Fix the max_pretimeout and max_timeout value overflow bug.
> Delete the WCV output value.
>
>
> v6: https://lkml.org/lkml/2015/6/23/359
> Improve the dtb example files: reduce the register frame size to 4K.
> Improve pretimeout support:
> (1) improve watchdog_init_timeouts function
> (2) rename watchdog_check_min_max_timeouts back to the original name
> (1) improve watchdog_timeout_invalid/watchdog_pretimeout_invalid
> Add the new features in the sbsa_gwdt driver:
> (1) In the second stage, user can feed the dog without cleaning WS0.
> (2) In the second stage, user can trigger WS1 by setting pretimeout = 0.
> (3) expand the max value of pretimeout, in case 10 second is not enough
> for a kdump kernel reboot in panic.
>
> v5: https://lkml.org/lkml/2015/6/10/357
> Improve pretimeout support:
> (1)fix typo in documentation and comments.
> (2)fix the timeout limits validation bug.
> Simplify sbsa_gwdt driver:
> (1)integrate all the registers access functions into caller.
>
> v4: https://lkml.org/lkml/2015/6/2/4
> Refactor GTDT support code: remove it from arch/arm64/kernel/acpi.c,
> put it into drivers/acpi/gtdt.c file.
> Integrate the GTDT code of drivers/clocksource/arm_arch_timer.c into
> drivers/acpi/gtdt.c.
> Improve pretimeout support, fix "pretimeout == 0" problem.
> Simplify sbsa_gwdt driver:
> (1)timeout/pretimeout limits setup;
> (2)keepalive function;
> (3)delete "clk == 0" check;
> (4)delete WS0 status bit check in interrupt routine;
> (5)sbsa_gwdt_set_wcv function.
>
> v3: https://lkml.org/lkml/2015/5/25/111
> Delete "export arch_timer_get_rate" patch.
> Driver back to use arch_timer_get_cntfrq.
> Improve watchdog_init_timeouts function and update relevant documentation.
> Improve watchdog_timeout_invalid and watchdog_pretimeout_invalid.
> Improve foundation-v8.dts: delete the unnecessary tag of device node.
> Remove "ARM64 || COMPILE_TEST" from Kconfig.
> Add comments in arch/arm64/kernel/acpi.c
> Fix typoes and incorrect comments.
>
> v2: https://lkml.org/lkml/2015/5/21/172
> Improve watchdog-kernel-api.txt documentation for pretimeout support.
> Export "arch_timer_get_rate" in arm_arch_timer.c.
> Add watchdog_init_timeouts API for pretimeout support in framework.
> Improve suspend and resume foundation in driver
> Improve timeout/pretimeout values init code in driver.
> Delete unnecessary items of the sbsa_gwdt struct and #define.
> Delete all unnecessary debug info in driver.
> Fix 64bit division bug.
> Use the arch_timer interface to get watchdog clock rate.
> Add MODULE_DEVICE_TABLE for platform device id.
> Fix typoes.
>
> v1: https://lkml.org/lkml/2015/5/15/279
> The first version upstream patchset to linux mailing list.
>
> Fu Wei (4):
> Documentation: add sbsa-gwdt driver documentation
> ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts
> ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi
> Watchdog: introduce ARM SBSA watchdog driver
>
> .../devicetree/bindings/watchdog/sbsa-gwdt.txt | 31 ++
> Documentation/watchdog/watchdog-parameters.txt | 7 +
> arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | 8 +
> arch/arm64/boot/dts/arm/foundation-v8.dts | 7 +
> drivers/watchdog/Kconfig | 20 +
> drivers/watchdog/Makefile | 1 +
> drivers/watchdog/sbsa_gwdt.c | 408 +++++++++++++++++++++
> 7 files changed, 482 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/watchdog/sbsa-gwdt.txt
> create mode 100644 drivers/watchdog/sbsa_gwdt.c
>
> --
> 2.5.0
>

Patchset added to linux-watchdog-next.

Kind regards,
Wim.