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 > Cc: Kyungmin Park > Cc: Amit Daniel Kachhap > Cc: Lukasz Majewski > Signed-off-by: Viresh Kumar > --- > 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, > + "Failed to register cpufreq cooling device\n"); > goto err_unregister; > } > th_zone->cool_dev_size++; > 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, > + "Failed to register thermal interface\n"); > goto err_clk; > } > data->reg_conf = sensor_conf; > -- > 2.0.3.693.g996b0fd >