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;
}
--
⑨