[PATCH 1/1] sysreset: watchdog: watchdog cannot power off
Stefan Roese
sr at denx.de
Fri Nov 5 07:23:46 CET 2021
On 04.11.21 10:31, Heinrich Schuchardt wrote:
> The watchdog system reset driver can reboot the device but it cannot power
> it off. If power off is requested, the driver should not reset the system
> but leave powering off to one of the other system reset drivers.
>
> As power cycling is typically not a feature of a watchdog driver the reset
> types SYSRESET_POWER and SYSRESET_POWER_OFF shall both be excluded.
>
> Fixes: 17a0c14164dc ("dm: sysreset: add watchdog-reboot driver")
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> drivers/sysreset/sysreset_watchdog.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/sysreset/sysreset_watchdog.c b/drivers/sysreset/sysreset_watchdog.c
> index 35efcac59d..8a659ee9b9 100644
> --- a/drivers/sysreset/sysreset_watchdog.c
> +++ b/drivers/sysreset/sysreset_watchdog.c
> @@ -20,9 +20,16 @@ static int wdt_reboot_request(struct udevice *dev, enum sysreset_t type)
> struct wdt_reboot_plat *plat = dev_get_plat(dev);
> int ret;
>
> - ret = wdt_expire_now(plat->wdt, 0);
> - if (ret)
> - return ret;
> + switch (type) {
> + case SYSRESET_COLD:
> + case SYSRESET_WARM:
> + ret = wdt_expire_now(plat->wdt, 0);
> + if (ret)
> + return ret;
> + break;
> + default:
> + return -ENOSYS;
> + }
>
> return -EINPROGRESS;
> }
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list