Since fwnode_get_child_node_count() was split from its device property
counterpart, we may utilise it in the driver and drop custom implementation.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/leds/rgb/leds-ncp5623.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/leds/rgb/leds-ncp5623.c b/drivers/leds/rgb/leds-ncp5623.c
index f18156683375..7c7d44623a9e 100644
--- a/drivers/leds/rgb/leds-ncp5623.c
+++ b/drivers/leds/rgb/leds-ncp5623.c
@@ -155,9 +155,9 @@ static int ncp5623_probe(struct i2c_client *client)
struct device *dev = &client->dev;
struct fwnode_handle *mc_node, *led_node;
struct led_init_data init_data = { };
- int num_subleds = 0;
struct ncp5623 *ncp;
struct mc_subled *subled_info;
+ unsigned int num_subleds;
u32 color_index;
u32 reg;
int ret;
@@ -172,8 +172,7 @@ static int ncp5623_probe(struct i2c_client *client)
if (!mc_node)
return -EINVAL;
- fwnode_for_each_child_node(mc_node, led_node)
- num_subleds++;
+ num_subleds = fwnode_get_child_node_count(mc_node);
subled_info = devm_kcalloc(dev, num_subleds, sizeof(*subled_info), GFP_KERNEL);
if (!subled_info) {
--
2.47.2
On Mon, 10 Mar 2025 16:54:53 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> Since fwnode_get_child_node_count() was split from its device property
> counterpart, we may utilise it in the driver and drop custom implementation.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/leds/rgb/leds-ncp5623.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/leds/rgb/leds-ncp5623.c b/drivers/leds/rgb/leds-ncp5623.c
> index f18156683375..7c7d44623a9e 100644
> --- a/drivers/leds/rgb/leds-ncp5623.c
> +++ b/drivers/leds/rgb/leds-ncp5623.c
> @@ -155,9 +155,9 @@ static int ncp5623_probe(struct i2c_client *client)
> struct device *dev = &client->dev;
> struct fwnode_handle *mc_node, *led_node;
> struct led_init_data init_data = { };
> - int num_subleds = 0;
> struct ncp5623 *ncp;
> struct mc_subled *subled_info;
> + unsigned int num_subleds;
I have no idea what the scheme is for ordering here. My gut
feeling would have been to leave it in original location but it's
not something I feel strongly about.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> u32 color_index;
> u32 reg;
> int ret;
> @@ -172,8 +172,7 @@ static int ncp5623_probe(struct i2c_client *client)
> if (!mc_node)
> return -EINVAL;
>
> - fwnode_for_each_child_node(mc_node, led_node)
> - num_subleds++;
> + num_subleds = fwnode_get_child_node_count(mc_node);
>
> subled_info = devm_kcalloc(dev, num_subleds, sizeof(*subled_info), GFP_KERNEL);
> if (!subled_info) {
On Tue, Mar 11, 2025 at 09:54:02AM +0000, Jonathan Cameron wrote:
> On Mon, 10 Mar 2025 16:54:53 +0200
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
...
> > static int ncp5623_probe(struct i2c_client *client)
> > struct device *dev = &client->dev;
> > struct fwnode_handle *mc_node, *led_node;
> > struct led_init_data init_data = { };
> > - int num_subleds = 0;
> > struct ncp5623 *ncp;
> > struct mc_subled *subled_info;
> > + unsigned int num_subleds;
> I have no idea what the scheme is for ordering here. My gut
> feeling would have been to leave it in original location but it's
> not something I feel strongly about.
I guess I tried to follow multiple approaches here while moving it:
1) it follows "longer line first";
2) it follows "group the variables of the same type".
I also dunno what was behind the original code, but I think my approach has
a benefit as pointed out above.
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Thank you!
> > u32 color_index;
> > u32 reg;
> > int ret;
--
With Best Regards,
Andy Shevchenko
© 2016 - 2026 Red Hat, Inc.