/* Ensure AGP controller is in a consistent state in case we need to *executetheVBIOSDEVINITscripts.
*/ void
nvkm_agp_preinit(struct nvkm_pci *pci)
{ struct nvkm_device *device = pci->subdev.device;
u32 mode = nvkm_pci_rd32(pci, 0x004c);
u32 save[2];
/* First of all, disable fast writes, otherwise if it's already *enabledintheAGPbridgeandwedisablethecard'sAGP *controllerwemightbelockingourselvesoutofit.
*/ if ((mode | pci->agp.mode) & PCI_AGP_COMMAND_FW) {
mode = pci->agp.mode & ~PCI_AGP_COMMAND_FW;
agp_enable(pci->agp.bridge, mode);
}
#ifdef __powerpc__ /* Disable AGP by default on all PowerPC machines for now -- At *leastsomeUniNorth-2AGPbridgesareknowntobebroken: *DMAfromthehosttothecardworksjustfine,butwriteback *fromthecardtothehostgoesstraighttomemory *untranslatedbypassingthatGATTsomehow,makingthemquite *painfultodealwith...
*/
mode = 0; #endif
mode = nvkm_longopt(device->cfgopt, "NvAGP", mode);
/* acquire bridge temporarily, so that we can copy its info */ if (!(pci->agp.bridge = agp_backend_acquire(pci->pdev))) {
nvkm_warn(subdev, "failed to acquire agp\n"); return;
}
agp_copy_info(pci->agp.bridge, &info);
agp_backend_release(pci->agp.bridge);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.