Fixes blanking on i81x. Reference: /n/sources/patch/applied/i810-vga-blanking Date: Mon Dec 19 00:47:48 CET 2005 --- /sys/src/9/pc/vgai81x.c Mon Dec 19 00:46:55 2005 +++ /sys/src/9/pc/vgai81x.c Mon Dec 19 00:46:51 2005 @@ -24,8 +24,32 @@ Fbsize = 8*MB, hwCur = 0x70080, + SRX = 0x3c4, + DPMSsync = 0x5002, }; +static void +i81xblank(VGAscr *scr, int blank) +{ + char *srx, *srxd, *dpms; + char sr01, mode; + + srx = (char *)scr->mmio+SRX; + srxd = srx+1; + dpms = (char *)scr->mmio+DPMSsync; + + *srx = 0x01; + sr01 = *srxd & ~0x20; + mode = *dpms & 0xf0; + + if(blank) { + sr01 |= 0x20; + mode |= 0x0a; + } + *srxd = sr01; + *dpms = mode; +} + static Pcidev * i81xpcimatch(void) { @@ -100,6 +124,9 @@ panic("i81x cursor mmuwalk"); *pte |= PTEUNCACHED; scr->storage = cursor; + + scr->blank = i81xblank; + hwblank = 1; } static void