[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