diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-09 03:03:23 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-09 03:03:23 +0100 |
commit | 35ad5c91361681246105801d42b5e97c59d0d28c (patch) | |
tree | f073054e8ce231cd673131d12b2a0492e02e206c | |
parent | ce8db466ba402ddb877495f66a7bddf156569fdf (diff) | |
download | plan9front-35ad5c91361681246105801d42b5e97c59d0d28c.tar.xz |
igfx: aaaand the kernel part :(
-rw-r--r-- | sys/src/9/pc/vgaigfx.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/sys/src/9/pc/vgaigfx.c b/sys/src/9/pc/vgaigfx.c new file mode 100644 index 000000000..a8184041a --- /dev/null +++ b/sys/src/9/pc/vgaigfx.c @@ -0,0 +1,38 @@ +#include "u.h" +#include "../port/lib.h" +#include "mem.h" +#include "dat.h" +#include "fns.h" +#include "io.h" +#include "../port/error.h" + +#define Image IMAGE +#include <draw.h> +#include <memdraw.h> +#include <cursor.h> +#include "screen.h" + +static void +igfxenable(VGAscr* scr) +{ + Pcidev *p; + + if(scr->mmio != nil) + return; + p = scr->pci; + if(p == nil) + return; + scr->mmio = vmap(p->mem[0].bar&~0x0F, p->mem[0].size); + if(scr->mmio == nil) + return; + addvgaseg("igfxmmio", p->mem[0].bar&~0x0F, p->mem[1].size); + if(scr->paddr == 0) + vgalinearpci(scr); + if(scr->apsize) + addvgaseg("igfxscreen", scr->paddr, scr->apsize); +} + +VGAdev vgaigfxdev = { + "igfx", + igfxenable, +}; |