]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
leds: as3645a: Use device_* to iterate over device child nodes
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Tue, 20 Aug 2024 19:02:27 +0000 (21:02 +0200)
committerLee Jones <lee@kernel.org>
Thu, 22 Aug 2024 13:48:02 +0000 (14:48 +0100)
Drop the manual access to the fwnode of the device to iterate over its
child nodes. `device_for_each_child_node` macro provides direct access
to the child nodes, and given that the `child` variable is only required
within the loop, the scoped variant of the macro can be used.

Use the `device_for_each_child_node_scoped` macro to iterate over the
direct child nodes of the device.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Link: https://lore.kernel.org/r/20240820-device_child_node_access-v3-2-1ee09bdedb9e@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/flash/leds-as3645a.c

index 2c6ef321b7c803ab15e6dddabf50e4c34710ee8d..2f2d783c62c31889ef0aac1fb19beeb65a900c12 100644 (file)
@@ -478,14 +478,12 @@ static int as3645a_detect(struct as3645a *flash)
        return as3645a_write(flash, AS_BOOST_REG, AS_BOOST_CURRENT_DISABLE);
 }
 
-static int as3645a_parse_node(struct as3645a *flash,
-                             struct fwnode_handle *fwnode)
+static int as3645a_parse_node(struct device *dev, struct as3645a *flash)
 {
        struct as3645a_config *cfg = &flash->cfg;
-       struct fwnode_handle *child;
        int rval;
 
-       fwnode_for_each_child_node(fwnode, child) {
+       device_for_each_child_node_scoped(dev, child) {
                u32 id = 0;
 
                fwnode_property_read_u32(child, "reg", &id);
@@ -686,7 +684,7 @@ static int as3645a_probe(struct i2c_client *client)
 
        flash->client = client;
 
-       rval = as3645a_parse_node(flash, dev_fwnode(&client->dev));
+       rval = as3645a_parse_node(&client->dev, flash);
        if (rval < 0)
                return rval;