Merge branch 'exynos-fix' of .git into next
authorZhang Rui <rui.zhang@intel.com>
Wed, 24 Apr 2013 16:04:06 +0000 (00:04 +0800)
committerZhang Rui <rui.zhang@intel.com>
Wed, 24 Apr 2013 16:04:06 +0000 (00:04 +0800)
drivers/thermal/exynos_thermal.c

index e34d842cc67513ef6867aef4d8a76e348d07bd93..d20ce9e614034ba4077d797b5584cfad4d994727 100644 (file)
@@ -854,6 +854,10 @@ static const struct of_device_id exynos_tmu_match[] = {
                .compatible = "samsung,exynos4210-tmu",
                .data = (void *)EXYNOS4210_TMU_DRV_DATA,
        },
+       {
+               .compatible = "samsung,exynos4412-tmu",
+               .data = (void *)EXYNOS_TMU_DRV_DATA,
+       },
        {
                .compatible = "samsung,exynos5250-tmu",
                .data = (void *)EXYNOS_TMU_DRV_DATA,
@@ -937,12 +941,16 @@ static int exynos_tmu_probe(struct platform_device *pdev)
                return ret;
        }
 
-       data->clk = clk_get(NULL, "tmu_apbif");
+       data->clk = devm_clk_get(&pdev->dev, "tmu_apbif");
        if (IS_ERR(data->clk)) {
                dev_err(&pdev->dev, "Failed to get clock\n");
                return  PTR_ERR(data->clk);
        }
 
+       ret = clk_prepare(data->clk);
+       if (ret)
+               return ret;
+
        if (pdata->type == SOC_ARCH_EXYNOS ||
                                pdata->type == SOC_ARCH_EXYNOS4210)
                data->soc = pdata->type;
@@ -994,7 +1002,7 @@ static int exynos_tmu_probe(struct platform_device *pdev)
        return 0;
 err_clk:
        platform_set_drvdata(pdev, NULL);
-       clk_put(data->clk);
+       clk_unprepare(data->clk);
        return ret;
 }
 
@@ -1006,7 +1014,7 @@ static int exynos_tmu_remove(struct platform_device *pdev)
 
        exynos_unregister_thermal();
 
-       clk_put(data->clk);
+       clk_unprepare(data->clk);
 
        platform_set_drvdata(pdev, NULL);