static ssize_t wdt3_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t n) { u32 wdt3; struct DEV_OBJECT *dev_object; struct WMD_DEV_CONTEXT *dev_ctxt; if (sscanf(buf, "%d", &wdt3) != 1) return -EINVAL; dev_object = DEV_GetFirst(); if (dev_object == NULL) goto func_end; DEV_GetWMDContext(dev_object, &dev_ctxt); if (dev_ctxt == NULL) goto func_end; /* enable WDT */ if (wdt3 == 1) { if (dsp_wdt_get_enable()) goto func_end; dsp_wdt_set_enable(true); if (!CLK_Get_UseCnt(SERVICESCLK_wdt3_fck) && dev_ctxt->dwBrdState != BRD_DSP_HIBERNATION) dsp_wdt_enable(true); } else if (wdt3 == 0) { if (!dsp_wdt_get_enable()) goto func_end; if (CLK_Get_UseCnt(SERVICESCLK_wdt3_fck)) dsp_wdt_enable(false); dsp_wdt_set_enable(false); } func_end: return n; }
static ssize_t wdt3_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t n) { u32 wdt3; struct dev_object *dev_object; struct wmd_dev_context *dev_ctxt; if (sscanf(buf, "%d", &wdt3) != 1) return -EINVAL; dev_object = dev_get_first(); if (dev_object == NULL) goto func_end; dev_get_wmd_context(dev_object, &dev_ctxt); if (dev_ctxt == NULL) goto func_end; /* enable WDT */ if (wdt3 == 1) { if (dsp_wdt_get_enable()) goto func_end; dsp_wdt_set_enable(true); if (!clk_get_use_cnt(SERVICESCLK_WDT3_FCK) && dev_ctxt->dw_brd_state != BRD_DSP_HIBERNATION) dsp_wdt_enable(true); } else if (wdt3 == 0) { if (!dsp_wdt_get_enable()) goto func_end; if (clk_get_use_cnt(SERVICESCLK_WDT3_FCK)) dsp_wdt_enable(false); dsp_wdt_set_enable(false); } func_end: return n; }
static ssize_t wdt3_show(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%d\n", (dsp_wdt_get_enable()) ? 1 : 0); }