2006-01-03 20:50:21

by Deepak Saxena

[permalink] [raw]
Subject: [PATCH] Fix IXP4xx watchdog errata workaround

The IXP4xx driver bails out on all A0 CPUs, but it should only do
so on IXP42x as IXP46x has functioning HW.

Signed-off-by: Deepak Saxena <[email protected]>

---


Index: linux-2.6-git/drivers/char/watchdog/ixp4xx_wdt.c
===================================================================
--- linux-2.6-git.orig/drivers/char/watchdog/ixp4xx_wdt.c
+++ linux-2.6-git/drivers/char/watchdog/ixp4xx_wdt.c
@@ -186,8 +186,8 @@ static int __init ixp4xx_wdt_init(void)
unsigned long processor_id;

asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :);
- if (!(processor_id & 0xf)) {
- printk("IXP4XXX Watchdog: Rev. A0 CPU detected - "
+ if (!(processor_id & 0xf) && !cpu_is_ixp46x()) {
+ printk("IXP4XXX Watchdog: Rev. A0 IXP42x CPU detected - "
"watchdog disabled\n");

return -ENODEV;