/* * Stop btimer */ static void stop_btimer(btimer_t *wid) { if (wid == NULL) { Emsg0(M_ABORT, 0, _("stop_btimer called with NULL btimer_id\n")); } unregister_watchdog(wid->wd); free(wid->wd); free(wid); }
static void wdog_bcm2836_remove(struct device_t * dev) { struct watchdog_t * wdog = (struct watchdog_t *)dev->priv; if(wdog && unregister_watchdog(wdog)) { free_device_name(wdog->name); free(wdog->priv); free(wdog); } }
static void wdg_s5pv210_remove(struct device_t * dev) { struct watchdog_t * wdg = (struct watchdog_t *)dev->priv; struct wdg_s5pv210_pdata_t * pdat = (struct wdg_s5pv210_pdata_t *)wdg->priv; if(wdg && unregister_watchdog(wdg)) { write32(pdat->virt + WTCON, 0x0); clk_disable(pdat->clk); free(pdat->clk); free_device_name(wdg->name); free(wdg->priv); free(wdg); } }
static bool_t bcm2836_unregister_wdog(struct resource_t * res) { struct watchdog_t * wdog; char name[64]; snprintf(name, sizeof(name), "%s.%d", res->name, res->id); wdog = search_watchdog(name); if(!wdog) return FALSE; if(!unregister_watchdog(wdog)) return FALSE; free(wdog->priv); free(wdog->name); free(wdog); return TRUE; }