+++ /dev/null
---- a/drivers/watchdog/ar7_wdt.c 2009-01-25 01:17:01.000000000 +1300
-+++ b/drivers/watchdog/ar7_wdt.c 2009-01-25 01:19:15.000000000 +1300
-@@ -293,12 +293,26 @@
- .fops = &ar7_wdt_fops,
- };
-
-+#define AR7_WDT_HARDWARE_ENABLE 0x10
-+
- static int __init ar7_wdt_init(void)
- {
- int rc;
-+ u32 *bootcr;
-+ u32 bootcr_value;
-
- ar7_wdt_get_regs();
-
-+ /* arch/mips/ar7/clocks.c is the only other thing that reads this */
-+ bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4);
-+ bootcr_value = *bootcr;
-+ iounmap(bootcr);
-+
-+ if (!(bootcr_value & AR7_WDT_HARDWARE_ENABLE)) {
-+ printk(KERN_INFO DRVNAME ": watchdog disabled in hardware (bootcr=%#x)\n", bootcr_value);
-+ return -ENODEV;
-+ }
-+
- if (!request_mem_region(ar7_regs_wdt, sizeof(struct ar7_wdt),
- LONGNAME)) {
- printk(KERN_WARNING DRVNAME ": watchdog I/O region busy\n");