diff mbox series

[v1,3/4] leds: ncp5623: Use fwnode_get_child_node_count()

Message ID 20250310150835.3139322-4-andriy.shevchenko@linux.intel.com (mailing list archive)
State New
Headers show
Series leds: Introduce and use fwnode_get_child_node_count() | expand

Commit Message

Andy Shevchenko March 10, 2025, 2:54 p.m. UTC
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(-)

Comments

Jonathan Cameron March 11, 2025, 9:54 a.m. UTC | #1
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) {
Andy Shevchenko March 12, 2025, 10:57 a.m. UTC | #2
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;
diff mbox series

Patch

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) {