From: Ashish Jangam <ashish.jangam@kpitcummins.com>
To: Wim Van Sebroeck <wim@iguana.be>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-watchdog@vger.kernel.org" <linux-watchdog@vger.kernel.org>,
Anthony Olech <Anthony.Olech@diasemi.com>,
<sameo@linux.intel.com>
Subject: [PATCH] Watchdog: Fix for settimeout issue
Date: Mon, 30 Apr 2012 12:10:31 +0530 [thread overview]
Message-ID: <1335768031.9546.20.camel@dhruva> (raw)
Some devices have a fixed minimum elapse time and a ping before this
elapse time causes error condition. This patch fix this issue in the
settimeout operation.
---
drivers/watchdog/watchdog_dev.c | 7 ++++++-
include/linux/watchdog.h | 3 +++
2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
index 8558da9..fb6076c 100644
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -41,6 +41,7 @@
#include <linux/miscdevice.h> /* For handling misc devices */
#include <linux/init.h> /* For __init/__exit/... */
#include <linux/uaccess.h> /* For copy_to_user/put_user/... */
+#include <linux/delay.h> /* For delay (like mdelay) */
/* make sure we only register one /dev/watchdog device */
static unsigned long watchdog_dev_busy;
@@ -228,7 +229,11 @@ static long watchdog_ioctl(struct file *file, unsigned int cmd,
return err;
/* If the watchdog is active then we send a keepalive ping
* to make sure that the watchdog keep's running (and if
- * possible that it takes the new timeout) */
+ * possible that it takes the new timeout) Also we care
+ * for watchdog which needs min elapse time before a ping.
+ */
+ if (wdd->min_elapse_time)
+ mdelay(wdd->min_elapse_time);
watchdog_ping(wdd);
/* Fall */
case WDIOC_GETTIMEOUT:
diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h
index ac40716..37d25b8 100644
--- a/include/linux/watchdog.h
+++ b/include/linux/watchdog.h
@@ -95,6 +95,8 @@ struct watchdog_ops {
* @timeout: The watchdog devices timeout value.
* @min_timeout:The watchdog devices minimum timeout value.
* @max_timeout:The watchdog devices maximum timeout value.
+ * @min_elapse_time: The watchdog devices minimum elapse time before
+ * the ping.
* @driver-data:Pointer to the drivers private data.
* @status: Field that contains the devices internal status bits.
*
@@ -111,6 +113,7 @@ struct watchdog_device {
unsigned int timeout;
unsigned int min_timeout;
unsigned int max_timeout;
+ unsigned int min_elapse_time;
void *driver_data;
unsigned long status;
/* Bit numbers for status flags */
next reply other threads:[~2012-04-30 6:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-30 6:40 Ashish Jangam [this message]
2012-05-23 18:36 ` [PATCH] Watchdog: Fix for settimeout issue Wim Van Sebroeck
2012-05-24 10:19 ` Ashish Jangam
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=1335768031.9546.20.camel@dhruva \
--to=ashish.jangam@kpitcummins.com \
--cc=Anthony.Olech@diasemi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=sameo@linux.intel.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 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.