mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 22:11:33 +02:00
[ar7] register watchdog only if enabled in hardware (#2378)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17125 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
42711a9f68
commit
c1bb09481a
29
target/linux/ar7/patches-2.6.27/140-watchdog_bootcr.patch
Normal file
29
target/linux/ar7/patches-2.6.27/140-watchdog_bootcr.patch
Normal file
@ -0,0 +1,29 @@
|
||||
--- 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");
|
31
target/linux/ar7/patches-2.6.30/140-watchdog_bootcr.patch
Normal file
31
target/linux/ar7/patches-2.6.30/140-watchdog_bootcr.patch
Normal file
@ -0,0 +1,31 @@
|
||||
--- a/drivers/watchdog/ar7_wdt.c
|
||||
+++ b/drivers/watchdog/ar7_wdt.c
|
||||
@@ -298,14 +298,28 @@ static struct miscdevice ar7_wdt_miscdev
|
||||
.fops = &ar7_wdt_fops,
|
||||
};
|
||||
|
||||
+#define AR7_WDT_HARDWARE_ENABLE 0x10
|
||||
+
|
||||
static int __init ar7_wdt_init(void)
|
||||
{
|
||||
int rc;
|
||||
+ u32 *bootcr;
|
||||
+ u32 bootcr_value;
|
||||
|
||||
spin_lock_init(&wdt_lock);
|
||||
|
||||
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");
|
Loading…
Reference in New Issue
Block a user