Hi On Tue, Oct 1, 2024 at 2:25 PM Christian Marangi <ansuels...@gmail.com> wrote: > > We currently init the LED OFF when SW blink is triggered when > on_state_change() is called. This can be problematic for very short > period as the ON/OFF blink might never trigger. > > Toggle the LED (ON if OFF, OFF if ON) on initial SW blink to handle this > corner case and better display a LED blink from the user. > > Signed-off-by: Christian Marangi <ansuels...@gmail.com> > --- > drivers/led/led_sw_blink.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/led/led_sw_blink.c b/drivers/led/led_sw_blink.c > index 9e36edbee47..06a43db340c 100644 > --- a/drivers/led/led_sw_blink.c > +++ b/drivers/led/led_sw_blink.c > @@ -103,8 +103,21 @@ bool led_sw_on_state_change(struct udevice *dev, enum > led_state_t state) > return false; > > if (state == LEDST_BLINK) { > - /* start blinking on next led_sw_blink() call */ > - sw_blink->state = LED_SW_BLINK_ST_OFF; > + struct led_ops *ops = led_get_ops(dev); > + > + /* > + * toggle LED initially and start blinking on next > + * led_sw_blink() call. > + */ > + switch (ops->get_state(dev)) { > + case LEDST_ON: > + ops->set_state(dev, LEDST_OFF); > + sw_blink->state = LED_SW_BLINK_ST_OFF; > + default: > + ops->set_state(dev, LEDST_ON); > + sw_blink->state = LED_SW_BLINK_ST_ON; > + } > + > return true;
I think here error is not take in account. Is somenthing that we should care? and if not we should warning the user? Apart of that Reviewed-by: Michael Trimarchi <mich...@amarulasolutions.com> michael > } > > -- > 2.45.2 > -- Michael Nazzareno Trimarchi Co-Founder & Chief Executive Officer M. +39 347 913 2170 mich...@amarulasolutions.com __________________________________ Amarula Solutions BV Joop Geesinkweg 125, 1114 AB, Amsterdam, NL T. +31 (0)85 111 9172 i...@amarulasolutions.com www.amarulasolutions.com