linux-mips
[Top] [All Lists]

Re: [PATCH] ar7: register watchdog driver only if enabled in hardware co

To: linux-mips@linux-mips.org
Subject: Re: [PATCH] ar7: register watchdog driver only if enabled in hardware configuration
From: Alexander Clouter <alex@digriz.org.uk>
Date: Tue, 4 Aug 2009 23:41:42 +0100
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <200908042309.36721.florian@openwrt.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: tin/1.9.3-20080506 ("Dalintober") (UNIX) (Linux/2.6.26-2-sparc64-smp (sparc64))
Florian Fainelli <florian@openwrt.org> 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@openwrt.org>
> ---
> 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);
>
I think the 'correct' way to do this is:
---
void __iomem *bootcr;
u32 val;

...

bootcr = ioremap_nocache(AR7_REGS_DCL, 4);
val = *bootcr;
iounmap(bootcr);
---

I'm betting this could be reduced to:
---
if (ioread32(AR7_REGS_DCL) & AR7_WDT_HW_ENA)
        res = platform_device_register(&ar7_wdt);
---

However without the hardware...I cannot test this.

Cheers

-- 
Alexander Clouter
.sigmonster says: Accuracy, n.:
                        The vice of being right


<Prev in Thread] Current Thread [Next in Thread>