• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/char/watchdog/

Lines Matching defs:wdt

69 	struct mpcore_wdt *wdt = arg;
72 if (readl(wdt->base + TWD_WDOG_INTSTAT)) {
73 dev_printk(KERN_CRIT, wdt->dev, "Triggered - Reboot ignored.\n");
76 writel(1, wdt->base + TWD_WDOG_INTSTAT);
91 static void mpcore_wdt_keepalive(struct mpcore_wdt *wdt)
99 writel(count + wdt->perturb, wdt->base + TWD_WDOG_LOAD);
101 wdt->perturb = wdt->perturb ? 0 : 1;
104 static void mpcore_wdt_stop(struct mpcore_wdt *wdt)
106 writel(0x12345678, wdt->base + TWD_WDOG_DISABLE);
107 writel(0x87654321, wdt->base + TWD_WDOG_DISABLE);
108 writel(0x0, wdt->base + TWD_WDOG_CONTROL);
111 static void mpcore_wdt_start(struct mpcore_wdt *wdt)
113 dev_printk(KERN_INFO, wdt->dev, "enabling watchdog.\n");
116 mpcore_wdt_keepalive(wdt);
120 writel(0x0000FF01, wdt->base + TWD_WDOG_CONTROL);
123 writel(0x0000FF09, wdt->base + TWD_WDOG_CONTROL);
141 struct mpcore_wdt *wdt = platform_get_drvdata(mpcore_wdt_dev);
143 if (test_and_set_bit(0, &wdt->timer_alive))
149 file->private_data = wdt;
154 mpcore_wdt_start(wdt);
161 struct mpcore_wdt *wdt = file->private_data;
167 if (wdt->expect_close == 42) {
168 mpcore_wdt_stop(wdt);
170 dev_printk(KERN_CRIT, wdt->dev, "unexpected close, not stopping watchdog!\n");
171 mpcore_wdt_keepalive(wdt);
173 clear_bit(0, &wdt->timer_alive);
174 wdt->expect_close = 0;
180 struct mpcore_wdt *wdt = file->private_data;
190 wdt->expect_close = 0;
198 wdt->expect_close = 42;
201 mpcore_wdt_keepalive(wdt);
216 struct mpcore_wdt *wdt = file->private_data;
241 mpcore_wdt_stop(wdt);
245 mpcore_wdt_start(wdt);
257 mpcore_wdt_keepalive(wdt);
266 mpcore_wdt_keepalive(wdt);
291 struct mpcore_wdt *wdt = platform_get_drvdata(dev);
294 mpcore_wdt_stop(wdt);
317 struct mpcore_wdt *wdt;
331 wdt = kmalloc(sizeof(struct mpcore_wdt), GFP_KERNEL);
332 if (!wdt) {
336 memset(wdt, 0, sizeof(struct mpcore_wdt));
338 wdt->dev = &dev->dev;
339 wdt->irq = platform_get_irq(dev, 0);
340 if (wdt->irq < 0) {
344 wdt->base = ioremap(res->start, res->end - res->start + 1);
345 if (!wdt->base) {
358 ret = request_irq(wdt->irq, mpcore_wdt_fire, IRQF_DISABLED, "mpcore_wdt", wdt);
360 dev_printk(KERN_ERR, _dev, "cannot register IRQ%d for watchdog\n", wdt->irq);
364 mpcore_wdt_stop(wdt);
365 platform_set_drvdata(&dev->dev, wdt);
373 iounmap(wdt->base);
375 kfree(wdt);
382 struct mpcore_wdt *wdt = platform_get_drvdata(dev);
390 free_irq(wdt->irq, wdt);
391 iounmap(wdt->base);
392 kfree(wdt);