Commit b6ad3981 authored by Anson Huang's avatar Anson Huang Committed by Eduardo Valentin
Browse files

thermal: imx: handle error path in one place to save duplicated code



During probe phase, the error path can be handled in one place and
use goto method to save many duplicated code.

Signed-off-by: default avatarAnson Huang <Anson.Huang@nxp.com>
Reviewed-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
parent 337a4aec
Loading
Loading
Loading
Loading
+14 −15
Original line number Diff line number Diff line
@@ -762,9 +762,7 @@ static int imx_thermal_probe(struct platform_device *pdev)
		if (ret != -EPROBE_DEFER)
			dev_err(&pdev->dev,
				"failed to get thermal clk: %d\n", ret);
		cpufreq_cooling_unregister(data->cdev);
		cpufreq_cpu_put(data->policy);
		return ret;
		goto cpufreq_put;
	}

	/*
@@ -777,9 +775,7 @@ static int imx_thermal_probe(struct platform_device *pdev)
	ret = clk_prepare_enable(data->thermal_clk);
	if (ret) {
		dev_err(&pdev->dev, "failed to enable thermal clk: %d\n", ret);
		cpufreq_cooling_unregister(data->cdev);
		cpufreq_cpu_put(data->policy);
		return ret;
		goto cpufreq_put;
	}

	data->tz = thermal_zone_device_register("imx_thermal_zone",
@@ -792,10 +788,7 @@ static int imx_thermal_probe(struct platform_device *pdev)
		ret = PTR_ERR(data->tz);
		dev_err(&pdev->dev,
			"failed to register thermal zone device %d\n", ret);
		clk_disable_unprepare(data->thermal_clk);
		cpufreq_cooling_unregister(data->cdev);
		cpufreq_cpu_put(data->policy);
		return ret;
		goto clk_disable;
	}

	dev_info(&pdev->dev, "%s CPU temperature grade - max:%dC"
@@ -827,14 +820,20 @@ static int imx_thermal_probe(struct platform_device *pdev)
			0, "imx_thermal", data);
	if (ret < 0) {
		dev_err(&pdev->dev, "failed to request alarm irq: %d\n", ret);
		clk_disable_unprepare(data->thermal_clk);
		goto thermal_zone_unregister;
	}

	return 0;

thermal_zone_unregister:
	thermal_zone_device_unregister(data->tz);
clk_disable:
	clk_disable_unprepare(data->thermal_clk);
cpufreq_put:
	cpufreq_cooling_unregister(data->cdev);
	cpufreq_cpu_put(data->policy);
		return ret;
	}

	return 0;
	return ret;
}

static int imx_thermal_remove(struct platform_device *pdev)