Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 212f2639 authored by Antonino A. Daplas's avatar Antonino A. Daplas Committed by Linus Torvalds
Browse files

[PATCH] fbcon: Remove cursor timer if unused



Remove the cursor timer (cursor flashing) on the following conditions:

- if vc is in KD_GRAPHICS mode, ie, when X owns the console
- if vc is blanked

This misbehavior was exposed by Dave Jones.

Signed-off-by: default avatarAntonino Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e299dd4d
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -396,9 +396,8 @@ static void fb_flashcursor(void *private)
		vc = vc_cons[ops->currcon].d;

	if (!vc || !CON_IS_VISIBLE(vc) ||
	    fbcon_is_inactive(vc, info) ||
 	    registered_fb[con2fb_map[vc->vc_num]] != info ||
	    vc_cons[ops->currcon].d->vc_deccm != 1) {
	    vc->vc_deccm != 1) {
		release_console_sem();
		return;
	}
@@ -2166,7 +2165,12 @@ static int fbcon_switch(struct vc_data *vc)
			fbcon_del_cursor_timer(old_info);
	}

	if (fbcon_is_inactive(vc, info) ||
	    ops->blank_state != FB_BLANK_UNBLANK)
		fbcon_del_cursor_timer(info);
	else
		fbcon_add_cursor_timer(info);

	set_blitting_type(vc, info);
	ops->cursor_reset = 1;

@@ -2276,10 +2280,11 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
			update_screen(vc);
	}

	if (!blank)
		fbcon_add_cursor_timer(info);
	else
	if (fbcon_is_inactive(vc, info) ||
	    ops->blank_state != FB_BLANK_UNBLANK)
		fbcon_del_cursor_timer(info);
	else
		fbcon_add_cursor_timer(info);

	return 0;
}