summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/vgageode.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 15:58:18 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 15:58:18 +0200
commit3bebd3f5e278d77b1eb526cd9f924b0777043d2b (patch)
tree2bf7b60c52b67912ccc49a45b6db126186517a3c /sys/src/9/pc/vgageode.c
parenta8f64e53fe2a2a27440dd9441800e8210cb1a00f (diff)
pc/vga*: use 64-bit physical addresses and check pci membar types and sizes
Diffstat (limited to 'sys/src/9/pc/vgageode.c')
-rw-r--r--sys/src/9/pc/vgageode.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/9/pc/vgageode.c b/sys/src/9/pc/vgageode.c
index eee9fd919..0fe7890b5 100644
--- a/sys/src/9/pc/vgageode.c
+++ b/sys/src/9/pc/vgageode.c
@@ -32,9 +32,13 @@ geodeenable(VGAscr* scr)
if(scr->mmio)
return;
p = scr->pci;
- if(!p) return;
+ if(p == nil)
+ return;
+ if((p->mem[1].bar | p->mem[2].bar | p->mem[3].bar) & 1)
+ return;
scr->mmio = vmap(p->mem[2].bar&~0x0F, p->mem[2].size);
- if(!scr->mmio) return;
+ if(scr->mmio == nil)
+ return;
addvgaseg("geodegp", p->mem[1].bar&~0x0F, p->mem[1].size);
addvgaseg("geodemmio", p->mem[2].bar&~0x0F, p->mem[2].size);
addvgaseg("geodevid", p->mem[3].bar&~0x0F, p->mem[3].size);