* [PATCH] leds: trigger: panic: simplify led_trigger_set_panic
@ 2023-12-09 22:54 Heiner Kallweit
2024-01-11 9:03 ` Lee Jones
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Heiner Kallweit @ 2023-12-09 22:54 UTC (permalink / raw)
To: Pavel Machek, Lee Jones; +Cc: linux-leds@vger.kernel.org
I don't see why we iterate over all triggers to find the panic trigger.
We *are* the panic trigger. Therefore we also know that the panic
trigger doesn't have an activate() hook. So we can simplify the code
significantly.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/leds/trigger/ledtrig-panic.c | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
diff --git a/drivers/leds/trigger/ledtrig-panic.c b/drivers/leds/trigger/ledtrig-panic.c
index 72297a845..c646a3cbc 100644
--- a/drivers/leds/trigger/ledtrig-panic.c
+++ b/drivers/leds/trigger/ledtrig-panic.c
@@ -21,24 +21,15 @@ static struct led_trigger *trigger;
*/
static void led_trigger_set_panic(struct led_classdev *led_cdev)
{
- struct led_trigger *trig;
+ if (led_cdev->trigger)
+ list_del(&led_cdev->trig_list);
+ list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
- list_for_each_entry(trig, &trigger_list, next_trig) {
- if (strcmp("panic", trig->name))
- continue;
- if (led_cdev->trigger)
- list_del(&led_cdev->trig_list);
- list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
+ /* Avoid the delayed blink path */
+ led_cdev->blink_delay_on = 0;
+ led_cdev->blink_delay_off = 0;
- /* Avoid the delayed blink path */
- led_cdev->blink_delay_on = 0;
- led_cdev->blink_delay_off = 0;
-
- led_cdev->trigger = trig;
- if (trig->activate)
- trig->activate(led_cdev);
- break;
- }
+ led_cdev->trigger = trigger;
}
static int led_trigger_panic_notifier(struct notifier_block *nb,
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] leds: trigger: panic: simplify led_trigger_set_panic
2023-12-09 22:54 [PATCH] leds: trigger: panic: simplify led_trigger_set_panic Heiner Kallweit
@ 2024-01-11 9:03 ` Lee Jones
2024-01-16 22:44 ` Jacek Anaszewski
2024-01-25 13:34 ` (subset) " Lee Jones
2 siblings, 0 replies; 5+ messages in thread
From: Lee Jones @ 2024-01-11 9:03 UTC (permalink / raw)
To: Heiner Kallweit, ezequiel; +Cc: Pavel Machek, linux-leds@vger.kernel.org
On Sat, 09 Dec 2023, Heiner Kallweit wrote:
> I don't see why we iterate over all triggers to find the panic trigger.
> We *are* the panic trigger. Therefore we also know that the panic
> trigger doesn't have an activate() hook. So we can simplify the code
> significantly.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
> drivers/leds/trigger/ledtrig-panic.c | 23 +++++++----------------
> 1 file changed, 7 insertions(+), 16 deletions(-)
I would like to take a little advice from the author here who should
have been Cc:ed. In case there is information we're missing or
overseeing.
> diff --git a/drivers/leds/trigger/ledtrig-panic.c b/drivers/leds/trigger/ledtrig-panic.c
> index 72297a845..c646a3cbc 100644
> --- a/drivers/leds/trigger/ledtrig-panic.c
> +++ b/drivers/leds/trigger/ledtrig-panic.c
> @@ -21,24 +21,15 @@ static struct led_trigger *trigger;
> */
> static void led_trigger_set_panic(struct led_classdev *led_cdev)
> {
> - struct led_trigger *trig;
> + if (led_cdev->trigger)
> + list_del(&led_cdev->trig_list);
> + list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
>
> - list_for_each_entry(trig, &trigger_list, next_trig) {
> - if (strcmp("panic", trig->name))
> - continue;
> - if (led_cdev->trigger)
> - list_del(&led_cdev->trig_list);
> - list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
> + /* Avoid the delayed blink path */
> + led_cdev->blink_delay_on = 0;
> + led_cdev->blink_delay_off = 0;
>
> - /* Avoid the delayed blink path */
> - led_cdev->blink_delay_on = 0;
> - led_cdev->blink_delay_off = 0;
> -
> - led_cdev->trigger = trig;
> - if (trig->activate)
> - trig->activate(led_cdev);
> - break;
> - }
> + led_cdev->trigger = trigger;
> }
>
> static int led_trigger_panic_notifier(struct notifier_block *nb,
> --
> 2.43.0
>
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] leds: trigger: panic: simplify led_trigger_set_panic
2023-12-09 22:54 [PATCH] leds: trigger: panic: simplify led_trigger_set_panic Heiner Kallweit
2024-01-11 9:03 ` Lee Jones
@ 2024-01-16 22:44 ` Jacek Anaszewski
2024-01-18 14:47 ` Lee Jones
2024-01-25 13:34 ` (subset) " Lee Jones
2 siblings, 1 reply; 5+ messages in thread
From: Jacek Anaszewski @ 2024-01-16 22:44 UTC (permalink / raw)
To: Heiner Kallweit, Pavel Machek, Lee Jones; +Cc: linux-leds@vger.kernel.org
On 12/9/23 23:54, Heiner Kallweit wrote:
> I don't see why we iterate over all triggers to find the panic trigger.
> We *are* the panic trigger. Therefore we also know that the panic
> trigger doesn't have an activate() hook. So we can simplify the code
> significantly.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
> drivers/leds/trigger/ledtrig-panic.c | 23 +++++++----------------
> 1 file changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/leds/trigger/ledtrig-panic.c b/drivers/leds/trigger/ledtrig-panic.c
> index 72297a845..c646a3cbc 100644
> --- a/drivers/leds/trigger/ledtrig-panic.c
> +++ b/drivers/leds/trigger/ledtrig-panic.c
> @@ -21,24 +21,15 @@ static struct led_trigger *trigger;
> */
> static void led_trigger_set_panic(struct led_classdev *led_cdev)
> {
> - struct led_trigger *trig;
> + if (led_cdev->trigger)
> + list_del(&led_cdev->trig_list);
> + list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
>
> - list_for_each_entry(trig, &trigger_list, next_trig) {
> - if (strcmp("panic", trig->name))
> - continue;
> - if (led_cdev->trigger)
> - list_del(&led_cdev->trig_list);
> - list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
> + /* Avoid the delayed blink path */
> + led_cdev->blink_delay_on = 0;
> + led_cdev->blink_delay_off = 0;
>
> - /* Avoid the delayed blink path */
> - led_cdev->blink_delay_on = 0;
> - led_cdev->blink_delay_off = 0;
> -
> - led_cdev->trigger = trig;
> - if (trig->activate)
> - trig->activate(led_cdev);
> - break;
> - }
> + led_cdev->trigger = trigger;
> }
>
> static int led_trigger_panic_notifier(struct notifier_block *nb,
Looks good to me.
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
--
Best regards,
Jacek Anaszewski
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] leds: trigger: panic: simplify led_trigger_set_panic
2024-01-16 22:44 ` Jacek Anaszewski
@ 2024-01-18 14:47 ` Lee Jones
0 siblings, 0 replies; 5+ messages in thread
From: Lee Jones @ 2024-01-18 14:47 UTC (permalink / raw)
To: Jacek Anaszewski
Cc: Heiner Kallweit, Pavel Machek, linux-leds@vger.kernel.org
On Tue, 16 Jan 2024, Jacek Anaszewski wrote:
> On 12/9/23 23:54, Heiner Kallweit wrote:
> > I don't see why we iterate over all triggers to find the panic trigger.
> > We *are* the panic trigger. Therefore we also know that the panic
> > trigger doesn't have an activate() hook. So we can simplify the code
> > significantly.
> >
> > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> > ---
> > drivers/leds/trigger/ledtrig-panic.c | 23 +++++++----------------
> > 1 file changed, 7 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/leds/trigger/ledtrig-panic.c b/drivers/leds/trigger/ledtrig-panic.c
> > index 72297a845..c646a3cbc 100644
> > --- a/drivers/leds/trigger/ledtrig-panic.c
> > +++ b/drivers/leds/trigger/ledtrig-panic.c
> > @@ -21,24 +21,15 @@ static struct led_trigger *trigger;
> > */
> > static void led_trigger_set_panic(struct led_classdev *led_cdev)
> > {
> > - struct led_trigger *trig;
> > + if (led_cdev->trigger)
> > + list_del(&led_cdev->trig_list);
> > + list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
> > - list_for_each_entry(trig, &trigger_list, next_trig) {
> > - if (strcmp("panic", trig->name))
> > - continue;
> > - if (led_cdev->trigger)
> > - list_del(&led_cdev->trig_list);
> > - list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
> > + /* Avoid the delayed blink path */
> > + led_cdev->blink_delay_on = 0;
> > + led_cdev->blink_delay_off = 0;
> > - /* Avoid the delayed blink path */
> > - led_cdev->blink_delay_on = 0;
> > - led_cdev->blink_delay_off = 0;
> > -
> > - led_cdev->trigger = trig;
> > - if (trig->activate)
> > - trig->activate(led_cdev);
> > - break;
> > - }
> > + led_cdev->trigger = trigger;
> > }
> > static int led_trigger_panic_notifier(struct notifier_block *nb,
>
> Looks good to me.
>
> Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Thanks Jacek. Always helpful.
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: (subset) [PATCH] leds: trigger: panic: simplify led_trigger_set_panic
2023-12-09 22:54 [PATCH] leds: trigger: panic: simplify led_trigger_set_panic Heiner Kallweit
2024-01-11 9:03 ` Lee Jones
2024-01-16 22:44 ` Jacek Anaszewski
@ 2024-01-25 13:34 ` Lee Jones
2 siblings, 0 replies; 5+ messages in thread
From: Lee Jones @ 2024-01-25 13:34 UTC (permalink / raw)
To: Pavel Machek, Lee Jones, Heiner Kallweit; +Cc: linux-leds
On Sat, 09 Dec 2023 23:54:51 +0100, Heiner Kallweit wrote:
> I don't see why we iterate over all triggers to find the panic trigger.
> We *are* the panic trigger. Therefore we also know that the panic
> trigger doesn't have an activate() hook. So we can simplify the code
> significantly.
>
>
Applied, thanks!
[1/1] leds: trigger: panic: simplify led_trigger_set_panic
commit: 682e98564ffb67989a77002844767318d366a9ee
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-01-25 13:34 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-09 22:54 [PATCH] leds: trigger: panic: simplify led_trigger_set_panic Heiner Kallweit
2024-01-11 9:03 ` Lee Jones
2024-01-16 22:44 ` Jacek Anaszewski
2024-01-18 14:47 ` Lee Jones
2024-01-25 13:34 ` (subset) " Lee Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).