]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
leds: is31fl32xx: Simplify with scoped for each OF child loop
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 16 Aug 2024 15:31:41 +0000 (17:31 +0200)
committerLee Jones <lee@kernel.org>
Thu, 22 Aug 2024 13:23:06 +0000 (14:23 +0100)
Use scoped for_each_available_child_of_node_scoped() when iterating over
device nodes to make code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240816-cleanup-h-of-node-put-var-v1-9-1d0292802470@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/leds-is31fl32xx.c

index b0a0be77bb33b94039d44286e5941c72b6077eaf..8793330dd4142f49f15d6ee9d87468c08509859f 100644 (file)
@@ -363,10 +363,9 @@ static struct is31fl32xx_led_data *is31fl32xx_find_led_data(
 static int is31fl32xx_parse_dt(struct device *dev,
                               struct is31fl32xx_priv *priv)
 {
-       struct device_node *child;
        int ret = 0;
 
-       for_each_available_child_of_node(dev_of_node(dev), child) {
+       for_each_available_child_of_node_scoped(dev_of_node(dev), child) {
                struct led_init_data init_data = {};
                struct is31fl32xx_led_data *led_data =
                        &priv->leds[priv->num_leds];
@@ -376,7 +375,7 @@ static int is31fl32xx_parse_dt(struct device *dev,
 
                ret = is31fl32xx_parse_child_dt(dev, child, led_data);
                if (ret)
-                       goto err;
+                       return ret;
 
                /* Detect if channel is already in use by another child */
                other_led_data = is31fl32xx_find_led_data(priv,
@@ -385,8 +384,7 @@ static int is31fl32xx_parse_dt(struct device *dev,
                        dev_err(dev,
                                "Node %pOF 'reg' conflicts with another LED\n",
                                child);
-                       ret = -EINVAL;
-                       goto err;
+                       return -EINVAL;
                }
 
                init_data.fwnode = of_fwnode_handle(child);
@@ -396,17 +394,13 @@ static int is31fl32xx_parse_dt(struct device *dev,
                if (ret) {
                        dev_err(dev, "Failed to register LED for %pOF: %d\n",
                                child, ret);
-                       goto err;
+                       return ret;
                }
 
                priv->num_leds++;
        }
 
        return 0;
-
-err:
-       of_node_put(child);
-       return ret;
 }
 
 static const struct of_device_id of_is31fl32xx_match[] = {