Index: agp_nvidia.c =================================================================== RCS file: /home/ncvs/src/sys/pci/agp_nvidia.c,v retrieving revision 1.6 diff -u -r1.6 agp_nvidia.c --- agp_nvidia.c 30 May 2004 20:00:40 -0000 1.6 +++ agp_nvidia.c 19 Jan 2005 05:08:01 -0000 @@ -109,7 +109,7 @@ case NVIDIA_DEVICEID_NFORCE2: return ("NVIDIA nForce2 AGP Controller"); } - return ("NVIDIA Generic AGP Controller"); + return (NULL); } static int @@ -148,8 +148,8 @@ sc->wbc_mask = 0x80000000; break; default: - sc->wbc_mask = 0; - break; + device_printf(dev, "Bad chip id\n"); + return (ENODEV); } /* AGP Controller */ @@ -227,8 +227,7 @@ for (i = 0; i < 8; i++) { pci_write_config(sc->mc2_dev, AGP_NVIDIA_2_ATTBASE(i), (sc->gatt->ag_physical + - (i % sc->num_dirs) * 64 * 1024), - 4); + (i % sc->num_dirs) * 64 * 1024) | 1, 4); } /* GTLB Control */ @@ -343,6 +342,7 @@ { struct agp_nvidia_softc *sc; u_int32_t wbc_reg, temp; + volatile u_int32_t *ag_virtual; int i; sc = (struct agp_nvidia_softc *)device_get_softc(dev); @@ -366,11 +366,13 @@ "TLB flush took more than 3 seconds.\n"); } + ag_virtual = (volatile u_int32_t *)sc->gatt->ag_virtual; + /* Flush TLB entries. */ for(i = 0; i < 32 + 1; i++) - temp = sc->gatt->ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; + temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; for(i = 0; i < 32 + 1; i++) - temp = sc->gatt->ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; + temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; return (0); }