From: "Pali Rohár" <pali@kernel.org>
To: u-boot@lists.denx.de
Subject: [PATCH v2 1/4] watchdog: Set/unset GD_FLG_WDT_READY flag in wdt_start()/wdt_stop()
Date: Tue, 9 Mar 2021 14:26:54 +0100 [thread overview]
Message-ID: <20210309132657.25393-1-pali@kernel.org> (raw)
In-Reply-To: <20210305213659.31025-1-pali@kernel.org>
Watchdog is ready after successful call of ops->start() callback in
wdt_start() function. And is stopped after successful call of ops->stop()
callback in wdt_stop function.
So move setting of GD_FLG_WDT_READY flag from initr_watchdog() function to
wdt_start() and ensure that GD_FLG_WDT_READY flag is unset in wdt_stop()
function.
This change ensures that GD_FLG_WDT_READY flag is set only when watchdog is
running. And ensures that flag is also also when watchdog was started not
only by initr_watchdog() call (e.g. by U-Boot 'wdt' command).
Signed-off-by: Pali Roh?r <pali@kernel.org>
---
drivers/watchdog/wdt-uclass.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/watchdog/wdt-uclass.c b/drivers/watchdog/wdt-uclass.c
index 28f7918c4673..3f707f61f74f 100644
--- a/drivers/watchdog/wdt-uclass.c
+++ b/drivers/watchdog/wdt-uclass.c
@@ -51,7 +51,6 @@ int initr_watchdog(void)
}
wdt_start(gd->watchdog_dev, timeout * 1000, 0);
- gd->flags |= GD_FLG_WDT_READY;
printf("WDT: Started with%s servicing (%ds timeout)\n",
IS_ENABLED(CONFIG_WATCHDOG) ? "" : "out", timeout);
@@ -61,21 +60,31 @@ int initr_watchdog(void)
int wdt_start(struct udevice *dev, u64 timeout_ms, ulong flags)
{
const struct wdt_ops *ops = device_get_ops(dev);
+ int ret;
if (!ops->start)
return -ENOSYS;
- return ops->start(dev, timeout_ms, flags);
+ ret = ops->start(dev, timeout_ms, flags);
+ if (ret == 0)
+ gd->flags |= GD_FLG_WDT_READY;
+
+ return ret;
}
int wdt_stop(struct udevice *dev)
{
const struct wdt_ops *ops = device_get_ops(dev);
+ int ret;
if (!ops->stop)
return -ENOSYS;
- return ops->stop(dev);
+ ret = ops->stop(dev);
+ if (ret == 0)
+ gd->flags &= ~GD_FLG_WDT_READY;
+
+ return ret;
}
int wdt_reset(struct udevice *dev)
--
2.20.1
next prev parent reply other threads:[~2021-03-09 13:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-05 21:36 [PATCH 1/4] watchdog: Set/unset GD_FLG_WDT_READY flag in wdt_start()/wdt_stop() Pali Rohár
2021-03-05 21:36 ` [PATCH 2/4] watchdog: Show error message when initr_watchdog() cannot start watchdog Pali Rohár
2021-03-09 11:27 ` Stefan Roese
2021-03-05 21:36 ` [PATCH 3/4] watchdog: Allow to use CONFIG_WDT without starting watchdog Pali Rohár
2021-03-09 11:33 ` Stefan Roese
2021-03-09 13:27 ` Pali Rohár
2021-03-09 16:12 ` Stefan Roese
2021-03-09 16:14 ` Pali Rohár
2021-03-05 21:36 ` [PATCH 4/4] arm: mvebu: Espressobin: Enable watchdog support but do not start it Pali Rohár
2021-03-09 11:34 ` Stefan Roese
2021-03-09 11:26 ` [PATCH 1/4] watchdog: Set/unset GD_FLG_WDT_READY flag in wdt_start()/wdt_stop() Stefan Roese
2021-03-09 13:26 ` Pali Rohár [this message]
2021-03-09 13:26 ` [PATCH v2 2/4] watchdog: Show error message when initr_watchdog() cannot start watchdog Pali Rohár
2021-03-09 16:13 ` Stefan Roese
2021-03-09 13:26 ` [PATCH v2 3/4] watchdog: Allow to use CONFIG_WDT without starting watchdog Pali Rohár
2021-03-09 16:13 ` Stefan Roese
2021-03-09 13:26 ` [PATCH v2 4/4] arm: mvebu: Espressobin: Enable watchdog support but do not start it Pali Rohár
2021-03-09 16:13 ` Stefan Roese
2021-03-09 16:13 ` [PATCH v2 1/4] watchdog: Set/unset GD_FLG_WDT_READY flag in wdt_start()/wdt_stop() Stefan Roese
2021-04-06 10:28 ` Stefan Roese
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210309132657.25393-1-pali@kernel.org \
--to=pali@kernel.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.