1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-14 11:43:10 +02:00
openwrt-xburst/target/linux/brcm47xx/patches-3.6/542-watchdog-bcm47xx_wdt.c-rename-ops-methods.patch
hauke c57e2a3047 brcm47xx: watchdog: deactivate NOWAYOUT.
In the old configuration the SoC issued a reboot if the watchdog was 
killed also if it was kill with TERM and not KILL.

This will fix #11724.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34324 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-24 20:24:27 +00:00

91 lines
2.8 KiB
Diff

--- a/drivers/watchdog/bcm47xx_wdt.c
+++ b/drivers/watchdog/bcm47xx_wdt.c
@@ -44,12 +44,13 @@ MODULE_PARM_DESC(nowayout,
"Watchdog cannot be stopped once started (default="
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+
static inline struct bcm47xx_wdt *bcm47xx_wdt_get(struct watchdog_device *wdd)
{
return container_of(wdd, struct bcm47xx_wdt, wdd);
}
-static void bcm47xx_timer_tick(unsigned long data)
+static void bcm47xx_wdt_soft_timer_tick(unsigned long data)
{
struct bcm47xx_wdt *wdt = (struct bcm47xx_wdt *)data;
u32 next_tick = min(wdt->wdd.timeout * 1000, wdt->max_timer_ms);
@@ -62,7 +63,7 @@ static void bcm47xx_timer_tick(unsigned
}
}
-static int bcm47xx_wdt_keepalive(struct watchdog_device *wdd)
+static int bcm47xx_wdt_soft_keepalive(struct watchdog_device *wdd)
{
struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd);
@@ -71,17 +72,17 @@ static int bcm47xx_wdt_keepalive(struct
return 0;
}
-static int bcm47xx_wdt_start(struct watchdog_device *wdd)
+static int bcm47xx_wdt_soft_start(struct watchdog_device *wdd)
{
struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd);
- bcm47xx_wdt_keepalive(wdd);
- bcm47xx_timer_tick((unsigned long)wdt);
+ bcm47xx_wdt_soft_keepalive(wdd);
+ bcm47xx_wdt_soft_timer_tick((unsigned long)wdt);
return 0;
}
-static int bcm47xx_wdt_stop(struct watchdog_device *wdd)
+static int bcm47xx_wdt_soft_stop(struct watchdog_device *wdd)
{
struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd);
@@ -91,8 +92,8 @@ static int bcm47xx_wdt_stop(struct watch
return 0;
}
-static int bcm47xx_wdt_set_timeout(struct watchdog_device *wdd,
- unsigned int new_time)
+static int bcm47xx_wdt_soft_set_timeout(struct watchdog_device *wdd,
+ unsigned int new_time)
{
if (new_time < 1 || new_time > WDT_MAX_TIME) {
pr_warn("timeout value must be 1<=x<=%d, using %d\n",
@@ -122,12 +123,12 @@ static int bcm47xx_wdt_notify_sys(struct
return NOTIFY_DONE;
}
-static struct watchdog_ops bcm47xx_wdt_ops = {
+static struct watchdog_ops bcm47xx_wdt_soft_ops = {
.owner = THIS_MODULE,
- .start = bcm47xx_wdt_start,
- .stop = bcm47xx_wdt_stop,
- .ping = bcm47xx_wdt_keepalive,
- .set_timeout = bcm47xx_wdt_set_timeout,
+ .start = bcm47xx_wdt_soft_start,
+ .stop = bcm47xx_wdt_soft_stop,
+ .ping = bcm47xx_wdt_soft_keepalive,
+ .set_timeout = bcm47xx_wdt_soft_set_timeout,
};
static int __devinit bcm47xx_wdt_probe(struct platform_device *pdev)
@@ -138,10 +139,10 @@ static int __devinit bcm47xx_wdt_probe(s
if (!wdt)
return -ENXIO;
- setup_timer(&wdt->soft_timer, bcm47xx_timer_tick,
+ setup_timer(&wdt->soft_timer, bcm47xx_wdt_soft_timer_tick,
(long unsigned int)wdt);
- wdt->wdd.ops = &bcm47xx_wdt_ops;
+ wdt->wdd.ops = &bcm47xx_wdt_soft_ops;
wdt->wdd.info = &bcm47xx_wdt_info;
wdt->wdd.timeout = WDT_DEFAULT_TIME;
ret = wdt->wdd.ops->set_timeout(&wdt->wdd, timeout);