From c78a32b39d2a5418e6a28a071de10e19a5d73454 Mon Sep 17 00:00:00 2001 From: Knut Petersen Date: Mon, 12 Dec 2005 22:17:19 -0800 Subject: [PATCH] --- yaml --- r: 15104 b: refs/heads/master c: 39942fd8ff57c8623451bbfaffe8a184cc8b463a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/video/console/fbcon.c | 3 ++- trunk/include/linux/fb.h | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6cc0fa20f783..030856a1e7a6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4e1567d3aad9bae0ecc5bb047179cd026bfb035c +refs/heads/master: 39942fd8ff57c8623451bbfaffe8a184cc8b463a diff --git a/trunk/drivers/video/console/fbcon.c b/trunk/drivers/video/console/fbcon.c index 8068d2f7efe6..3660e51b2612 100644 --- a/trunk/drivers/video/console/fbcon.c +++ b/trunk/drivers/video/console/fbcon.c @@ -2103,7 +2103,8 @@ static int fbcon_switch(struct vc_data *vc) fb_set_var(info, &var); ops->var = info->var; - if (old_info != NULL && old_info != info) { + if (old_info != NULL && (old_info != info || + info->flags & FBINFO_MISC_ALWAYS_SETPAR)) { if (info->fbops->fb_set_par) info->fbops->fb_set_par(info); fbcon_del_cursor_timer(old_info); diff --git a/trunk/include/linux/fb.h b/trunk/include/linux/fb.h index 55ccaf3706c1..dab3a4decb44 100644 --- a/trunk/include/linux/fb.h +++ b/trunk/include/linux/fb.h @@ -732,6 +732,18 @@ struct fb_tile_ops { from userspace */ #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ +/* A driver may set this flag to indicate that it does want a set_par to be + * called every time when fbcon_switch is executed. The advantage is that with + * this flag set you can really be shure that set_par is always called before + * any of the functions dependant on the correct hardware state or altering + * that state, even if you are using some broken X releases. The disadvantage + * is that it introduces unwanted delays to every console switch if set_par + * is slow. It is a good idea to try this flag in the drivers initialization + * code whenever there is a bug report related to switching between X and the + * framebuffer console. + */ +#define FBINFO_MISC_ALWAYS_SETPAR 0x40000 + struct fb_info { int node; int flags;