diff mbox series

[v1,06/28] leds: el15203000: Introduce to_el15203000_led() helper

Message ID 20210510095045.3299382-7-andy.shevchenko@gmail.com
State New
Headers show
Series leds: cleanups and fwnode refcounting bug fixes | expand

Commit Message

Andy Shevchenko May 10, 2021, 9:50 a.m. UTC
Introduce a helper to replace open coded container_of() calls.
At the same time move ldev member to be first in the struct el15203000_led,
that makes container_of() effectivelly a no-op.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
 drivers/leds/leds-el15203000.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

Comments

Oleh Kravchenko May 28, 2021, 9:01 p.m. UTC | #1
10.05.21 12:50, Andy Shevchenko пише:
> Introduce a helper to replace open coded container_of() calls.

> At the same time move ldev member to be first in the struct el15203000_led,

> that makes container_of() effectivelly a no-op.

> 

> Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> ---

>  drivers/leds/leds-el15203000.c | 20 +++++++-------------

>  1 file changed, 7 insertions(+), 13 deletions(-)

> 

> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c

> index fcb90d7cd42f..e81a93d57210 100644

> --- a/drivers/leds/leds-el15203000.c

> +++ b/drivers/leds/leds-el15203000.c

> @@ -69,8 +69,8 @@ enum el15203000_command {

>  };

>  

>  struct el15203000_led {

> -	struct el15203000	*priv;

>  	struct led_classdev	ldev;

> +	struct el15203000	*priv;

>  	u32			reg;

>  };

>  

> @@ -83,6 +83,8 @@ struct el15203000 {

>  	struct el15203000_led	leds[];

>  };

>  

> +#define to_el15203000_led(d)	container_of(d, struct el15203000_led, ldev)

> +

>  static int el15203000_cmd(struct el15203000_led *led, u8 brightness)

>  {

>  	int		ret;

> @@ -124,9 +126,7 @@ static int el15203000_cmd(struct el15203000_led *led, u8 brightness)

>  static int el15203000_set_blocking(struct led_classdev *ldev,

>  				   enum led_brightness brightness)

>  {

> -	struct el15203000_led *led = container_of(ldev,

> -						  struct el15203000_led,

> -						  ldev);

> +	struct el15203000_led *led = to_el15203000_led(ldev);

>  

>  	return el15203000_cmd(led, brightness == LED_OFF ? EL_OFF : EL_ON);

>  }

> @@ -135,9 +135,7 @@ static int el15203000_pattern_set_S(struct led_classdev *ldev,

>  				    struct led_pattern *pattern,

>  				    u32 len, int repeat)

>  {

> -	struct el15203000_led *led = container_of(ldev,

> -						  struct el15203000_led,

> -						  ldev);

> +	struct el15203000_led *led = to_el15203000_led(ldev);

>  

>  	if (repeat > 0 || len != 2 ||

>  	    pattern[0].delta_t != 4000 || pattern[0].brightness != 0 ||

> @@ -188,10 +186,8 @@ static int el15203000_pattern_set_P(struct led_classdev *ldev,

>  				    struct led_pattern *pattern,

>  				    u32 len, int repeat)

>  {

> +	struct el15203000_led	*led = to_el15203000_led(ldev);

>  	u8			cmd;

> -	struct el15203000_led	*led = container_of(ldev,

> -						    struct el15203000_led,

> -						    ldev);

>  

>  	if (repeat > 0)

>  		return -EINVAL;

> @@ -228,9 +224,7 @@ static int el15203000_pattern_set_P(struct led_classdev *ldev,

>  

>  static int el15203000_pattern_clear(struct led_classdev *ldev)

>  {

> -	struct el15203000_led	*led = container_of(ldev,

> -						    struct el15203000_led,

> -						    ldev);

> +	struct el15203000_led *led = to_el15203000_led(ldev);

>  

>  	return el15203000_cmd(led, EL_OFF);

>  }

> 


Reviewed-by: Oleh Kravchenko <oleg@kaa.org.ua>
diff mbox series

Patch

diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
index fcb90d7cd42f..e81a93d57210 100644
--- a/drivers/leds/leds-el15203000.c
+++ b/drivers/leds/leds-el15203000.c
@@ -69,8 +69,8 @@  enum el15203000_command {
 };
 
 struct el15203000_led {
-	struct el15203000	*priv;
 	struct led_classdev	ldev;
+	struct el15203000	*priv;
 	u32			reg;
 };
 
@@ -83,6 +83,8 @@  struct el15203000 {
 	struct el15203000_led	leds[];
 };
 
+#define to_el15203000_led(d)	container_of(d, struct el15203000_led, ldev)
+
 static int el15203000_cmd(struct el15203000_led *led, u8 brightness)
 {
 	int		ret;
@@ -124,9 +126,7 @@  static int el15203000_cmd(struct el15203000_led *led, u8 brightness)
 static int el15203000_set_blocking(struct led_classdev *ldev,
 				   enum led_brightness brightness)
 {
-	struct el15203000_led *led = container_of(ldev,
-						  struct el15203000_led,
-						  ldev);
+	struct el15203000_led *led = to_el15203000_led(ldev);
 
 	return el15203000_cmd(led, brightness == LED_OFF ? EL_OFF : EL_ON);
 }
@@ -135,9 +135,7 @@  static int el15203000_pattern_set_S(struct led_classdev *ldev,
 				    struct led_pattern *pattern,
 				    u32 len, int repeat)
 {
-	struct el15203000_led *led = container_of(ldev,
-						  struct el15203000_led,
-						  ldev);
+	struct el15203000_led *led = to_el15203000_led(ldev);
 
 	if (repeat > 0 || len != 2 ||
 	    pattern[0].delta_t != 4000 || pattern[0].brightness != 0 ||
@@ -188,10 +186,8 @@  static int el15203000_pattern_set_P(struct led_classdev *ldev,
 				    struct led_pattern *pattern,
 				    u32 len, int repeat)
 {
+	struct el15203000_led	*led = to_el15203000_led(ldev);
 	u8			cmd;
-	struct el15203000_led	*led = container_of(ldev,
-						    struct el15203000_led,
-						    ldev);
 
 	if (repeat > 0)
 		return -EINVAL;
@@ -228,9 +224,7 @@  static int el15203000_pattern_set_P(struct led_classdev *ldev,
 
 static int el15203000_pattern_clear(struct led_classdev *ldev)
 {
-	struct el15203000_led	*led = container_of(ldev,
-						    struct el15203000_led,
-						    ldev);
+	struct el15203000_led *led = to_el15203000_led(ldev);
 
 	return el15203000_cmd(led, EL_OFF);
 }