diff mbox series

leds: pwm: clear the led structure before parsing each child node

Message ID 20221220073335.393489-1-hui.wang@canonical.com
State New
Headers show
Series leds: pwm: clear the led structure before parsing each child node | expand

Commit Message

Hui Wang Dec. 20, 2022, 7:33 a.m. UTC
I defined 2 leds in the device tree, in the 1st led node, the
max-brightness is set to 248, while in the 2nd led node, I
mis-spelled the max-brightness to max-brighttness, but the driver
is still able to get the max-brightness 248 for the 2nd node,  that
is because the led structure is not cleared before parsing each child
node.

	pwmleds {
		compatible = "pwm-leds";

		pwm-green {
			...
			max-brightness = <248>;
		};

		pwm-red {
		        ...
			max-brighttness = <128>;
		};

Signed-off-by: Hui Wang <hui.wang@canonical.com>
---
 drivers/leds/leds-pwm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Lee Jones Jan. 4, 2023, 6:15 p.m. UTC | #1
On Tue, 20 Dec 2022, Hui Wang wrote:

> I defined 2 leds in the device tree, in the 1st led node, the
> max-brightness is set to 248, while in the 2nd led node, I
> mis-spelled the max-brightness to max-brighttness, but the driver
> is still able to get the max-brightness 248 for the 2nd node,  that
> is because the led structure is not cleared before parsing each child
> node.
> 
> 	pwmleds {
> 		compatible = "pwm-leds";
> 
> 		pwm-green {
> 			...
> 			max-brightness = <248>;
> 		};
> 
> 		pwm-red {
> 		        ...
> 			max-brighttness = <128>;
> 		};
> 
> Signed-off-by: Hui Wang <hui.wang@canonical.com>
> ---
>  drivers/leds/leds-pwm.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks
diff mbox series

Patch

diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c
index 6832180c1c54..29194cc382af 100644
--- a/drivers/leds/leds-pwm.c
+++ b/drivers/leds/leds-pwm.c
@@ -138,9 +138,9 @@  static int led_pwm_create_fwnode(struct device *dev, struct led_pwm_priv *priv)
 	struct led_pwm led;
 	int ret;
 
-	memset(&led, 0, sizeof(led));
-
 	device_for_each_child_node(dev, fwnode) {
+		memset(&led, 0, sizeof(led));
+
 		ret = fwnode_property_read_string(fwnode, "label", &led.name);
 		if (ret && is_of_node(fwnode))
 			led.name = to_of_node(fwnode)->name;