iio: adc: ti-ads1015: use device_for_each_child_node_scoped()
authorLincoln Yuji <lincolnyuji@usp.br>
Mon, 29 Apr 2024 13:22:33 +0000 (10:22 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 29 Apr 2024 20:00:10 +0000 (21:00 +0100)
This loop definition removes the need for manual releasing of the
fwnode_handle in early exit paths (here an error path) allow
simplification of the code and reducing the chance of future
modifications not releasing fwnode_handle correctly.

Co-developed-by: Luiza Soezima <lbrsoezima@usp.br>
Signed-off-by: Luiza Soezima <lbrsoezima@usp.br>
Co-developed-by: Sabrina Araujo <sabrinaaraujo@usp.br>
Signed-off-by: Sabrina Araujo <sabrinaaraujo@usp.br>
Signed-off-by: Lincoln Yuji <lincolnyuji@usp.br>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://lore.kernel.org/r/20240429132233.6266-1-lincolnyuji@usp.br
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ti-ads1015.c

index 6ae967e4d8fa761451281110e073467c51486df9..d3363d02f2921a22a050d66d60ab6ce0ad35367d 100644 (file)
@@ -902,10 +902,9 @@ static int ads1015_client_get_channels_config(struct i2c_client *client)
        struct iio_dev *indio_dev = i2c_get_clientdata(client);
        struct ads1015_data *data = iio_priv(indio_dev);
        struct device *dev = &client->dev;
-       struct fwnode_handle *node;
        int i = -1;
 
-       device_for_each_child_node(dev, node) {
+       device_for_each_child_node_scoped(dev, node) {
                u32 pval;
                unsigned int channel;
                unsigned int pga = ADS1015_DEFAULT_PGA;
@@ -927,7 +926,6 @@ static int ads1015_client_get_channels_config(struct i2c_client *client)
                        pga = pval;
                        if (pga > 5) {
                                dev_err(dev, "invalid gain on %pfw\n", node);
-                               fwnode_handle_put(node);
                                return -EINVAL;
                        }
                }
@@ -936,7 +934,6 @@ static int ads1015_client_get_channels_config(struct i2c_client *client)
                        data_rate = pval;
                        if (data_rate > 7) {
                                dev_err(dev, "invalid data_rate on %pfw\n", node);
-                               fwnode_handle_put(node);
                                return -EINVAL;
                        }
                }