static void exynos4_tmu_work(struct work_struct *work) { struct exynos4_tmu_data *data = container_of(work, struct exynos4_tmu_data, irq_work); mutex_lock(&data->lock); clk_enable(data->clk); writel(EXYNOS4_TMU_INTCLEAR_VAL, data->base + EXYNOS4_TMU_REG_INTCLEAR); clk_disable(data->clk); mutex_unlock(&data->lock); exynos4_report_trigger(); enable_irq(data->irq); }
static void exynos4_tmu_work(struct work_struct *work) { struct exynos4_tmu_data *data = container_of(work, struct exynos4_tmu_data, irq_work); mutex_lock(&data->lock); clk_enable(data->clk); if (data->type == TYPE_EXYNOS4210) writel(EXYNOS4_TMU_INTCLEAR_VAL, data->base + EXYNOS4_TMU_REG_INTCLEAR); else writel(EXYNOS4X12_TMU_INTCLEAR_VAL, data->base + EXYNOS4_TMU_REG_INTCLEAR); clk_disable(data->clk); mutex_unlock(&data->lock); #ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE exynos4_report_trigger(); #endif enable_irq(data->irq); }