/* run a bunch of tables from rammap table. there's actually *individualpointersforeachrammapentrytoo,but,nvidia *seemtojustrunthelasttwoentries'scriptsearlyonin *theirinit,andneveragain..we'lljustrun'emallonce *fornow. * *istronglysuspectthateachscriptisforaseparatemode *(likelyselectedby0x9a065c'slowerbits?),andthe *binarydriverskipstheonethat'salreadybeensetupby *theinittables.
*/
data = nvbios_rammapTe(bios, &ver, &hdr, &cnt, &len, &snr, &ssz); if (!data || hdr < 0x15) return -EINVAL;
cnt = nvbios_rd08(bios, data + 0x14); /* guess at count */
data = nvbios_rd32(bios, data + 0x10); /* guess u32... */ if (cnt) {
u32 save = nvkm_rd32(device, 0x9a065c) & 0x000000f0; for (i = 0; i < cnt; i++, data += 4) { if (i != save >> 4) {
nvkm_mask(device, 0x9a065c, 0x000000f0, i << 4);
nvbios_init(subdev, nvbios_rd32(bios, data));
}
}
nvkm_mask(device, 0x9a065c, 0x000000f0, save);
}
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.