From: Wolfram Sang <w.sang@pengutronix.de>
To: linux-watchdog@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, wim@iguana.be,
tim.bird@am.sony.com, Wolfram Sang <w.sang@pengutronix.de>
Subject: [RFC 6/6] WIP watchdog: pnx4008: refactor disabling device
Date: Wed, 13 Jul 2011 22:26:06 +0200 [thread overview]
Message-ID: <1310588766-16638-7-git-send-email-w.sang@pengutronix.de> (raw)
In-Reply-To: <1310588766-16638-1-git-send-email-w.sang@pengutronix.de>
wdt_disable and clk_disable must always be used in combination in stop()
to match the initialization in start(), so group them together. Also,
fix disabling clock in remove, which should have been done before.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
---
drivers/watchdog/pnx4008_wdt.c | 23 +++++++++--------------
1 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index 1ccb49a..9f049d7 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -111,19 +111,11 @@ static int pnx4008_wdt_ping(struct watchdog_device *wdd)
return 0;
}
-static void wdt_disable(void)
-{
- spin_lock(&io_lock);
-
- writel(0, WDTIM_CTRL(wdt_base)); /*stop counter */
-
- spin_unlock(&io_lock);
-}
-
static int pnx4008_wdt_start(struct watchdog_device *wdd)
{
int ret;
+ //FIXME: better in an open-callback?
ret = clk_enable(wdt_clk);
if (ret)
return ret;
@@ -135,7 +127,11 @@ static int pnx4008_wdt_start(struct watchdog_device *wdd)
static int pnx4008_wdt_stop(struct watchdog_device *wdd)
{
- wdt_disable();
+ spin_lock(&io_lock);
+ writel(0, WDTIM_CTRL(wdt_base));
+ spin_unlock(&io_lock);
+
+ //FIXME: better in a close-callback?
clk_disable(wdt_clk);
return 0;
@@ -216,8 +212,8 @@ static int __devinit pnx4008_wdt_probe(struct platform_device *pdev)
goto disable_clk;
}
- wdt_disable(); /*disable for now */
- clk_disable(wdt_clk);
+ /* disable watchdog and its clock until opened */
+ pnx4008_wdt_stop(&pnx4008_wdd);
dev_info(&pdev->dev, "PNX4008 Watchdog Timer: heartbeat %d sec\n",
heartbeat);
@@ -235,8 +231,7 @@ static int __devinit pnx4008_wdt_probe(struct platform_device *pdev)
static int __devexit pnx4008_wdt_remove(struct platform_device *pdev)
{
watchdog_unregister_device(&pnx4008_wdd);
-
- clk_disable(wdt_clk);
+ /* clk has been disabled on close. If not, we'll reboot anyhow */
clk_put(wdt_clk);
return 0;
--
1.7.2.5
next prev parent reply other threads:[~2011-07-13 20:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-13 20:26 [RFC 0/6] watchdog drivers converted to the new framework Wolfram Sang
2011-07-13 20:26 ` [RFC 1/6] Documentation: watchdog: add guide how to convert drivers to " Wolfram Sang
2011-07-16 2:09 ` Randy Dunlap
2011-07-13 20:26 ` [RFC 2/6] watchdog: s3c2410: convert to use the watchdog framework Wolfram Sang
2011-07-13 20:26 ` [RFC 3/6] watchdog: pnx4008: cleanup resource handling using managed devices Wolfram Sang
2011-07-13 20:26 ` [RFC 4/6] watchdog: pnx4008: don't use __raw_-accessors Wolfram Sang
2011-07-13 20:26 ` [RFC 5/6] watchdog: pnx4008: convert driver to use the watchdog framework Wolfram Sang
2011-07-13 20:26 ` Wolfram Sang [this message]
2011-07-14 17:23 ` [RFC 0/6] watchdog drivers converted to the new framework H Hartley Sweeten
2011-07-14 18:27 ` Wolfram Sang
2011-07-14 18:42 ` H Hartley Sweeten
2011-07-14 20:00 ` Wolfram Sang
2011-07-14 20:10 ` H Hartley Sweeten
2011-07-22 17:55 ` Wim Van Sebroeck
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=1310588766-16638-7-git-send-email-w.sang@pengutronix.de \
--to=w.sang@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=tim.bird@am.sony.com \
--cc=wim@iguana.be \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®