| .. | .. |
|---|
| 37 | 37 | * |
|---|
| 38 | 38 | * The watchdog_ops structure contains a list of low-level operations |
|---|
| 39 | 39 | * that control a watchdog device. It also contains the module that owns |
|---|
| 40 | | - * these operations. The start and stop function are mandatory, all other |
|---|
| 40 | + * these operations. The start function is mandatory, all other |
|---|
| 41 | 41 | * functions are optional. |
|---|
| 42 | 42 | */ |
|---|
| 43 | 43 | struct watchdog_ops { |
|---|
| 44 | 44 | struct module *owner; |
|---|
| 45 | 45 | /* mandatory operations */ |
|---|
| 46 | 46 | int (*start)(struct watchdog_device *); |
|---|
| 47 | | - int (*stop)(struct watchdog_device *); |
|---|
| 48 | 47 | /* optional operations */ |
|---|
| 48 | + int (*stop)(struct watchdog_device *); |
|---|
| 49 | 49 | int (*ping)(struct watchdog_device *); |
|---|
| 50 | 50 | unsigned int (*status)(struct watchdog_device *); |
|---|
| 51 | 51 | int (*set_timeout)(struct watchdog_device *, unsigned int); |
|---|
| .. | .. |
|---|
| 90 | 90 | * |
|---|
| 91 | 91 | * The driver-data field may not be accessed directly. It must be accessed |
|---|
| 92 | 92 | * via the watchdog_set_drvdata and watchdog_get_drvdata helpers. |
|---|
| 93 | | - * |
|---|
| 94 | | - * The lock field is for watchdog core internal use only and should not be |
|---|
| 95 | | - * touched. |
|---|
| 96 | 93 | */ |
|---|
| 97 | 94 | struct watchdog_device { |
|---|
| 98 | 95 | int id; |
|---|
| .. | .. |
|---|
| 213 | 210 | extern int watchdog_register_device(struct watchdog_device *); |
|---|
| 214 | 211 | extern void watchdog_unregister_device(struct watchdog_device *); |
|---|
| 215 | 212 | |
|---|
| 213 | +int watchdog_set_last_hw_keepalive(struct watchdog_device *, unsigned int); |
|---|
| 214 | + |
|---|
| 216 | 215 | /* devres register variant */ |
|---|
| 217 | 216 | int devm_watchdog_register_device(struct device *dev, struct watchdog_device *); |
|---|
| 218 | 217 | |
|---|