Hi Heinrich, On Thu, 4 Nov 2021 at 10:31, Heinrich Schuchardt < heinrich.schucha...@canonical.com> 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. > A candid question here. I know that IPMI can powercycle a platform. How would we handle that should there be a way to make the power cycle happen? (for instance we could define a PSCI extension of SYSTEM_RESET2 to have a power cycle effect) > > Fixes: 17a0c14164dc ("dm: sysreset: add watchdog-reboot driver") > Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > --- > 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; > } > -- > 2.32.0 > > -- François-Frédéric Ozog | *Director Business Development* T: +33.67221.6485 francois.o...@linaro.org | Skype: ffozog