leds: backlight trigger: Move blank-state handling into helper

Move the handling of blank-state updates into a separate helper,
so that is can be called without the fbdev event. No functional
changes.

v2:
- rename helper to avoid renaming in a later patch (Lee)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Simona Vetter <simona.vetter@ffwll.ch>
Link: https://lore.kernel.org/r/20250321095517.313713-10-tzimmermann@suse.de
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
Thomas Zimmermann
2025-04-10 10:39:12 +01:00
committed by Lee Jones
parent bc70cc84f5
commit 28f8bab711
+18 -12
View File
@@ -25,12 +25,28 @@ struct bl_trig_notifier {
unsigned invert;
};
static void ledtrig_backlight_notify_blank(struct bl_trig_notifier *n, int new_status)
{
struct led_classdev *led = n->led;
if (new_status == n->old_status)
return;
if ((n->old_status == UNBLANK) ^ n->invert) {
n->brightness = led->brightness;
led_set_brightness_nosleep(led, LED_OFF);
} else {
led_set_brightness_nosleep(led, n->brightness);
}
n->old_status = new_status;
}
static int fb_notifier_callback(struct notifier_block *p,
unsigned long event, void *data)
{
struct bl_trig_notifier *n = container_of(p,
struct bl_trig_notifier, notifier);
struct led_classdev *led = n->led;
struct fb_event *fb_event = data;
int *blank;
int new_status;
@@ -42,17 +58,7 @@ static int fb_notifier_callback(struct notifier_block *p,
blank = fb_event->data;
new_status = *blank ? BLANK : UNBLANK;
if (new_status == n->old_status)
return 0;
if ((n->old_status == UNBLANK) ^ n->invert) {
n->brightness = led->brightness;
led_set_brightness_nosleep(led, LED_OFF);
} else {
led_set_brightness_nosleep(led, n->brightness);
}
n->old_status = new_status;
ledtrig_backlight_notify_blank(n, new_status);
return 0;
}