Commit 28f8bab7 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Lee Jones
Browse files

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarSimona Vetter <simona.vetter@ffwll.ch>
Link: https://lore.kernel.org/r/20250321095517.313713-10-tzimmermann@suse.de


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent bc70cc84
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -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;
}