Переглянути джерело

disable the watchdog if the bootloader left it enabled

SVN-Revision: 15920
Gabor Juhos 16 роки тому
батько
коміт
5bad9df354

+ 24 - 0
target/linux/gemini/patches/004-gemini-disable-watchdog-in-probe.patch

@@ -0,0 +1,24 @@
+--- a/drivers/watchdog/gemini_wdt.c
++++ b/drivers/watchdog/gemini_wdt.c
+@@ -224,6 +224,7 @@ static int __init gemini_wdt_probe(struc
+ 	struct resource *res;
+ 	void __iomem *base;
+ 	struct gemini_wdt_struct *gemini_wdt;
++	unsigned int reg;
+ 
+ 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ 	if (!res) {
+@@ -267,6 +268,13 @@ static int __init gemini_wdt_probe(struc
+ 
+ 	gemini_wdt_miscdev.parent = &pdev->dev;
+ 
++	reg = __raw_readw(gemini_wdt->base + GEMINI_WDCR);
++	if (reg & WDCR_ENABLE) {
++		/* Watchdog was enabled by the bootloader, disable it. */
++		reg &= ~(WDCR_ENABLE);
++		__raw_writel(reg, gemini_wdt->base + GEMINI_WDCR);
++	}
++
+ 	ret = misc_register(&gemini_wdt_miscdev);
+ 	if (ret)
+ 		goto fail2;