Bool fbdevHWEnterVT(ScrnInfoPtr pScrn) { if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) return FALSE; fbdevHWAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0); return TRUE; }
Bool fbdevHWEnterVT(int scrnIndex, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; TRACE_ENTER("EnterVT"); if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) return FALSE; fbdevHWAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); return TRUE; }
Bool imxDisplayStartScreenInit(int scrnIndex, ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr fPtr = IMXPTR(pScrn); if (!xf86SetDesiredModes(pScrn)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); return FALSE; } #if 0 if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); return FALSE; } pScrn->displayWidth = fbdevHWGetLineLength(pScrn) / (pScrn->bitsPerPixel / 8); #else pScrn->vtSema = TRUE; /* Access the fd for the FB driver */ int fdDev = fbdevHWGetFD(pScrn); if (-1 == fdDev) { return FALSE; } /* Access from fix screen info */ struct fb_fix_screeninfo fbFixScreenInfo; if (-1 == ioctl(fdDev, FBIOGET_FSCREENINFO, &fbFixScreenInfo)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ioctl error on FBIOGET_FSCREENINFO: %s\n", strerror(errno)); return FALSE; } int lineLength = fbFixScreenInfo.line_length; /* Access from var screen info */ struct fb_var_screeninfo fbVarScreenInfo; if (-1 == ioctl(fdDev, FBIOGET_VSCREENINFO, &fbVarScreenInfo)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ioctl error on FBIOGET_VSCREENINFO: %s\n", strerror(errno)); return FALSE; } if (lineLength <= 0) { lineLength = fbVarScreenInfo.xres_virtual * fbVarScreenInfo.bits_per_pixel / 8; } pScrn->displayWidth = lineLength / (pScrn->bitsPerPixel / 8); if ((TrueColor == pScrn->defaultVisual) || (DirectColor == pScrn->defaultVisual)) { pScrn->offset.red = fbVarScreenInfo.red.offset; pScrn->offset.green = fbVarScreenInfo.green.offset; pScrn->offset.blue = fbVarScreenInfo.blue.offset; pScrn->mask.red = ((1 << fbVarScreenInfo.red.length) - 1) << fbVarScreenInfo.red.offset; pScrn->mask.green = ((1 << fbVarScreenInfo.green.length) - 1) << fbVarScreenInfo.green.offset; pScrn->mask.blue = ((1 << fbVarScreenInfo.blue.length) - 1) << fbVarScreenInfo.blue.offset; } #endif xf86SaveScreen(pScreen, SCREEN_SAVER_ON); return TRUE; }