Hey Alexander, Le Wednesday 05 August 2009 10:00:35 Alexander Clouter, vous avez écrit : > Florian Fainelli <florian@xxxxxxxxxxx> wrote: > > This patch checks if the watchdog enable bit is set in the DCL > > register meaning that the hardware watchdog actually works and > > if so, register the ar7_wdt platform_device. > > > > Signed-off-by: Florian Fainelli <florian@xxxxxxxxxxx> > > --- > > diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c > > index e2278c0..835f3f0 100644 > > --- a/arch/mips/ar7/platform.c > > +++ b/arch/mips/ar7/platform.c > > @@ -503,6 +503,7 @@ static int __init ar7_register_devices(void) > > { > > u16 chip_id; > > int res; > > + u32 *bootcr, val; > > #ifdef CONFIG_SERIAL_8250 > > static struct uart_port uart_port[2]; > > > > @@ -595,7 +596,13 @@ static int __init ar7_register_devices(void) > > > > ar7_wdt_res.end = ar7_wdt_res.start + 0x20; > > > > - res = platform_device_register(&ar7_wdt); > > + bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4); > > + val = *bootcr; > > + iounmap(bootcr); > > + > > + /* Register watchdog only if enabled in hardware */ > > + if (val & AR7_WDT_HW_ENA) > > + res = platform_device_register(&ar7_wdt); > > > > return res; > > } > > 'res' can now return NULL[1]. Solved if you do: > ---- > int res = -ENODEV; > ---- > > I'm guessing this is the most apprioate? I prefer letting this as-is, since if the watchdog was not enabled in hardware, we will not register the watchdog driver, and return the last platform_device_register call. > > Cheers > > [1] I cannot see the full file annoyingly, it's not in my linux-mips > git tree. Not sure which tree you checked out, but it is in linux-queue: http://www.linux-mips.org/git?p=linux-queue.git;a=tree;f=arch/mips/ar7;h=40ee7382dfabf05ee6c967016e42f94992655c20;hb=HEAD -- Best regards, Florian Fainelli Email: florian@xxxxxxxxxxx Web: http://openwrt.org IRC: [florian] on irc.freenode.net -------------------------------