Browse Source

Plan 9 from Bell Labs 2006-01-20

David du Colombier 18 years ago
parent
commit
97f4e797cb
5 changed files with 28 additions and 10 deletions
  1. 2 2
      dist/replica/_plan9.db
  2. 2 2
      dist/replica/plan9.db
  3. 2 0
      dist/replica/plan9.log
  4. 18 2
      sys/src/9/pc/vganvidia.c
  5. 4 4
      sys/src/cmd/usb/lib/device.c

+ 2 - 2
dist/replica/_plan9.db

@@ -8059,7 +8059,7 @@ sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
 sys/src/9/pc/vgamga4xx.c - 664 sys sys 1131290602 10201
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
-sys/src/9/pc/vganvidia.c - 664 sys sys 1136403794 12023
+sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
 sys/src/9/pc/vgas3.c - 664 sys sys 1131290603 10994
 sys/src/9/pc/vgasavage.c - 664 sys sys 1064679984 16251
@@ -14027,7 +14027,7 @@ sys/src/cmd/usb/audio/usbaudio.h - 664 sys sys 1100568597 1861
 sys/src/cmd/usb/audio/usbaudioctl.c - 664 sys sys 1101906325 17266
 sys/src/cmd/usb/audio/usbaudioctl.h - 664 sys sys 1100568597 600
 sys/src/cmd/usb/lib - 20000000775 sys sys 1018369393 0
-sys/src/cmd/usb/lib/device.c - 664 sys sys 1099760882 2968
+sys/src/cmd/usb/lib/device.c - 664 sys sys 1137688747 3032
 sys/src/cmd/usb/lib/dump.c - 664 sys sys 1135896862 12915
 sys/src/cmd/usb/lib/fmt.c - 664 sys sys 1091204978 291
 sys/src/cmd/usb/lib/mkfile - 664 sys sys 1091204979 204

+ 2 - 2
dist/replica/plan9.db

@@ -8059,7 +8059,7 @@ sys/src/9/pc/vgamach64xx.c - 664 sys sys 1131290601 28257
 sys/src/9/pc/vgamga2164w.c - 664 sys sys 1132331257 4769
 sys/src/9/pc/vgamga4xx.c - 664 sys sys 1131290602 10201
 sys/src/9/pc/vganeomagic.c - 664 sys sys 1131422294 10255
-sys/src/9/pc/vganvidia.c - 664 sys sys 1136403794 12023
+sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
 sys/src/9/pc/vgargb524.c - 664 sys sys 1131290602 4251
 sys/src/9/pc/vgas3.c - 664 sys sys 1131290603 10994
 sys/src/9/pc/vgasavage.c - 664 sys sys 1064679984 16251
@@ -14027,7 +14027,7 @@ sys/src/cmd/usb/audio/usbaudio.h - 664 sys sys 1100568597 1861
 sys/src/cmd/usb/audio/usbaudioctl.c - 664 sys sys 1101906325 17266
 sys/src/cmd/usb/audio/usbaudioctl.h - 664 sys sys 1100568597 600
 sys/src/cmd/usb/lib - 20000000775 sys sys 1018369393 0
-sys/src/cmd/usb/lib/device.c - 664 sys sys 1099760882 2968
+sys/src/cmd/usb/lib/device.c - 664 sys sys 1137688747 3032
 sys/src/cmd/usb/lib/dump.c - 664 sys sys 1135896862 12915
 sys/src/cmd/usb/lib/fmt.c - 664 sys sys 1091204978 291
 sys/src/cmd/usb/lib/mkfile - 664 sys sys 1091204979 204

+ 2 - 0
dist/replica/plan9.log

@@ -27168,3 +27168,5 @@
 1137623433 0 c sys/src/9/pc/mem.h - 664 sys sys 1137622431 5203
 1137623433 1 c sys/src/9/pc/mkfile - 664 sys sys 1137622906 3572
 1137623433 2 c sys/src/9/port/sysproc.c - 664 sys sys 1137622456 15153
+1137690054 0 c sys/src/9/pc/vganvidia.c - 664 sys sys 1137689150 12395
+1137690054 1 c sys/src/cmd/usb/lib/device.c - 664 sys sys 1137688747 3032

+ 18 - 2
sys/src/9/pc/vganvidia.c

@@ -189,7 +189,7 @@ nvidiacurload(VGAscr* scr, Cursor* curs)
 		 * have allocated less storage than aux/vga
 		 * expected.
 		 */
-		tmp = scr->storage - 96*1024;
+		tmp = scr->apsize - 96*1024;
 		p = (void*)((uchar*)scr->vaddr + tmp);
 		vgaxo(Crtx, 0x30, 0x80|(tmp>>17));
 		vgaxo(Crtx, 0x31, (tmp>>11)<<2);
@@ -363,7 +363,23 @@ nvresetgraphics(VGAscr *scr)
 
 	pitch = scr->gscreen->width*BY2WD;
 
-	nv.dmabase = (void*)((uchar*)scr->vaddr + scr->storage - 128*1024);
+	/*
+	 * DMA is at the end of the virtual window,
+	 * but we might have cut it short when mapping it.
+	 */
+	if(nv.dmabase == nil){
+		if(scr->storage <= scr->apsize)
+			nv.dmabase = (ulong*)((uchar*)scr->vaddr + scr->storage - 128*1024);
+		else{
+			nv.dmabase = (void*)vmap(scr->paddr + scr->storage - 128*1024, 128*1024);
+			if(nv.dmabase == 0){
+				hwaccel = 0;
+				hwblank = 0;
+				print("vmap nvidia dma failed\n");
+				return;
+			}
+		}
+	}
 
 	for(i=0; i<SKIPS; i++)
 		nv.dmabase[i] = 0x00000000;

+ 4 - 4
sys/src/cmd/usb/lib/device.c

@@ -96,10 +96,10 @@ setdevclass(Device *d, int n)
 	Endpt *e;
 
 	if (e = d->ep[n]) {
-		if (verbose) fprint(2, "class %d %d %#6.6lux\n",
-			d->nif, n, e->csp);
-		fprint(d->ctl, "class %d %d %#6.6lux",
-			d->nif, n, e->csp);
+		if (verbose) fprint(2, "class %d %d %#6.6lux %#4.4ux %#4.4ux\n",
+			d->nif, n, e->csp, d->vid, d->did);
+		fprint(d->ctl, "class %d %d %#6.6lux %#4.4ux %#4.4ux",
+			d->nif, n, e->csp, d->vid, d->did);
 	}
 }