• 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

140  * @wdt: watchdog to be kicked
142 * Called with @wdt->lock held.
144 static inline void ts72xx_wdt_kick(struct ts72xx_wdt *wdt)
146 __raw_writeb(TS72XX_WDT_FEED_VAL, wdt->feed_reg);
151 * @wdt: watchdog to be started
156 * Called with @wdt->lock held.
158 static void ts72xx_wdt_start(struct ts72xx_wdt *wdt)
161 * To program the wdt, it first must be "fed" and
165 ts72xx_wdt_kick(wdt);
166 __raw_writeb((u8)wdt->regval, wdt->control_reg);
171 * @wdt: watchdog to be stopped
173 * Called with @wdt->lock held.
175 static void ts72xx_wdt_stop(struct ts72xx_wdt *wdt)
177 ts72xx_wdt_kick(wdt);
178 __raw_writeb(0, wdt->control_reg);
183 struct ts72xx_wdt *wdt = platform_get_drvdata(ts72xx_wdt_pdev);
192 dev_err(&wdt->pdev->dev,
198 if (mutex_lock_interruptible(&wdt->lock))
201 if ((wdt->flags & TS72XX_WDT_BUSY_FLAG) != 0) {
202 mutex_unlock(&wdt->lock);
206 wdt->flags = TS72XX_WDT_BUSY_FLAG;
207 wdt->regval = regval;
208 file->private_data = wdt;
210 ts72xx_wdt_start(wdt);
212 mutex_unlock(&wdt->lock);
218 struct ts72xx_wdt *wdt = file->private_data;
220 if (mutex_lock_interruptible(&wdt->lock))
223 if ((wdt->flags & TS72XX_WDT_EXPECT_CLOSE_FLAG) != 0) {
224 ts72xx_wdt_stop(wdt);
226 dev_warn(&wdt->pdev->dev,
234 ts72xx_wdt_kick(wdt);
237 wdt->flags = 0;
239 mutex_unlock(&wdt->lock);
248 struct ts72xx_wdt *wdt = file->private_data;
253 if (mutex_lock_interruptible(&wdt->lock))
256 ts72xx_wdt_kick(wdt);
261 * This means that we know that the wdt timer can be
271 wdt->flags &= ~TS72XX_WDT_EXPECT_CLOSE_FLAG;
274 mutex_unlock(&wdt->lock);
278 wdt->flags |= TS72XX_WDT_EXPECT_CLOSE_FLAG;
284 mutex_unlock(&wdt->lock);
298 struct ts72xx_wdt *wdt = file->private_data;
303 if (mutex_lock_interruptible(&wdt->lock))
316 ts72xx_wdt_kick(wdt);
330 ts72xx_wdt_stop(wdt);
334 ts72xx_wdt_start(wdt);
353 ts72xx_wdt_stop(wdt);
354 wdt->regval = regval;
355 ts72xx_wdt_start(wdt);
365 if (put_user(regval_to_timeout(wdt->regval), p))
374 mutex_unlock(&wdt->lock);
395 struct ts72xx_wdt *wdt;
399 wdt = kzalloc(sizeof(struct ts72xx_wdt), GFP_KERNEL);
400 if (!wdt) {
419 wdt->control_reg = ioremap(r1->start, resource_size(r1));
420 if (!wdt->control_reg) {
440 wdt->feed_reg = ioremap(r2->start, resource_size(r2));
441 if (!wdt->feed_reg) {
447 platform_set_drvdata(pdev, wdt);
449 wdt->pdev = pdev;
450 mutex_init(&wdt->lock);
453 ts72xx_wdt_stop(wdt);
467 iounmap(wdt->feed_reg);
471 iounmap(wdt->control_reg);
475 kfree(wdt);
481 struct ts72xx_wdt *wdt = platform_get_drvdata(pdev);
488 iounmap(wdt->feed_reg);
492 iounmap(wdt->control_reg);
496 kfree(wdt);
504 .name = "ts72xx-wdt",
524 MODULE_ALIAS("platform:ts72xx-wdt");