git: 9front

Download patch

ref: a2723caa331fd58ddc130597e7a60ea76fba20fe
parent: 53fd44ed0965af609ddc34bf228e7de2735a21d1
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Jan 9 21:15:30 EST 2015

igfx: perserve frame start delay "magic" bits 27:28 in pipe conf register

it turns out, the "magic" bits 27:28 are the frame start
delay setting that need to be preserved.

--- a/sys/src/cmd/aux/vga/igfx.c
+++ b/sys/src/cmd/aux/vga/igfx.c
@@ -592,8 +592,11 @@
 static void
 inittrans(Trans *t, Mode *m)
 {
+	/* clear all but 27:28 frame start delay (initialized by bios) */
+	t->conf.v &= 3<<27;
+
 	/* tans/pipe enable */
-	t->conf.v = 1<<31;
+	t->conf.v |= 1<<31;
 
 	/* trans/pipe timing */
 	t->ht.v = (m->ht - 1)<<16 | (m->x - 1);
@@ -751,14 +754,6 @@
 		error("%s: frequency %d out of range\n", ctlr->name, m->frequency);
 
 	initpipe(p, m);
-
-	/*
-	 * undocumented magic that makes the flickering
-	 * top bar go away on x230 on lcd. found by
-	 * comparing registers set by vesa bios.
-	 */
-	if(igfx->type == TypeIVB && islvds)
-		p->conf.v |= 3<<27;
 
 	ctlr->flag |= Finit;
 }
--