shithub: riscv

Download patch

ref: 8d8935618ca946f4349468d53da329beeb66becb
parent: 79ff9d28bd2c3d447dfb1a7b3fb6ee5634145a7a
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;
 }