Lines Matching refs:info
78 R128InfoPtr info = R128PTR(pScrn);
80 info->drmCtx = hwContext;
100 R128InfoPtr info = R128PTR(pScrn);
103 if (info->accel) info->accel->NeedToSync = TRUE;
106 if (info->ExaDriver) exaMarkSync(pScreen);
111 if (info->have3DWindows) info->state_2d.composite_setup = FALSE;
124 R128InfoPtr info = R128PTR(pScrn);
125 unsigned char *R128MMIO = info->MMIO;
127 if (!info->directRenderingEnabled) {
129 info->sc_left = INREG(R128_SC_LEFT);
130 info->sc_right = INREG(R128_SC_RIGHT);
131 info->sc_top = INREG(R128_SC_TOP);
132 info->sc_bottom = INREG(R128_SC_BOTTOM);
133 info->aux_sc_cntl = INREG(R128_SC_BOTTOM);
134 } else if (info->CCEInUse) {
137 info->CCEInUse = FALSE;
165 R128InfoPtr info = R128PTR(pScrn);
177 if (info->directRenderingEnabled)
180 /* FIXME: This should be based on the __GLXvisualConfig info */
196 (*info->accel->SetupForSolidFill)(pScrn, 0, GXcopy, (uint32_t)(-1));
198 (*info->accel->SubsequentSolidFillRect)(pScrn,
199 pbox->x1 + info->fbX,
200 pbox->y1 + info->fbY,
203 (*info->accel->SubsequentSolidFillRect)(pScrn,
204 pbox->x1 + info->backX,
205 pbox->y1 + info->backY,
214 (*info->accel->SetupForSolidFill)(pScrn, depth, GXcopy, (uint32_t)(-1));
216 (*info->accel->SubsequentSolidFillRect)(pScrn,
217 pbox->x1 + info->depthX,
218 pbox->y1 + info->depthY,
222 info->accel->NeedToSync = TRUE;
232 R128InfoPtr info = R128PTR(pScrn);
240 if (info->directRenderingEnabled)
246 static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
248 unsigned char *R128MMIO = info->MMIO;
257 if (drmAgpAcquire(info->drmFD) < 0) {
267 mode = drmAgpGetMode(info->drmFD); /* Default mode */
268 vendor = drmAgpVendorId(info->drmFD);
269 device = drmAgpDeviceId(info->drmFD);
272 switch (info->agpMode) {
281 PCI_DEV_VENDOR_ID(info->PciInfo),
282 PCI_DEV_DEVICE_ID(info->PciInfo));
284 if (drmAgpEnable(info->drmFD, mode) < 0) {
286 drmAgpRelease(info->drmFD);
290 info->agpOffset = 0;
292 if ((ret = drmAgpAlloc(info->drmFD, info->agpSize*1024*1024, 0, NULL,
293 &info->agpMemHandle)) < 0) {
295 drmAgpRelease(info->drmFD);
300 info->agpSize*1024, info->agpMemHandle);
302 if (drmAgpBind(info->drmFD, info->agpMemHandle, info->agpOffset) < 0) {
304 drmAgpFree(info->drmFD, info->agpMemHandle);
305 drmAgpRelease(info->drmFD);
310 info->ringStart = info->agpOffset;
311 info->ringMapSize = info->ringSize*1024*1024 + r128_drm_page_size;
312 info->ringSizeLog2QW = R128MinBits(info->ringSize*1024*1024/8) - 1;
314 info->ringReadOffset = info->ringStart + info->ringMapSize;
315 info->ringReadMapSize = r128_drm_page_size;
318 info->bufStart = info->ringReadOffset + info->ringReadMapSize;
319 info->bufMapSize = info->bufSize*1024*1024;
322 info->agpTexStart = info->bufStart + info->bufMapSize;
323 s = (info->agpSize*1024*1024 - info->agpTexStart);
326 info->agpTexMapSize = (s >> l) << l;
327 info->log2AGPTexGran = l;
329 if (info->CCESecure) flags = DRM_READ_ONLY;
332 if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,
333 DRM_AGP, flags, &info->ringHandle) < 0) {
339 "[agp] ring handle = 0x%08x\n", info->ringHandle);
341 if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
342 &info->ring) < 0) {
348 (unsigned long)info->ring);
350 if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,
351 DRM_AGP, flags, &info->ringReadPtrHandle) < 0) {
358 info->ringReadPtrHandle);
360 if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
361 &info->ringReadPtr) < 0) {
368 (unsigned long)info->ringReadPtr);
370 if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,
371 DRM_AGP, 0, &info->bufHandle) < 0) {
378 info->bufHandle);
380 if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
381 &info->buf) < 0) {
388 (unsigned long)info->buf);
390 if (drmAddMap(info->drmFD, info->agpTexStart, info->agpTexMapSize,
391 DRM_AGP, 0, &info->agpTexHandle) < 0) {
398 info->agpTexHandle);
400 if (drmMap(info->drmFD, info->agpTexHandle, info->agpTexMapSize,
401 &info->agpTex) < 0) {
408 (unsigned long)info->agpTex);
413 switch (info->agpSize) {
424 info->agpSize*1024);
427 agpBase = drmAgpBase(info->drmFD);
443 static Bool R128DRIPciInit(R128InfoPtr info, ScreenPtr pScreen)
445 unsigned char *R128MMIO = info->MMIO;
450 info->agpOffset = 0;
452 ret = drmScatterGatherAlloc(info->drmFD, info->agpSize*1024*1024,
453 &info->pciMemHandle);
460 info->agpSize*1024, info->pciMemHandle);
463 info->ringStart = info->agpOffset;
464 info->ringMapSize = info->ringSize*1024*1024 + r128_drm_page_size;
465 info->ringSizeLog2QW = R128MinBits(info->ringSize*1024*1024/8) - 1;
467 info->ringReadOffset = info->ringStart + info->ringMapSize;
468 info->ringReadMapSize = r128_drm_page_size;
471 info->bufStart = info->ringReadOffset + info->ringReadMapSize;
472 info->bufMapSize = info->bufSize*1024*1024;
476 if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,
477 DRM_SCATTER_GATHER, flags, &info->ringHandle) < 0) {
483 "[pci] ring handle = 0x%08x\n", info->ringHandle);
485 if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
486 &info->ring) < 0) {
492 (unsigned long)info->ring);
495 *(unsigned long *)(pointer)info->ring);
497 if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,
498 DRM_SCATTER_GATHER, flags, &info->ringReadPtrHandle) < 0) {
505 info->ringReadPtrHandle);
507 if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
508 &info->ringReadPtr) < 0) {
515 (unsigned long)info->ringReadPtr);
518 *(unsigned long *)(pointer)info->ringReadPtr);
520 if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,
521 DRM_SCATTER_GATHER, 0, &info->bufHandle) < 0) {
528 info->bufHandle);
530 if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
531 &info->buf) < 0) {
538 (unsigned long)info->buf);
541 *(unsigned long *)(pointer)info->buf);
543 switch (info->Chipset) {
614 static Bool R128DRIMapInit(R128InfoPtr info, ScreenPtr pScreen)
618 if (info->CCESecure) flags = DRM_READ_ONLY;
622 info->registerSize = R128_MMIOSIZE;
623 if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize,
624 DRM_REGISTERS, flags, &info->registerHandle) < 0) {
628 "[drm] register handle = 0x%08x\n", info->registerHandle);
634 static int R128DRIKernelInit(R128InfoPtr info, ScreenPtr pScreen)
642 drmInfo.is_pci = info->IsPCI;
643 drmInfo.cce_mode = info->CCEMode;
644 drmInfo.cce_secure = info->CCESecure;
645 drmInfo.ring_size = info->ringSize*1024*1024;
646 drmInfo.usec_timeout = info->CCEusecTimeout;
648 drmInfo.fb_bpp = info->CurrentLayout.pixel_code;
649 drmInfo.depth_bpp = info->CurrentLayout.pixel_code;
651 drmInfo.front_offset = info->frontOffset;
652 drmInfo.front_pitch = info->frontPitch;
654 drmInfo.back_offset = info->backOffset;
655 drmInfo.back_pitch = info->backPitch;
657 drmInfo.depth_offset = info->depthOffset;
658 drmInfo.depth_pitch = info->depthPitch;
659 drmInfo.span_offset = info->spanOffset;
661 drmInfo.fb_offset = info->fbHandle;
662 drmInfo.mmio_offset = info->registerHandle;
663 drmInfo.ring_offset = info->ringHandle;
664 drmInfo.ring_rptr_offset = info->ringReadPtrHandle;
665 drmInfo.buffers_offset = info->bufHandle;
666 drmInfo.agp_textures_offset = info->agpTexHandle;
668 if (drmCommandWrite(info->drmFD, DRM_R128_INIT,
677 static Bool R128DRIBufInit(R128InfoPtr info, ScreenPtr pScreen)
680 if (info->IsPCI) {
681 info->bufNumBufs = drmAddBufs(info->drmFD,
682 info->bufMapSize / R128_BUFFER_SIZE,
685 info->bufStart);
687 info->bufNumBufs = drmAddBufs(info->drmFD,
688 info->bufMapSize / R128_BUFFER_SIZE,
691 info->bufStart);
693 if (info->bufNumBufs <= 0) {
700 info->bufNumBufs, R128_BUFFER_SIZE);
702 if (!(info->buffers = drmMapBufs(info->drmFD))) {
709 info->buffers->count);
714 static void R128DRIIrqInit(R128InfoPtr info, ScreenPtr pScreen)
718 if (!info->irq) {
719 info->irq = drmGetInterruptFromBusID(
720 info->drmFD,
721 PCI_CFG_BUS(info->PciInfo),
722 PCI_CFG_DEV(info->PciInfo),
723 PCI_CFG_FUNC(info->PciInfo));
725 if((drmCtlInstHandler(info->drmFD, info->irq)) != 0) {
730 info->irq = 0;
732 unsigned char *R128MMIO = info->MMIO;
733 info->gen_int_cntl = INREG( R128_GEN_INT_CNTL );
737 if (info->irq)
740 info->irq);
746 R128InfoPtr info = R128PTR(pScrn);
749 info->BusCntl &= ~R128_BUS_MASTER_DIS;
752 switch (info->CCEMode) {
753 case R128_PM4_NONPM4: info->CCEFifoSize = 0; break;
754 case R128_PM4_192PIO: info->CCEFifoSize = 192; break;
755 case R128_PM4_192BM: info->CCEFifoSize = 192; break;
756 case R128_PM4_128PIO_64INDBM: info->CCEFifoSize = 128; break;
757 case R128_PM4_128BM_64INDBM: info->CCEFifoSize = 128; break;
758 case R128_PM4_64PIO_128INDBM: info->CCEFifoSize = 64; break;
759 case R128_PM4_64BM_128INDBM: info->CCEFifoSize = 64; break;
760 case R128_PM4_64PIO_64VCBM_64INDBM: info->CCEFifoSize = 64; break;
761 case R128_PM4_64BM_64VCBM_64INDBM: info->CCEFifoSize = 64; break;
762 case R128_PM4_64PIO_64VCPIO_64INDPIO: info->CCEFifoSize = 64; break;
765 if (info->directRenderingEnabled) {
767 R128CCE_START(pScrn, info);
770 R128CCE_STOP(pScrn, info);
781 R128InfoPtr info = R128PTR(pScrn);
808 switch (info->CurrentLayout.pixel_code) {
815 "[dri] Disabling DRI.\n", info->CurrentLayout.pixel_code);
830 info->pDRIInfo = pDRIInfo;
834 pDRIInfo->busIdString = DRICreatePCIBusID(info->PciInfo);
839 PCI_DEV_BUS(info->PciInfo),
840 PCI_DEV_DEV(info->PciInfo),
841 PCI_DEV_FUNC(info->PciInfo));
846 pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr;
847 pDRIInfo->frameBufferSize = info->FbMapSize;
849 info->CurrentLayout.pixel_bytes);
876 DRIDestroyInfoRec(info->pDRIInfo);
877 info->pDRIInfo = NULL;
898 if (!DRIScreenInit(pScreen, pDRIInfo, &info->drmFD)) {
913 version = drmGetLibVersion(info->drmFD);
920 version = drmGetVersion(info->drmFD);
945 version = drmGetVersion(info->drmFD);
961 info->drmMinor = version->version_minor;
966 if (!info->IsPCI && !R128DRIAgpInit(info, pScreen)) {
967 info->IsPCI = TRUE;
975 if (info->IsPCI && !R128DRIPciInit(info, pScreen)) {
983 if (!R128DRIMapInit(info, pScreen)) {
994 DRIGetDeviceInfo(pScreen, &info->fbHandle,
1013 R128InfoPtr info = R128PTR(pScrn);
1017 info->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
1018 /* info->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */
1030 if (!R128DRIKernelInit(info, pScreen)) {
1036 if (!R128DRIBufInit(info, pScreen)) {
1042 R128DRIIrqInit(info, pScreen);
1050 pR128DRI = (R128DRIPtr)info->pDRIInfo->devPrivate;
1052 pR128DRI->deviceID = info->Chipset;
1058 pR128DRI->IsPCI = info->IsPCI;
1059 pR128DRI->AGPMode = info->agpMode;
1061 pR128DRI->frontOffset = info->frontOffset;
1062 pR128DRI->frontPitch = info->frontPitch;
1063 pR128DRI->backOffset = info->backOffset;
1064 pR128DRI->backPitch = info->backPitch;
1065 pR128DRI->depthOffset = info->depthOffset;
1066 pR128DRI->depthPitch = info->depthPitch;
1067 pR128DRI->spanOffset = info->spanOffset;
1068 pR128DRI->textureOffset = info->textureOffset;
1069 pR128DRI->textureSize = info->textureSize;
1070 pR128DRI->log2TexGran = info->log2TexGran;
1072 pR128DRI->registerHandle = info->registerHandle;
1073 pR128DRI->registerSize = info->registerSize;
1075 pR128DRI->agpTexHandle = info->agpTexHandle;
1076 pR128DRI->agpTexMapSize = info->agpTexMapSize;
1077 pR128DRI->log2AGPTexGran = info->log2AGPTexGran;
1078 pR128DRI->agpTexOffset = info->agpTexStart;
1082 if (info->allowPageFlip && info->drmMinor >= 5 ) {
1084 } else if (info->allowPageFlip) {
1087 info->allowPageFlip = 0;
1098 R128InfoPtr info = R128PTR(pScrn);
1102 if (info->directRenderingEnabled) {
1103 R128CCE_STOP(pScrn, info);
1106 if (info->irq) {
1107 drmCtlUninstHandler(info->drmFD);
1108 info->irq = 0;
1109 info->gen_int_cntl = 0;
1113 if (info->buffers) {
1114 drmUnmapBufs(info->buffers);
1115 info->buffers = NULL;
1121 drmCommandWrite(info->drmFD, DRM_R128_INIT,
1125 if (info->agpTex) {
1126 drmUnmap(info->agpTex, info->agpTexMapSize);
1127 info->agpTex = NULL;
1129 if (info->buf) {
1130 drmUnmap(info->buf, info->bufMapSize);
1131 info->buf = NULL;
1133 if (info->ringReadPtr) {
1134 drmUnmap(info->ringReadPtr, info->ringReadMapSize);
1135 info->ringReadPtr = NULL;
1137 if (info->ring) {
1138 drmUnmap(info->ring, info->ringMapSize);
1139 info->ring = NULL;
1141 if (info->agpMemHandle != DRM_AGP_NO_HANDLE) {
1142 drmAgpUnbind(info->drmFD, info->agpMemHandle);
1143 drmAgpFree(info->drmFD, info->agpMemHandle);
1144 info->agpMemHandle = DRM_AGP_NO_HANDLE;
1145 drmAgpRelease(info->drmFD);
1147 if (info->pciMemHandle) {
1148 drmScatterGatherFree(info->drmFD, info->pciMemHandle);
1149 info->pciMemHandle = 0;
1156 if (info->pDRIInfo) {
1157 if (info->pDRIInfo->devPrivate) {
1158 free(info->pDRIInfo->devPrivate);
1159 info->pDRIInfo->devPrivate = NULL;
1161 DRIDestroyInfoRec(info->pDRIInfo);
1162 info->pDRIInfo = NULL;
1184 R128InfoPtr info = R128PTR(pScrn);
1196 if (!info->useEXA) {
1197 (*info->accel->SetupForScreenToScreenCopy)(pScrn,
1203 if (info->useEXA) {
1207 dst_pitch_offset = src_pitch_offset + (info->backOffset >> 5);
1209 info->xdir = info->ydir = 1;
1221 if (!info->useEXA) {
1222 (*info->accel->SubsequentScreenToScreenCopy)(pScrn, xa, ya,
1223 xa + info->backX,
1224 ya + info->backY,
1230 if (info->useEXA) {
1231 (*info->ExaDriver->Copy)(pPix, xa, ya, xa, ya, xb - xa + 1, yb - ya + 1);
1241 R128InfoPtr info = R128PTR(pScrn);
1245 if (info->allowPageFlip) {
1248 if (!info->useEXA) {
1249 (*info->accel->SetupForScreenToScreenCopy)(pScrn,
1253 (*info->accel->SubsequentScreenToScreenCopy)(pScrn,
1256 info->backX,
1257 info->backY,
1263 if (info->useEXA) {
1267 dst_pitch_offset = src_pitch_offset + (info->backOffset >> 5);
1269 info->xdir = info->ydir = 1;
1273 (*info->ExaDriver->Copy)(pPix, 0, 0, 0, 0, pScrn->virtualX, pScrn->virtualY);
1306 R128InfoPtr info = R128PTR(pScrn);
1310 info->have3DWindows = 1;
1316 R128InfoPtr info = R128PTR(pScrn);
1321 drmCommandNone(info->drmFD, DRM_R128_FLIP);
1332 info->have3DWindows = 0;