From: fu.wei@linaro.org
To: linaro-acpi@lists.linaro.org, linux-watchdog@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org
Cc: tekkamanninja@gmail.com, arnd@arndb.de, linux@roeck-us.net,
vgandhi@codeaurora.org, wim@iguana.be, jcm@redhat.com,
leo.duran@amd.com, corbet@lwn.net, mark.rutland@arm.com,
catalin.marinas@arm.com, will.deacon@arm.com, rjw@rjwysocki.net,
dyoung@redhat.com, panand@redhat.com,
Suravee.Suthikulpanit@amd.com, robherring2@gmail.com,
Fu Wei <fu.wei@linaro.org>
Subject: [PATCH v8 0/5] Watchdog: introduce ARM SBSA watchdog driver
Date: Wed, 28 Oct 2015 00:06:34 +0800 [thread overview]
Message-ID: <1445961999-9506-1-git-send-email-fu.wei@linaro.org> (raw)
From: Fu Wei <fu.wei@linaro.org>
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 "pretimeout" into the watchdog framework, and update
Documentation/watchdog/watchdog-kernel-api.txt to introduce:
(1)the new elements in the watchdog_device and watchdog_ops struct;
(2)the new API "watchdog_init_timeouts".
(3)Introduce ARM SBSA watchdog driver:
a.Use linux kernel watchdog framework;
b.Work with FDT on ARM64;
c.Use "pretimeout" in watchdog framework;
d.Support getting timeout and pretimeout from parameter and FDT
at the driver init stage.
e.In the first timeout, do panic to save system context;
f.In the second stage, user can still feed the dog without
cleaning WS0. By this feature, we can avoid the panic infinite
loops, while backing up a large system context in a server.
g.In the second stage, can trigger WS1 by setting pretimeout = 0
if necessary.
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:
v8: 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: 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: 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: 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: 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: 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: 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: The first version upstream patchset to linux mailing list.
Fu Wei (7):
Documentation: add sbsa-gwdt.txt 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: introdouce "pretimeout" into framework
Watchdog: introduce ARM SBSA watchdog driver
ACPI: add GTDT table parse driver into ACPI driver
Watchdog: enable ACPI GTDT support for ARM SBSA watchdog driver
Fu Wei (5):
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: introdouce "pretimeout" into framework
Watchdog: introduce ARM SBSA watchdog driver
.../devicetree/bindings/watchdog/sbsa-gwdt.txt | 46 +++
Documentation/watchdog/watchdog-kernel-api.txt | 55 ++-
Documentation/watchdog/watchdog-parameters.txt | 6 +
arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | 8 +
arch/arm64/boot/dts/arm/foundation-v8.dts | 7 +
drivers/watchdog/Kconfig | 14 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/sbsa_gwdt.c | 459 +++++++++++++++++++++
drivers/watchdog/watchdog_core.c | 127 ++++--
drivers/watchdog/watchdog_dev.c | 53 +++
include/linux/watchdog.h | 39 +-
11 files changed, 773 insertions(+), 42 deletions(-)
create mode 100644 Documentation/devicetree/bindings/watchdog/sbsa-gwdt.txt
create mode 100644 drivers/watchdog/sbsa_gwdt.c
--
2.4.3
next reply other threads:[~2015-10-27 16:07 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-27 16:06 fu.wei [this message]
2015-10-27 16:06 ` [PATCH v8 1/5] Documentation: add sbsa-gwdt driver documentation fu.wei
2015-10-27 16:22 ` Mark Rutland
2015-10-28 4:10 ` Fu Wei
2015-10-30 17:46 ` Timur Tabi
2015-10-30 18:35 ` Fu Wei
2015-10-30 18:53 ` Timur Tabi
2015-10-30 19:05 ` Mark Rutland
2015-10-30 20:37 ` Timur Tabi
2015-11-02 4:10 ` Fu Wei
2015-11-02 4:03 ` Fu Wei
2015-11-02 4:06 ` Timur Tabi
2015-11-02 4:23 ` Jon Masters
2015-10-27 16:06 ` [PATCH v8 2/5] ARM64: add SBSA Generic Watchdog device node in foundation-v8.dts fu.wei
2015-10-27 16:06 ` [PATCH v8 3/5] ARM64: add SBSA Generic Watchdog device node in amd-seattle-soc.dtsi fu.wei
2015-10-27 16:06 ` [PATCH v8 4/5] Watchdog: introdouce "pretimeout" into framework fu.wei
2015-10-27 16:06 ` [PATCH v8 5/5] Watchdog: introduce ARM SBSA watchdog driver fu.wei
2015-11-05 1:59 ` [Linaro-acpi] " Timur Tabi
2015-11-05 5:13 ` Guenter Roeck
2015-11-05 11:58 ` Fu Wei
2015-11-05 13:47 ` Timur Tabi
2015-11-05 13:47 ` Timur Tabi
2015-11-05 14:03 ` Fu Wei
2015-11-05 14:08 ` Timur Tabi
2015-11-05 14:35 ` Fu Wei
2015-11-05 14:40 ` Timur Tabi
2015-11-05 15:00 ` Fu Wei
2015-11-05 16:41 ` Guenter Roeck
2015-11-05 17:58 ` Fu Wei
2015-11-05 17:59 ` Timur Tabi
2015-11-05 18:04 ` Fu Wei
2015-11-13 0:06 ` Al Stone
2015-11-13 0:23 ` Timur Tabi
2015-11-19 23:50 ` Al Stone
2015-11-13 0:25 ` Guenter Roeck
2015-11-20 0:11 ` Al Stone
2015-11-20 0:26 ` Timur Tabi
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=1445961999-9506-1-git-send-email-fu.wei@linaro.org \
--to=fu.wei@linaro.org \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dyoung@redhat.com \
--cc=jcm@redhat.com \
--cc=leo.duran@amd.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=panand@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=robherring2@gmail.com \
--cc=tekkamanninja@gmail.com \
--cc=vgandhi@codeaurora.org \
--cc=will.deacon@arm.com \
--cc=wim@iguana.be \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox