| plan 9 kernel history: overview | file list | diff list |
2000/0820/pc/vgas3.c (diff list | history)
| 2000/0820/sys/src/9/pc/vgas3.c:12,17 – 2000/0903/sys/src/9/pc/vgas3.c:12,39 (short | long | prev | next) | ||
| 1999/0119 | #include <cursor.h> | |
| 1994/0803 | #include "screen.h" | |
| 2000/0903 | enum { PCIS3 = 0x5333, /* PCI VID */ SAVAGE3D = 0x8A20, /* PCI DID */ SAVAGE3DMV = 0x8A21, SAVAGE4 = 0x8A22, SAVAGEMXMV = 0x8C10, SAVAGEMX = 0x8C11, SAVAGEIXMV = 0x8C12, SAVAGEIX = 0x8C13, SAVAGE2000 = 0x9102, VIRGE = 0x5631, VIRGEGX2 = 0x8A10, VIRGEDXGX = 0x8A01, VIRGEVX = 0x883D, VIRGEMX = 0x8C01, VIRGEMXP = 0x8C03, AURORA64VPLUS = 0x8812, }; | |
| 1997/1101 | static int s3pageset(VGAscr* scr, int page) | |
| 1994/0803 | { | |
| 2000/0820/sys/src/9/pc/vgas3.c:50,56 – 2000/0903/sys/src/9/pc/vgas3.c:72,78 | ||
| 2000/0803 | id = (vgaxi(Crtx, 0x2D)<<8)|vgaxi(Crtx, 0x2E); | |
| 1998/0116 | switch(id){ | |
| 2000/0803 |
| |
| 2000/0903 | case VIRGEGX2: | |
| 1998/0116 | break; default: | |
| 2000/0820/sys/src/9/pc/vgas3.c:78,84 – 2000/0903/sys/src/9/pc/vgas3.c:100,106 | ||
| 2000/0612 | mmiosize = 0; mmiobase = 0; mmioname = nil; | |
| 1997/1101 |
| |
| 2000/0903 | if(p = pcimatch(nil, PCIS3, 0)){ | |
| 2000/0611 | for(i=0; i<nelem(p->mem); i++){ if(p->mem[i].size >= *size && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0) | |
| 2000/0820/sys/src/9/pc/vgas3.c:92,98 – 2000/0903/sys/src/9/pc/vgas3.c:114,120 | ||
| 2000/0611 | *size = p->mem[i].size; | |
| 2000/0612 | ||
| 2000/0803 | id = (vgaxi(Crtx, 0x2D)<<8)|vgaxi(Crtx, 0x2E); | |
| 2000/0903 | if(id == SAVAGE4){ /* find Savage4 mmio */ | |
| 2000/0612 | /* * We could assume that the MMIO registers * will be in the screen segment and just use | |
| 2000/0820/sys/src/9/pc/vgas3.c:108,113 – 2000/0903/sys/src/9/pc/vgas3.c:130,136 | ||
| 2000/0612 | if(p->mem[j].size==512*1024 || p->mem[j].size==16*1024*1024){ mmiobase = p->mem[j].bar & ~0x0F; mmiosize = 512*1024; | |
| 2000/0903 | scr->mmio = (ulong*)upamalloc(mmiobase, mmiosize, 16*1024*1024); | |
| 2000/0612 | mmioname = "savage4mmio"; break; } | |
| 2000/0820/sys/src/9/pc/vgas3.c:196,207 – 2000/0903/sys/src/9/pc/vgas3.c:219,230 | ||
| 2000/0809 | id = (vgaxi(Crtx, 0x2D)<<8)|vgaxi(Crtx, 0x2E); | |
| 1998/0116 | switch(id){ | |
| 1994/0803 | ||
| 2000/0803 |
| |
| 2000/0820 |
| |
| 2000/0803 |
| |
| 2000/0903 | case VIRGE: case VIRGEDXGX: case VIRGEGX2: case VIRGEVX: case SAVAGEIXMV: case SAVAGE4: | |
| 1998/0116 | p += scr->storage; break; | |
| 2000/0820/sys/src/9/pc/vgas3.c:244,255 – 2000/0903/sys/src/9/pc/vgas3.c:267,278 | ||
| 1994/0803 | ||
| 1998/0116 | switch(id){ | |
| 2000/0803 |
| |
| 2000/0820 |
| |
| 2000/0803 |
| |
| 2000/0903 | case VIRGE: case VIRGEDXGX: case VIRGEGX2: case VIRGEVX: case SAVAGEIXMV: case SAVAGE4: | |
| 1998/0116 | break; default: | |
| 2000/0820/sys/src/9/pc/vgas3.c:526,534 – 2000/0903/sys/src/9/pc/vgas3.c:549,559 | ||
| 2000/0326 | vgaxo(Seqx, CursorSyncCtl, x); } | |
| 2000/0903 | ||
| 2000/0326 | static void | |
| 1999/1005 | s3drawinit(VGAscr *scr) { | |
| 2000/0903 | extern void savageinit(VGAscr*); /* vgasavage.c */ | |
| 1999/1005 | ulong id; | |
| 2000/0809 | id = (vgaxi(Crtx, 0x2D)<<8)|vgaxi(Crtx, 0x2E); | |
| 2000/0820/sys/src/9/pc/vgas3.c:542,554 – 2000/0903/sys/src/9/pc/vgas3.c:567,583 | ||
| 1999/1005 | * above. */ switch(id){ | |
| 2000/0803 |
| |
| 2000/0903 | case VIRGE: /* ViRGE */ case VIRGEVX: /* ViRGE/VX */ case VIRGEGX2: /* ViRGE/GX2 */ | |
| 1999/1005 | scr->mmio = (ulong*)(scr->aperture+0x1000000); scr->fill = hwfill; scr->scroll = hwscroll; | |
| 2000/0326 | /* scr->blank = hwblank; */ | |
| 2000/0903 | break; case SAVAGE4: savageinit(scr); break; | |
| 1999/1005 | } } | |