On Fri, Nov 28, 2014 at 03:13:58PM +0530, Viresh Kumar wrote:
cpufreq_cooling_register() can return -EPROBE_DEFER if cpufreq driver isn't ready yet and so the callers must defer their initialization.
Exynos thermal drivers weren't handling this well and were raising false error message when -EPROBE_DEFER is returned to them.
Fix them to handle -EPROBE_DEFER.
As mentioned in patch 0, this one has been merged to another patch.
Cc: Chanwoo Choi cw00.choi@samsung.com Cc: Kyungmin Park kyungmin.park@samsung.com Cc: Amit Daniel Kachhap amit.daniel@samsung.com Cc: Lukasz Majewski l.majewski@samsung.com Signed-off-by: Viresh Kumar viresh.kumar@linaro.org
drivers/thermal/samsung/exynos_thermal_common.c | 7 ++++--- drivers/thermal/samsung/exynos_tmu.c | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/thermal/samsung/exynos_thermal_common.c b/drivers/thermal/samsung/exynos_thermal_common.c index bf39212..0be1d54 100644 --- a/drivers/thermal/samsung/exynos_thermal_common.c +++ b/drivers/thermal/samsung/exynos_thermal_common.c @@ -369,9 +369,10 @@ int exynos_register_thermal(struct thermal_sensor_conf *sensor_conf) th_zone->cool_dev[th_zone->cool_dev_size] = cpufreq_cooling_register(cpu_present_mask); if (IS_ERR(th_zone->cool_dev[th_zone->cool_dev_size])) {
dev_err(sensor_conf->dev,
"Failed to register cpufreq cooling device\n");
ret = -EINVAL;
ret = PTR_ERR(th_zone->cool_dev[th_zone->cool_dev_size]);
if (ret != -EPROBE_DEFER)
dev_err(sensor_conf->dev,
} th_zone->cool_dev_size++;"Failed to register cpufreq cooling device\n"); goto err_unregister;
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c index 49c0924..cc3677f 100644 --- a/drivers/thermal/samsung/exynos_tmu.c +++ b/drivers/thermal/samsung/exynos_tmu.c @@ -683,7 +683,9 @@ static int exynos_tmu_probe(struct platform_device *pdev) /* Register the sensor with thermal management interface */ ret = exynos_register_thermal(sensor_conf); if (ret) {
dev_err(&pdev->dev, "Failed to register thermal interface\n");
if (ret != -EPROBE_DEFER)
dev_err(&pdev->dev,
goto err_clk; } data->reg_conf = sensor_conf;"Failed to register thermal interface\n");
-- 2.0.3.693.g996b0fd