]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pmdomain: ti-sci: Use scope based of_node_put() to simplify code.
authorZhang Zekun <zhangzekun11@huawei.com>
Thu, 24 Oct 2024 03:04:42 +0000 (11:04 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 31 Oct 2024 10:30:57 +0000 (11:30 +0100)
Use scope based of_node_put() to simplify the code logic, and we don't
need to call of_node_put(). Besides, put of_parse_phandle_with_args() in
the while loop to make code more simple.

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Message-ID: <20241024030442.119506-3-zhangzekun11@huawei.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/ti/ti_sci_pm_domains.c

index f145f0225524f0e0e3e6d7808143bab8c30518c3..0e4bd749d067309654307484c5bb98711bf06daf 100644 (file)
@@ -131,9 +131,8 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
        struct device *dev = &pdev->dev;
        struct ti_sci_genpd_provider *pd_provider;
        struct ti_sci_pm_domain *pd;
-       struct device_node *np;
+       struct device_node *np __free(device_node) = NULL;
        struct of_phandle_args args;
-       int ret;
        u32 max_id = 0;
        int index;
 
@@ -153,12 +152,9 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
        for_each_node_with_property(np, "power-domains") {
                index = 0;
 
-               while (1) {
-                       ret = of_parse_phandle_with_args(np, "power-domains",
-                                                        "#power-domain-cells",
-                                                        index, &args);
-                       if (ret)
-                               break;
+               while (!of_parse_phandle_with_args(np, "power-domains",
+                                                  "#power-domain-cells",
+                                                  index, &args)) {
 
                        if (args.args_count >= 1 && args.np == dev->of_node) {
                                of_node_put(args.np);
@@ -172,18 +168,14 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
                                }
 
                                pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
-                               if (!pd) {
-                                       of_node_put(np);
+                               if (!pd)
                                        return -ENOMEM;
-                               }
 
                                pd->pd.name = devm_kasprintf(dev, GFP_KERNEL,
                                                             "pd:%d",
                                                             args.args[0]);
-                               if (!pd->pd.name) {
-                                       of_node_put(np);
+                               if (!pd->pd.name)
                                        return -ENOMEM;
-                               }
 
                                pd->pd.power_off = ti_sci_pd_power_off;
                                pd->pd.power_on = ti_sci_pd_power_on;