Commit b5e230aa authored by Javier Carrasco's avatar Javier Carrasco Committed by Viresh Kumar

cpupfreq: tegra124: eliminate uses of of_node_put()

Make use of the __free() cleanup handler to automatically free nodes
when they get out of scope. Only the probe function is affected by this
modification.

Given that this mechanism requires the node to be initialized, its
initialization and the value check have been moved to the top of the
function.

After removing uses of of_node_put(), the jump to out_put_np is no
longer necessary.
Suggested-by: default avatarJulia Lawall <julia.lawall@inria.fr>
Signed-off-by: default avatarJavier Carrasco <javier.carrasco.cruz@gmail.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 4cece764
...@@ -52,12 +52,15 @@ static int tegra124_cpu_switch_to_dfll(struct tegra124_cpufreq_priv *priv) ...@@ -52,12 +52,15 @@ static int tegra124_cpu_switch_to_dfll(struct tegra124_cpufreq_priv *priv)
static int tegra124_cpufreq_probe(struct platform_device *pdev) static int tegra124_cpufreq_probe(struct platform_device *pdev)
{ {
struct device_node *np __free(device_node) = of_cpu_device_node_get(0);
struct tegra124_cpufreq_priv *priv; struct tegra124_cpufreq_priv *priv;
struct device_node *np;
struct device *cpu_dev; struct device *cpu_dev;
struct platform_device_info cpufreq_dt_devinfo = {}; struct platform_device_info cpufreq_dt_devinfo = {};
int ret; int ret;
if (!np)
return -ENODEV;
priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
if (!priv) if (!priv)
return -ENOMEM; return -ENOMEM;
...@@ -66,15 +69,9 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev) ...@@ -66,15 +69,9 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev)
if (!cpu_dev) if (!cpu_dev)
return -ENODEV; return -ENODEV;
np = of_cpu_device_node_get(0);
if (!np)
return -ENODEV;
priv->cpu_clk = of_clk_get_by_name(np, "cpu_g"); priv->cpu_clk = of_clk_get_by_name(np, "cpu_g");
if (IS_ERR(priv->cpu_clk)) { if (IS_ERR(priv->cpu_clk))
ret = PTR_ERR(priv->cpu_clk); return PTR_ERR(priv->cpu_clk);
goto out_put_np;
}
priv->dfll_clk = of_clk_get_by_name(np, "dfll"); priv->dfll_clk = of_clk_get_by_name(np, "dfll");
if (IS_ERR(priv->dfll_clk)) { if (IS_ERR(priv->dfll_clk)) {
...@@ -110,8 +107,6 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev) ...@@ -110,8 +107,6 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, priv); platform_set_drvdata(pdev, priv);
of_node_put(np);
return 0; return 0;
out_put_pllp_clk: out_put_pllp_clk:
...@@ -122,8 +117,6 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev) ...@@ -122,8 +117,6 @@ static int tegra124_cpufreq_probe(struct platform_device *pdev)
clk_put(priv->dfll_clk); clk_put(priv->dfll_clk);
out_put_cpu_clk: out_put_cpu_clk:
clk_put(priv->cpu_clk); clk_put(priv->cpu_clk);
out_put_np:
of_node_put(np);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment