aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@pol.net>2005-12-13 01:17:15 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-12-13 01:31:17 -0500
commit56f0d64de80733bda54d1cfa7ac0c736ab2de33b (patch)
treec708c7d2375295d0e5e7884771c2dd8275b5e89c /drivers/video
parent2f6331faf58a4727a9f1138cd6db30d05b124220 (diff)
[PATCH] fbcon: fix complement_mask() with 512 character map
There is a bug in the complement_mask when you have a 512-character map. Linux boots to a default 256-character map and most probably your login profile is loading a 512-character map which results in a bad gpm cursor. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/console/fbcon.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index bcea87c3cc0..c024ffd0266 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2048,7 +2048,7 @@ static int fbcon_switch(struct vc_data *vc)
2048 struct fbcon_ops *ops; 2048 struct fbcon_ops *ops;
2049 struct display *p = &fb_display[vc->vc_num]; 2049 struct display *p = &fb_display[vc->vc_num];
2050 struct fb_var_screeninfo var; 2050 struct fb_var_screeninfo var;
2051 int i, prev_console; 2051 int i, prev_console, charcnt = 256;
2052 2052
2053 info = registered_fb[con2fb_map[vc->vc_num]]; 2053 info = registered_fb[con2fb_map[vc->vc_num]];
2054 ops = info->fbcon_par; 2054 ops = info->fbcon_par;
@@ -2120,6 +2120,13 @@ static int fbcon_switch(struct vc_data *vc)
2120 2120
2121 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); 2121 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1);
2122 vc->vc_complement_mask = vc->vc_can_do_color ? 0x7700 : 0x0800; 2122 vc->vc_complement_mask = vc->vc_can_do_color ? 0x7700 : 0x0800;
2123
2124 if (p->userfont)
2125 charcnt = FNTCHARCNT(vc->vc_font.data);
2126
2127 if (charcnt > 256)
2128 vc->vc_complement_mask <<= 1;
2129
2123 updatescrollmode(p, info, vc); 2130 updatescrollmode(p, info, vc);
2124 2131
2125 switch (p->scrollmode) { 2132 switch (p->scrollmode) {