[PATCH] mode switching fix

Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be)
Fri, 2 Oct 1998 01:07:11 +0200 (CEST)


This patch fixes a problem that shows up with dynamic mode switching (`zoom')
in XF68_FBDev. When the console is in graphics mode, the screen contents must
not be updated and the margins (when the screen size is not dividible by the
font size) must not be cleared, since it will corrupt the X screen contents.

The patch is relative to Martin Mares' latest video merge.

Index: drivers/video/fbcon.c
===================================================================
RCS file: /vger/u4/cvs/linux/drivers/video/fbcon.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- fbcon.c 1998/09/16 20:08:42 1.77
+++ fbcon.c 1998/10/01 18:07:26 1.78
@@ -556,7 +556,8 @@
if (!init) {
if (conp->vc_cols != nr_cols || conp->vc_rows != nr_rows)
vc_resize_con(nr_rows, nr_cols, con);
- else if (CON_IS_VISIBLE(conp)) {
+ else if (CON_IS_VISIBLE(conp) &&
+ vt_cons[conp->vc_num]->vc_mode == KD_TEXT) {
if (p->dispsw->clear_margins)
p->dispsw->clear_margins(conp, p, 0);
update_screen(con);
@@ -1170,7 +1171,7 @@

if (info && info->switch_con)
(*info->switch_con)(unit, info);
- if (p->dispsw->clear_margins)
+ if (p->dispsw->clear_margins && vt_cons[unit]->vc_mode == KD_TEXT)
p->dispsw->clear_margins(conp, p, 0);
if (logo_shown == -2) {
logo_shown = fg_console;
@@ -1341,7 +1342,7 @@
p->vrows = p->var.yres_virtual/h;
updatescrollmode(p);
vc_resize_con( p->var.yres/h, p->var.xres/w, unit );
- } else if (CON_IS_VISIBLE(p->conp)) {
+ } else if (CON_IS_VISIBLE(p->conp) && vt_cons[unit]->vc_mode == KD_TEXT) {
if (p->dispsw->clear_margins)
p->dispsw->clear_margins(p->conp, p, 0);
update_screen(unit);

Greetings,

Geert

--
Geert Uytterhoeven                     Geert.Uytterhoeven@cs.kuleuven.ac.be
Wavelets, Linux/{m68k~Amiga,PPC~CHRP}  http://www.cs.kuleuven.ac.be/~geert/
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/