• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/watchdog/

Lines Matching defs:wdt

76 	struct mpcore_wdt *wdt = arg;
79 if (readl(wdt->base + TWD_WDOG_INTSTAT)) {
80 dev_printk(KERN_CRIT, wdt->dev,
83 writel(1, wdt->base + TWD_WDOG_INTSTAT);
96 static void mpcore_wdt_keepalive(struct mpcore_wdt *wdt)
102 count = __raw_readl(wdt->base + TWD_WDOG_COUNTER);
107 writel(count + wdt->perturb, wdt->base + TWD_WDOG_LOAD);
108 wdt->perturb = wdt->perturb ? 0 : 1;
112 static void mpcore_wdt_stop(struct mpcore_wdt *wdt)
115 writel(0x12345678, wdt->base + TWD_WDOG_DISABLE);
116 writel(0x87654321, wdt->base + TWD_WDOG_DISABLE);
117 writel(0x0, wdt->base + TWD_WDOG_CONTROL);
121 static void mpcore_wdt_start(struct mpcore_wdt *wdt)
123 dev_printk(KERN_INFO, wdt->dev, "enabling watchdog.\n");
126 mpcore_wdt_keepalive(wdt);
130 writel(0x0000FF01, wdt->base + TWD_WDOG_CONTROL);
133 writel(0x0000FF09, wdt->base + TWD_WDOG_CONTROL);
151 struct mpcore_wdt *wdt = platform_get_drvdata(mpcore_wdt_dev);
153 if (test_and_set_bit(0, &wdt->timer_alive))
159 file->private_data = wdt;
164 mpcore_wdt_start(wdt);
171 struct mpcore_wdt *wdt = file->private_data;
177 if (wdt->expect_close == 42)
178 mpcore_wdt_stop(wdt);
180 dev_printk(KERN_CRIT, wdt->dev,
182 mpcore_wdt_keepalive(wdt);
184 clear_bit(0, &wdt->timer_alive);
185 wdt->expect_close = 0;
192 struct mpcore_wdt *wdt = file->private_data;
202 wdt->expect_close = 0;
210 wdt->expect_close = 42;
213 mpcore_wdt_keepalive(wdt);
228 struct mpcore_wdt *wdt = file->private_data;
259 mpcore_wdt_stop(wdt);
263 mpcore_wdt_start(wdt);
269 mpcore_wdt_keepalive(wdt);
278 mpcore_wdt_keepalive(wdt);
303 struct mpcore_wdt *wdt = platform_get_drvdata(dev);
306 mpcore_wdt_stop(wdt);
329 struct mpcore_wdt *wdt;
343 wdt = kzalloc(sizeof(struct mpcore_wdt), GFP_KERNEL);
344 if (!wdt) {
349 wdt->dev = &dev->dev;
350 wdt->irq = platform_get_irq(dev, 0);
351 if (wdt->irq < 0) {
355 wdt->base = ioremap(res->start, resource_size(res));
356 if (!wdt->base) {
364 dev_printk(KERN_ERR, wdt->dev,
370 ret = request_irq(wdt->irq, mpcore_wdt_fire, IRQF_DISABLED,
371 "mpcore_wdt", wdt);
373 dev_printk(KERN_ERR, wdt->dev,
374 "cannot register IRQ%d for watchdog\n", wdt->irq);
378 mpcore_wdt_stop(wdt);
379 platform_set_drvdata(dev, wdt);
387 iounmap(wdt->base);
389 kfree(wdt);
396 struct mpcore_wdt *wdt = platform_get_drvdata(dev);
404 free_irq(wdt->irq, wdt);
405 iounmap(wdt->base);
406 kfree(wdt);