Lines Matching refs:pNv
98 G80Ptr pNv = G80PTR(pScrn);
111 !pNv->xaa ||
113 pNv->exa) {
129 if(pNv->exa) {
130 if(pNv->exaScreenArea)
131 exaOffscreenFree(pScreen, pNv->exaScreenArea);
132 pNv->exaScreenArea = exaOffscreenAlloc(pScreen, pitch * pScrn->virtualY,
134 if(!pNv->exaScreenArea || pNv->exaScreenArea->offset != 0) {
152 G80Ptr pNv;
181 pNv = G80PTR(pScrn);
189 pNv->pPci = pPci;
204 pNv->int10 = NULL;
205 pNv->int10Mode = 0;
208 pNv->int10 = xf86InitInt10(pEnt->index);
211 if(!pNv->int10) {
224 if(primary && pNv->int10) {
225 const xf86Int10InfoPtr int10 = pNv->int10;
232 pNv->int10Mode = int10->bx & 0x3fff;
234 pNv->int10Mode);
269 if(!(pNv->Options = malloc(sizeof(G80Options)))) goto fail;
270 memcpy(pNv->Options, G80Options, sizeof(G80Options));
271 xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pNv->Options);
274 pNv->HWCursor = TRUE;
275 if(xf86GetOptValBool(pNv->Options, OPTION_HW_CURSOR, &pNv->HWCursor))
278 pNv->HWCursor ? "hardware" : "software");
279 if(xf86ReturnOptValBool(pNv->Options, OPTION_NOACCEL, FALSE)) {
280 pNv->NoAccel = TRUE;
283 s = xf86GetOptValString(pNv->Options, OPTION_ACCEL_METHOD);
286 pNv->AccelMethod = XAA;
291 pNv->AccelMethod = EXA;
298 pNv->Dither = xf86ReturnOptValBool(pNv->Options, OPTION_FP_DITHER, FALSE);
299 pNv->AllowDualLink = xf86ReturnOptValBool(pNv->Options, OPTION_ALLOW_DUAL_LINK, FALSE);
319 pNv->reg = p;
322 pNv->reg = xf86MapPciMem(pScrn->scrnIndex,
327 (void*)pNv->reg);
337 pNv->architecture = pNv->reg[0] >> 20 & 0x1ff;
338 tmp = pNv->reg[0x0010020C/4];
339 pNv->videoRam = pNv->RamAmountKBytes = tmp >> 10 | (tmp & 1) << 22;
355 if(pNv->videoRam <= 1024 || BAR1sizeKB == 0) {
360 pNv->videoRam -= 1024;
361 if(pNv->videoRam > BAR1sizeKB)
362 pNv->videoRam = BAR1sizeKB;
364 pScrn->videoRam = pNv->videoRam;
367 pNv->RamAmountKBytes / 1024.0);
384 pNv->mem = p;
386 pNv->mem = xf86MapPciMem(pScrn->scrnIndex,
391 (void*)pNv->mem);
393 pNv->table1 = (unsigned const char*)&pNv->reg[0x00800000/4];
394 tmp = pNv->reg[0x00619F04/4] >> 8;
396 pNv->table1 -= ((pNv->RamAmountKBytes << 10) - (tmp << 16));
398 pNv->table1 -= 0x10000;
413 if(!xf86InitialConfiguration(pScrn, pNv->NoAccel || pNv->AccelMethod == EXA)) {
436 if(!pNv->NoAccel) {
438 switch(pNv->AccelMethod) {
440 if(!xf86LoadSubModule(pScrn, "xaa")) pNv->NoAccel = 1;
444 if (pNv->AccelMethod == EXA) {
446 if(!xf86LoadSubModule(pScrn, "exa")) pNv->NoAccel = 1;
454 if(pNv->HWCursor) {
458 pNv->HWCursor = FALSE;
465 if(pNv->int10) xf86FreeInt10(pNv->int10);
491 G80Ptr pNv = G80PTR(pScrn);
496 if(pNv->int10 && pNv->int10Mode) {
497 xf86Int10InfoPtr int10 = pNv->int10;
502 int10->bx = pNv->int10Mode | 0x8000;
514 G80Ptr pNv = G80PTR(pScrn);
520 if(pNv->xaa)
521 XAADestroyInfoRec(pNv->xaa);
523 if(pNv->exa) {
524 if(pNv->exaScreenArea) {
525 exaOffscreenFree(pScreen, pNv->exaScreenArea);
526 pNv->exaScreenArea = NULL;
533 if(pNv->int10) xf86FreeInt10(pNv->int10);
535 pci_device_unmap_range(pNv->pPci, pNv->mem, pNv->videoRam * 1024);
536 pci_device_unmap_range(pNv->pPci, (void*)pNv->reg, G80_REG_SIZE);
538 xf86UnMapVidMem(pScrn->scrnIndex, pNv->mem, pNv->videoRam * 1024);
539 xf86UnMapVidMem(pScrn->scrnIndex, (void*)pNv
541 pNv->reg = NULL;
542 pNv->mem = NULL;
546 pScreen->CloseScreen = pNv->CloseScreen;
547 pScreen->BlockHandler = pNv->BlockHandler;
556 G80Ptr pNv = G80PTR(pScrnInfo);
558 if(pNv->DMAKickoffCallback)
559 (*pNv->DMAKickoffCallback)(pScrnInfo);
563 pScreen->BlockHandler = pNv->BlockHandler;
577 G80Ptr pNv = G80PTR(pScrn);
583 for(p = &pNv->reg[0x00700000/4]; p < (const CARD32*)pNv->table1; p++)
586 bar0_pramin = pNv->reg[0x00001700/4] << 16;
588 pNv->reg[0x00000200/4] = 0xffff00ff;
589 pNv->reg[0x00000200/4] = 0xffffffff;
590 pNv->reg[0x00002100/4] = 0xffffffff;
591 pNv->reg[0x0000250c/4] = 0x6f3cfc34;
592 pNv->reg[0x00400804/4] = 0xc0000000;
593 pNv->reg[0x00406800/4] = 0xc0000000;
594 pNv->reg[0x00400c04/4] = 0xc0000000;
595 pNv->reg[0x00401800/4] = 0xc0000000;
596 pNv->reg[0x00405018/4] = 0xc0000000;
597 pNv->reg[0x00402000/4] = 0xc0000000;
598 pNv->reg[0x00400108/4] = 0xffffffff;
599 pNv->reg[0x00400100/4] = 0xffffffff;
601 if(pNv->architecture != 0x50) {
602 pNv->reg[0x00700000/4] = 0x00000001;
603 pNv->reg[0x00700004/4] = bar0_pramin + 0x00200;
604 pNv->reg[0x00700020/4] = 0x00190002;
605 pNv->reg[0x00700024/4] = bar0_pramin + 0x7ffff;
606 pNv->reg[0x00700028/4] = bar0_pramin + 0x20000;
607 pNv->reg[0x00700034/4] = 0x00010000;
609 pNv->reg[0x00700200/4] = 0x00190002;
610 pNv->reg[0x00700204/4] = bar0_pramin + 0x7ffff;
611 pNv->reg[0x00700208/4] = bar0_pramin + 0x20000;
612 pNv->reg[0x00700214/4] = 0x00010000;
615 pNv->reg[0x00710004/4] = 0x00100642;
616 pNv->reg[0x00710008/4] = 0x80000011;
617 pNv->reg[0x0071000c/4] = 0x00000644;
618 pNv->reg[0x00710010/4] = 0x80000012;
619 pNv->reg[0x00710014/4] = 0x00100646;
620 pNv->reg[0x00710018/4] = 0x80000013;
621 pNv->reg[0x0071001c/4] = 0x00100648;
622 pNv->reg[0x00710020/4] = 0x80000014;
623 pNv->reg[0x00710024/4] = 0x0000064a;
624 pNv->reg[0x00706420/4] = 0x00190030;
625 pNv->reg[0x00706434/4] = 0x00010000;
626 pNv->reg[0x00706440/4] = 0x0019003d;
627 pNv->reg[0x00706444/4] = (pNv->videoRam << 10) - 0x4001;
628 pNv->reg[0x00706448/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM;
629 pNv->reg[0x00706454/4] = 0x00010000;
630 pNv->reg[0x00706460/4] = 0x0000502d;
631 pNv->reg[0x00706474/4] = 0x00010000;
632 if(pNv->architecture == 0xaa || pNv->architecture == 0xac) {
633 uint64_t base = (uint64_t)pNv->reg[0x00100E10/4] << 12;
634 size_t size = (uint64_t)pNv->reg[0x00100E14/4] << 12;
637 pNv->reg[0x00706480/4] = 0x1a003d;
638 pNv->reg[0x00706484/4] = limit;
639 pNv->reg[0x00706488/4] = base;
640 pNv->reg[0x0070648c/4] = base >> 32 | ((limit >> 8) & 0xff000000);
642 pNv->reg[0x00706480/4] = 0x0019003d;
643 pNv->reg[0x00706484/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM;
644 pNv->reg[0x00706494/4] = 0x00010000;
646 pNv->reg[0x007064a0/4] = 0x0019003d;
647 pNv->reg[0x007064a4/4] = bar0_pramin + 0x1100f;
648 pNv->reg[0x007064a8/4] = bar0_pramin + 0x11000;
649 pNv->reg[0x007064b4/4] = 0x00010000;
651 if(pNv->architecture != 0x50) {
652 pNv->reg[0x00002604/4] = 0x80000002 | (bar0_pramin >> 8);
654 pNv->reg[0x00002604/4] = 0x80000000 | (bar0_pramin >> 12);
657 pNv->reg[0x00003224/4] = 0x000f0078;
658 pNv->reg[0x0000322c/4] = 0x00000644;
659 pNv->reg[0x00003234/4] = G80_RESERVED_VIDMEM - 0x6001;
660 pNv->reg[0x00003254/4] = 0x00000001;
661 pNv->reg[0x00002210/4] = 0x1c001000;
663 if(pNv->architecture != 0x50) {
664 pNv->reg[0x0000340c/4] = (bar0_pramin + 0x1000) >> 10;
665 pNv->reg[0x00003410/4] = (bar0_pramin >> 12);
668 pNv->reg[0x00400824/4] = 0x00004000;
669 pNv->reg[0x00400784/4] = 0x80000000 | (bar0_pramin >> 12);
670 pNv->reg[0x00400320/4] = 0x00000004;
671 pNv->reg[0x0040032C/4] = 0x80000000 | (bar0_pramin >> 12);
672 pNv->reg[0x00400500/4] = 0x00010001;
673 pNv->reg[0x00003250/4] = 0x00000001;
674 pNv->reg[0x00003200/4] = 0x00000001;
675 pNv->reg[0x00003220/4] = 0x00001001;
676 pNv->reg[0x00003204/4] = 0x00010001;
678 pNv->dmaBase = (CARD32*)(pNv->mem + (pNv->videoRam << 10) -
680 memset(pNv->dmaBase, 0, SKIPS*4);
682 pNv->dmaPut = 0;
683 pNv->dmaCurrent = SKIPS;
684 pNv->dmaMax = (G80_RESERVED_VIDMEM - 0x6000) / 4 - 2;
685 pNv->dmaFree = pNv->dmaMax - pNv->dmaCurrent;
687 G80DmaStart(pNv, 0, 1);
688 G80DmaNext (pNv, 0x80000012);
689 G80DmaStart(pNv, 0x180, 3);
690 G80DmaNext (pNv, 0x80000014);
691 G80DmaNext (pNv, 0x80000013);
692 G80DmaNext (pNv, 0x80000013);
693 G80DmaStart(pNv, 0x200, 2);
695 case 8: G80DmaNext (pNv, 0x000000f3); break;
696 case 15: G80DmaNext (pNv, 0x000000f8); break;
697 case 16: G80DmaNext (pNv, 0x000000e8); break;
698 case 24: G80DmaNext (pNv, 0x000000e6); break;
700 G80DmaNext (pNv, 0x00000001);
701 G80DmaStart(pNv, 0x214, 5);
702 G80DmaNext (pNv, pitch);
703 G80DmaNext (pNv, pitch);
704 G80DmaNext (pNv, pNv->offscreenHeight);
705 G80DmaNext (pNv, 0x00000000);
706 G80DmaNext (pNv, 0x00000000);
707 G80DmaStart(pNv, 0x230, 2);
709 case 8: G80DmaNext (pNv, 0x000000f3); break;
710 case 15: G80DmaNext (pNv, 0x000000f8); break;
711 case 16: G80DmaNext (pNv, 0x000000e8); break;
712 case 24: G80DmaNext (pNv, 0x000000e6); break;
714 G80DmaNext (pNv, 0x00000001);
715 G80DmaStart(pNv, 0x244, 5);
716 G80DmaNext (pNv, pitch);
717 G80DmaNext (pNv, pitch);
718 G80DmaNext (pNv, pNv->offscreenHeight);
719 G80DmaNext (pNv, 0x00000000);
720 G80DmaNext (pNv, 0x00000000);
721 G80DmaStart(pNv, 0x260, 1);
722 G80DmaNext (pNv, 0x00000001);
723 G80DmaStart(pNv, 0x290, 1);
724 G80DmaNext (pNv, 1);
725 G80DmaStart(pNv, 0x29c, 1);
726 G80DmaNext (pNv, 0);
727 G80DmaStart(pNv, 0x2e8, 2);
729 case 8: G80DmaNext (pNv, 3); break;
730 case 15: G80DmaNext (pNv, 1); break;
731 case 16: G80DmaNext (pNv, 0); break;
732 case 24: G80DmaNext (pNv, 2); break;
734 G80DmaNext (pNv, 1);
735 G80DmaStart(pNv, 0x584, 1);
737 case 8: G80DmaNext (pNv, 0xf3); break;
738 case 15: G80DmaNext (pNv, 0xf8); break;
739 case 16: G80DmaNext (pNv, 0xe8); break;
740 case 24: G80DmaNext (pNv, 0xe6); break;
742 G80DmaStart(pNv, 0x58c, 1);
743 G80DmaNext (pNv, 0x111);
744 G80DmaStart(pNv, 0x804, 1);
746 case 8: G80DmaNext (pNv, 0xf3); break;
747 case 15: G80DmaNext (pNv, 0xf8); break;
748 case 16: G80DmaNext (pNv, 0xe8); break;
749 case 24: G80DmaNext (pNv, 0xe6); break;
752 pNv->currentRop = ~0; /* Set to something invalid */
759 G80Ptr pNv;
766 pNv = G80PTR(pScrn);
782 if(!fbScreenInit(pScreen, pNv->mem,
809 pNv->offscreenHeight = ((pNv->videoRam << 10) - G80_RESERVED_VIDMEM) / pitch;
810 if(pNv->offscreenHeight > 32767) pNv->offscreenHeight = 32767;
813 (pNv->offscreenHeight - pScrn->virtualY) * pitch / 1024.0 / 1024.0);
818 AvailFBArea.y2 = pNv->offscreenHeight;
821 pNv->reg[0x00001708/4] = 0;
823 pNv->reg[0x00001900/4 + i] = 0;
825 if(!pNv->NoAccel) {
827 switch(pNv->AccelMethod) {
869 if(pNv->xaa) {
871 pNv->xaa->SetupForSolidFill(pScrn, 0, GXcopy, ~0);
872 pNv->xaa->SubsequentSolidFillRect(pScrn,
873 0, 0, pScrn->displayWidth, pNv->offscreenHeight);
874 G80DmaKickoff(pNv);
879 memset(pNv->mem, 0, pitch * pNv->offscreenHeight);
887 if(pNv->HWCursor && !G80CursorInit(pScreen)) {
890 pNv->HWCursor = FALSE;
895 pNv->CloseScreen = pScreen->CloseScreen;
898 pNv->BlockHandler = pScreen->BlockHandler;
927 G80Ptr pNv = G80PTR(pScrn);
931 if(pNv->xaa)