Skip to contentSkip to conversation

watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()

PATCH In review Viresh Kumar 3 participants 3 messages May 15, 2014 – May 26, 2014 Watchdog device drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()

Implementation of ->set_timeout() is supposed to set 'timeout' field of 'struct watchdog_device' passed to it. sp805 was rather setting this in a local variable. Fix it.

---
Greg,

This driver was introduced in 2.6.36 and WDIOC_GETTIMEOUT is broken since then. So added it for such an old stable release. Not sure if it should only be worth applying to 3.0+

 drivers/watchdog/sp805_wdt.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/watchdog/sp805_wdt.c +1 -3
index 47629d2..c1b03f4 100644
@@ -59,7 +59,6 @@
  * @adev: amba device structure of wdt
  * @status: current status of wdt
  * @load_val: load value to be set for current timeout
- * @timeout: current programmed timeout
  */
 struct sp805_wdt {
 	struct watchdog_device		wdd;
@@ -68,7 +67,6 @@ struct sp805_wdt {
 	struct clk			*clk;
 	struct amba_device		*adev;
 	unsigned int			load_val;
-	unsigned int			timeout;
 };
 
 static bool nowayout = WATCHDOG_NOWAYOUT;
@@ -98,7 +96,7 @@ static int wdt_setload(struct watchdog_device *wdd, unsigned int timeout)
 	spin_lock(&wdt->lock);
 	wdt->load_val = load;
 	/* roundup timeout to closest positive integer value */
-	wdt->timeout = div_u64((load + 1) * 2 + (rate / 2), rate);
+	wdd->timeout = div_u64((load + 1) * 2 + (rate / 2), rate);
 	spin_unlock(&wdt->lock);
 
 	return 0;
Signature · 1 line
2.0.0.rc2
maintainer
#1 lore raw

PATCH 1/1 watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()

Quoted 7 lines · Viresh Kumar

Implementation of ->set_timeout() is supposed to set 'timeout' field of 'struct watchdog_device' passed to it. sp805 was rather setting this in a local variable. Fix it.

#2 lore raw
In reply to Viresh Kumar

Hi Viresh,

Quoted 10 lines

Implementation of ->set_timeout() is supposed to set 'timeout' field of 'struct watchdog_device' passed to it. sp805 was rather setting this in a local variable. Fix it.

---
Greg,

Quoted 6 lines

This driver was introduced in 2.6.36 and WDIOC_GETTIMEOUT is broken since then. So added it for such an old stable release. Not sure if it should only be worth applying to 3.0+

 drivers/watchdog/sp805_wdt.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Patch has been added to linux-watchdog-next.

Kind regards,
Wim.