Hello Manuel, On Monday 09 May 2011 21:18:34 Manuel Lauss wrote: > This patch replaces the drivers racy abuse of the gpio2 direction > register with calls to the gpio library. > > Cc: Florian Fainelli <florian@xxxxxxxxxxx> > Signed-off-by: Manuel Lauss <manuel.lauss@xxxxxxxxxxxxxx> I will give a try at this patch, it looks good at first glance. > --- > drivers/watchdog/mtx-1_wdt.c | 17 ++++++++++------- > 1 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/drivers/watchdog/mtx-1_wdt.c b/drivers/watchdog/mtx-1_wdt.c > index 5ec5ac1..011fee4 100644 > --- a/drivers/watchdog/mtx-1_wdt.c > +++ b/drivers/watchdog/mtx-1_wdt.c > @@ -66,6 +66,7 @@ static struct { > int default_ticks; > unsigned long inuse; > unsigned gpio; > + int gstate; > } mtx1_wdt_device; > > static void mtx1_wdt_trigger(unsigned long unused) > @@ -75,13 +76,13 @@ static void mtx1_wdt_trigger(unsigned long unused) > spin_lock(&mtx1_wdt_device.lock); > if (mtx1_wdt_device.running) > ticks--; > - /* > - * toggle GPIO2_15 > - */ > - tmp = au_readl(GPIO2_DIR); > - tmp = (tmp & ~(1 << mtx1_wdt_device.gpio)) | > - ((~tmp) & (1 << mtx1_wdt_device.gpio)); > - au_writel(tmp, GPIO2_DIR); > + > + /* toggle wdt gpio */ > + mtx1_wdt_device.gstate = ~mtx1_wdt_device.gstate; > + if (mtx1_wdt_device.gstate) > + gpio_direction_output(mtx1_wdt_device.gpio, 1); > + else > + gpio_direction_input(mtx1_wdt_device.gpio); > > if (mtx1_wdt_device.queue && ticks) > mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); > @@ -103,6 +104,7 @@ static void mtx1_wdt_start(void) > spin_lock_irqsave(&mtx1_wdt_device.lock, flags); > if (!mtx1_wdt_device.queue) { > mtx1_wdt_device.queue = 1; > + mtx1_wdt_device.gstate = 1; > gpio_set_value(mtx1_wdt_device.gpio, 1); > mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); > } > @@ -117,6 +119,7 @@ static int mtx1_wdt_stop(void) > spin_lock_irqsave(&mtx1_wdt_device.lock, flags); > if (mtx1_wdt_device.queue) { > mtx1_wdt_device.queue = 0; > + mtx1_wdt_device.gstate = 0; > gpio_set_value(mtx1_wdt_device.gpio, 0); > } > ticks = mtx1_wdt_device.default_ticks; -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html