Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Aug 1998 22:32:19 +0900
From:      Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
To:        freebsd-current@FreeBSD.ORG
Cc:        yokota@zodiac.mech.utsunomiya-u.ac.jp
Subject:   screen flicker in 3.0-CURRENT
Message-ID:  <199808031332.WAA19278@zodiac.mech.utsunomiya-u.ac.jp>

next in thread | raw e-mail | index | archive | help
I would be grateful if anybody who are having the following problem
would apply the attached patch to /sys/i386/isa/syscons.c and report 
the result to me.

There have been reports that the screen flicker is so bad when the
mouse pointer is moved in 3.0-CURRENT and 2.2.7.  2.2.6 saw less of
the problem.  It has been observed that the problem is most apparent:

a) in notebook computers,
b) and/or in the systems with a C&T video chip.

A possible workaround is to eliminate some I/O access to the chip.
But, as I am not sure if this is OK with other VGA chip sets, we shall
use a new configuration option SC_BAD_FLICKER.  Define this option in
the kernel configuration file to remove outb()/outw() calls in question.

Thank you for your cooperation.

Kazu
yokota@freebsd.org

--- syscons.c.orig	Sun Aug  2 16:30:51 1998
+++ syscons.c	Mon Aug  3 18:01:35 1998
@@ -4734,18 +4734,26 @@
     outb(ATC, 0x20);            		/* enable palette */
 
 #if SLOW_VGA
+#ifndef SC_BAD_FLICKER
     outb(TSIDX, 0x00); outb(TSREG, 0x01);
+#endif
     outb(TSIDX, 0x02); outb(TSREG, 0x04);
     outb(TSIDX, 0x04); outb(TSREG, 0x07);
+#ifndef SC_BAD_FLICKER
     outb(TSIDX, 0x00); outb(TSREG, 0x03);
+#endif
     outb(GDCIDX, 0x04); outb(GDCREG, 0x02);
     outb(GDCIDX, 0x05); outb(GDCREG, 0x00);
     outb(GDCIDX, 0x06); outb(GDCREG, 0x04);
 #else
+#ifndef SC_BAD_FLICKER
     outw(TSIDX, 0x0100);
+#endif
     outw(TSIDX, 0x0402);
     outw(TSIDX, 0x0704);
+#ifndef SC_BAD_FLICKER
     outw(TSIDX, 0x0300);
+#endif
     outw(GDCIDX, 0x0204);
     outw(GDCIDX, 0x0005);
     outw(GDCIDX, 0x0406);               /* addr = a0000, 64kb */
@@ -4766,10 +4774,14 @@
     outb(ATC, 0x20);            		/* enable palette */
 
 #if SLOW_VGA
+#ifndef SC_BAD_FLICKER
     outb(TSIDX, 0x00); outb(TSREG, 0x01);
+#endif
     outb(TSIDX, 0x02); outb(TSREG, buf[0]);
     outb(TSIDX, 0x04); outb(TSREG, buf[1]);
+#ifndef SC_BAD_FLICKER
     outb(TSIDX, 0x00); outb(TSREG, 0x03);
+#endif
     outb(GDCIDX, 0x04); outb(GDCREG, buf[2]);
     outb(GDCIDX, 0x05); outb(GDCREG, buf[3]);
     if (crtc_addr == MONO_BASE) {
@@ -4778,10 +4790,14 @@
 	outb(GDCIDX, 0x06); outb(GDCREG,(buf[4] & 0x03) | 0x0c);
     }
 #else
+#ifndef SC_BAD_FLICKER
     outw(TSIDX, 0x0100);
+#endif
     outw(TSIDX, 0x0002 | (buf[0] << 8));
     outw(TSIDX, 0x0004 | (buf[1] << 8));
+#ifndef SC_BAD_FLICKER
     outw(TSIDX, 0x0300);
+#endif
     outw(GDCIDX, 0x0004 | (buf[2] << 8));
     outw(GDCIDX, 0x0005 | (buf[3] << 8));
     if (crtc_addr == MONO_BASE)


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808031332.WAA19278>