wdt_start() does the "no ->start? return -ENOSYS" check, don't
open-code that in wdt_expire_now().

Also, wdt_start() maintains some global (and later some per-device)
state, which would get out of sync with this direct method call - not
that it matters much here since the board is supposed to reset very
soon.

Reviewed-by: Simon Glass <s...@chromium.org>
Reviewed-by: Stefan Roese <s...@denx.de>
Signed-off-by: Rasmus Villemoes <rasmus.villem...@prevas.dk>
---
 drivers/watchdog/wdt-uclass.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/watchdog/wdt-uclass.c b/drivers/watchdog/wdt-uclass.c
index 17334dbda6..df8164da2a 100644
--- a/drivers/watchdog/wdt-uclass.c
+++ b/drivers/watchdog/wdt-uclass.c
@@ -120,10 +120,8 @@ int wdt_expire_now(struct udevice *dev, ulong flags)
        if (ops->expire_now) {
                return ops->expire_now(dev, flags);
        } else {
-               if (!ops->start)
-                       return -ENOSYS;
+               ret = wdt_start(dev, 1, flags);
 
-               ret = ops->start(dev, 1, flags);
                if (ret < 0)
                        return ret;
 
-- 
2.31.1

Reply via email to