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:
committed by
Lee Jones
parent
bc70cc84f5
commit
28f8bab711
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user