diff options
author | Jean-Baptiste Theou <jtheou@adeneo-embedded.us> | 2015-06-09 12:55:02 -0400 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2015-06-29 05:51:06 -0400 |
commit | ef90174f821041313d42d99c1c8b35a3af64a910 (patch) | |
tree | 0265d89b6ee866b7e20a8925fae03e290e078e00 /Documentation/watchdog | |
parent | b9be9660ba2d23259e4a430a44167ef441dc5fe6 (diff) |
watchdog: watchdog_core: Add watchdog registration deferral mechanism
Currently, watchdog subsystem require the misc subsystem to
register a watchdog. This may not be the case in case of an
early registration of a watchdog, which can be required when
the watchdog cannot be disabled.
This patch introduces a deferral mechanism to remove this requirement.
Signed-off-by: Jean-Baptiste Theou <jtheou@adeneo-embedded.us>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'Documentation/watchdog')
-rw-r--r-- | Documentation/watchdog/watchdog-kernel-api.txt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/watchdog/watchdog-kernel-api.txt b/Documentation/watchdog/watchdog-kernel-api.txt index a0438f3957ca..d8b0d3367706 100644 --- a/Documentation/watchdog/watchdog-kernel-api.txt +++ b/Documentation/watchdog/watchdog-kernel-api.txt | |||
@@ -36,6 +36,10 @@ The watchdog_unregister_device routine deregisters a registered watchdog timer | |||
36 | device. The parameter of this routine is the pointer to the registered | 36 | device. The parameter of this routine is the pointer to the registered |
37 | watchdog_device structure. | 37 | watchdog_device structure. |
38 | 38 | ||
39 | The watchdog subsystem includes an registration deferral mechanism, | ||
40 | which allows you to register an watchdog as early as you wish during | ||
41 | the boot process. | ||
42 | |||
39 | The watchdog device structure looks like this: | 43 | The watchdog device structure looks like this: |
40 | 44 | ||
41 | struct watchdog_device { | 45 | struct watchdog_device { |
@@ -52,6 +56,7 @@ struct watchdog_device { | |||
52 | void *driver_data; | 56 | void *driver_data; |
53 | struct mutex lock; | 57 | struct mutex lock; |
54 | unsigned long status; | 58 | unsigned long status; |
59 | struct list_head deferred; | ||
55 | }; | 60 | }; |
56 | 61 | ||
57 | It contains following fields: | 62 | It contains following fields: |
@@ -80,6 +85,8 @@ It contains following fields: | |||
80 | information about the status of the device (Like: is the watchdog timer | 85 | information about the status of the device (Like: is the watchdog timer |
81 | running/active, is the nowayout bit set, is the device opened via | 86 | running/active, is the nowayout bit set, is the device opened via |
82 | the /dev/watchdog interface or not, ...). | 87 | the /dev/watchdog interface or not, ...). |
88 | * deferred: entry in wtd_deferred_reg_list which is used to | ||
89 | register early initialized watchdogs. | ||
83 | 90 | ||
84 | The list of watchdog operations is defined as: | 91 | The list of watchdog operations is defined as: |
85 | 92 | ||