diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-10 02:15:30 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-10 02:15:30 +0100 |
commit | 8d8935618ca946f4349468d53da329beeb66becb (patch) | |
tree | b7e60caf337384a421e0d599d725dcdc93026a5c | |
parent | 79ff9d28bd2c3d447dfb1a7b3fb6ee5634145a7a (diff) |
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.
-rw-r--r-- | sys/src/cmd/aux/vga/igfx.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/src/cmd/aux/vga/igfx.c b/sys/src/cmd/aux/vga/igfx.c index 86a7bd25e..11c08a442 100644 --- a/sys/src/cmd/aux/vga/igfx.c +++ b/sys/src/cmd/aux/vga/igfx.c @@ -592,8 +592,11 @@ initdatalinkmn(Trans *t, int freq, int lsclk, int lanes, int tu, int bpp) 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); @@ -752,14 +755,6 @@ init(Vga* vga, Ctlr* ctlr) 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; } |