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@xxxxxxx> --- drivers/leds/trigger/ledtrig-backlight.c | 30 ++++++++++++++---------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/leds/trigger/ledtrig-backlight.c b/drivers/leds/trigger/ledtrig-backlight.c index 487577d22cfc..8e66d55a6c82 100644 --- a/drivers/leds/trigger/ledtrig-backlight.c +++ b/drivers/leds/trigger/ledtrig-backlight.c @@ -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; } -- 2.48.1