diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-06-06 15:58:18 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-06-06 15:58:18 +0200 |
commit | 3bebd3f5e278d77b1eb526cd9f924b0777043d2b (patch) | |
tree | 2bf7b60c52b67912ccc49a45b6db126186517a3c /sys/src/9/pc/vgageode.c | |
parent | a8f64e53fe2a2a27440dd9441800e8210cb1a00f (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.c | 8 |
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); |