Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[linux-2.6-block.git] / drivers / watchdog / orion_wdt.c
index 7c18b3bffcf74ab0845fb8796659d297c618e6ed..da577980d390cbe5df8343f3de64240b4f04c528 100644 (file)
@@ -140,6 +140,7 @@ static const struct watchdog_ops orion_wdt_ops = {
 static struct watchdog_device orion_wdt = {
        .info = &orion_wdt_info,
        .ops = &orion_wdt_ops,
+       .min_timeout = 1,
 };
 
 static int orion_wdt_probe(struct platform_device *pdev)
@@ -164,12 +165,9 @@ static int orion_wdt_probe(struct platform_device *pdev)
 
        wdt_max_duration = WDT_MAX_CYCLE_COUNT / wdt_tclk;
 
-       if ((heartbeat < 1) || (heartbeat > wdt_max_duration))
-               heartbeat = wdt_max_duration;
-
-       orion_wdt.timeout = heartbeat;
-       orion_wdt.min_timeout = 1;
+       orion_wdt.timeout = wdt_max_duration;
        orion_wdt.max_timeout = wdt_max_duration;
+       watchdog_init_timeout(&orion_wdt, heartbeat, &pdev->dev);
 
        watchdog_set_nowayout(&orion_wdt, nowayout);
        ret = watchdog_register_device(&orion_wdt);
@@ -179,7 +177,7 @@ static int orion_wdt_probe(struct platform_device *pdev)
        }
 
        pr_info("Initial timeout %d sec%s\n",
-               heartbeat, nowayout ? ", nowayout" : "");
+               orion_wdt.timeout, nowayout ? ", nowayout" : "");
        return 0;
 }
 
@@ -225,4 +223,5 @@ MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
                                __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
 
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:orion_wdt");
 MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);