|
@@ -48,6 +48,7 @@ struct mpc8xxx_wdt_type {
|
|
};
|
|
};
|
|
|
|
|
|
static struct mpc8xxx_wdt __iomem *wd_base;
|
|
static struct mpc8xxx_wdt __iomem *wd_base;
|
|
|
|
+static int mpc8xxx_wdt_init_late(void);
|
|
|
|
|
|
static u16 timeout = 0xffff;
|
|
static u16 timeout = 0xffff;
|
|
module_param(timeout, ushort, 0);
|
|
module_param(timeout, ushort, 0);
|
|
@@ -213,6 +214,12 @@ static int __devinit mpc8xxx_wdt_probe(struct of_device *ofdev,
|
|
else
|
|
else
|
|
timeout_sec = timeout / freq;
|
|
timeout_sec = timeout / freq;
|
|
|
|
|
|
|
|
+#ifdef MODULE
|
|
|
|
+ ret = mpc8xxx_wdt_init_late();
|
|
|
|
+ if (ret)
|
|
|
|
+ goto err_unmap;
|
|
|
|
+#endif
|
|
|
|
+
|
|
pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d "
|
|
pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d "
|
|
"(%d seconds)\n", reset ? "reset" : "interrupt", timeout,
|
|
"(%d seconds)\n", reset ? "reset" : "interrupt", timeout,
|
|
timeout_sec);
|
|
timeout_sec);
|
|
@@ -280,7 +287,7 @@ static struct of_platform_driver mpc8xxx_wdt_driver = {
|
|
* very early to start pinging the watchdog (misc devices are not yet
|
|
* very early to start pinging the watchdog (misc devices are not yet
|
|
* available), and later module_init() just registers the misc device.
|
|
* available), and later module_init() just registers the misc device.
|
|
*/
|
|
*/
|
|
-static int __init mpc8xxx_wdt_init_late(void)
|
|
|
|
|
|
+static int mpc8xxx_wdt_init_late(void)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
@@ -295,7 +302,9 @@ static int __init mpc8xxx_wdt_init_late(void)
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
+#ifndef MODULE
|
|
module_init(mpc8xxx_wdt_init_late);
|
|
module_init(mpc8xxx_wdt_init_late);
|
|
|
|
+#endif
|
|
|
|
|
|
static int __init mpc8xxx_wdt_init(void)
|
|
static int __init mpc8xxx_wdt_init(void)
|
|
{
|
|
{
|