vga: add Matrox G550 [rsc] --rw-rw-r-- M 177229 glenda sys 29342 Apr 1 16:40 lib/vgadb /n/sourcesdump/2006/0401/plan9/lib/vgadb:380,388 - /n/sourcesdump/2006/0402/plan9/lib/vgadb:380,388 hwgc=vmwarehwgc ctlr - 0xC002D="MATROX/Matrox G400" - 0xC002D="MATROX/Matrox G450" - 0xC002D="MATROX/MGA-G200 VGA" + vid=0x102B did=0x0521 # Matrox G200 + vid=0x102B did=0x0525 # Matrox G450 + vid=0x102B did=0x2527 # Matrox G550 link=vga ctlr=mga4xx linear=1 hwgc=mga4xxhwgc [rsc] --rw-rw-r-- M 177229 glenda sys 9573 Apr 1 16:44 sys/src/9/pc/vgamga4xx.c /n/sourcesdump/2006/0401/plan9/sys/src/9/pc/vgamga4xx.c:20,25 - /n/sourcesdump/2006/0402/plan9/sys/src/9/pc/vgamga4xx.c:20,26 enum { MATROX = 0x102B, + MGA550 = 0x2527, MGA4xx = 0x0525, MGA200 = 0x0521, /n/sourcesdump/2006/0401/plan9/sys/src/9/pc/vgamga4xx.c:78,83 - /n/sourcesdump/2006/0402/plan9/sys/src/9/pc/vgamga4xx.c:79,86 p = pcimatch(nil, MATROX, MGA4xx); if(p == nil) + p = pcimatch(nil, MATROX, MGA550); + if(p == nil) p = pcimatch(nil, MATROX, MGA200); return p; } /n/sourcesdump/2006/0401/plan9/sys/src/9/pc/vgamga4xx.c:132,138 - /n/sourcesdump/2006/0402/plan9/sys/src/9/pc/vgamga4xx.c:135,141 addvgaseg("mga4xxmmio", pci->mem[1].bar&~0x0F, pci->mem[1].size); /* need to map frame buffer here too, so vga can find memory size */ - if(pci->did == MGA4xx) + if(pci->did == MGA4xx || pci->did == MGA550) size = 32*MB; else size = 8*MB; /n/sourcesdump/2006/0401/plan9/sys/src/9/pc/vgamga4xx.c:464,472 - /n/sourcesdump/2006/0402/plan9/sys/src/9/pc/vgamga4xx.c:467,475 uchar *mga; Pcidev *p; - p = pcimatch(nil, MATROX, MGA4xx); - if(p == nil) - return ; + p = mgapcimatch(); + if(p->did == MGA200) + return; if(scr->mmio == 0) return; [rsc] --rw-rw-r-- M 177229 glenda sys 36098 Apr 1 16:44 sys/src/cmd/aux/vga/mga4xx.c [diffs elided - too long] [diff -c /n/sourcesdump/2006/0401/plan9/sys/src/cmd/aux/vga/mga4xx.c /n/sourcesdump/2006/0402/plan9/sys/src/cmd/aux/vga/mga4xx.c]