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);
}
Example #2
0
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);
}