CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Mon Dec 30 18:27:50 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Add missing newlines in log messages. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.36 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.37 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.36 Wed Dec 25 14:36:34 2019 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Mon Dec 30 18:27:50 2019 @@ -611,12 +611,12 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags if (xf86ReturnOptValBool(fPtr->Options, OPTION_SHADOW_FB, FALSE)) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Shadow FB option ignored on depth < 8"); + "Shadow FB option ignored on depth < 8\n"); } if (fPtr->fbi.fbi_flags & WSFB_VRAM_IS_SPLIT) { if (!fPtr->shadowFB) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Shadow FB forced on for split framebuffer"); + "Shadow FB forced on for split framebuffer\n"); fPtr->shadowFB = TRUE; } } @@ -649,7 +649,7 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags } } else { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Option \"Rotate\" ignored on depth < 8"); + "Option \"Rotate\" ignored on depth < 8\n"); } } @@ -1037,7 +1037,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) break; default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unsupported bpp: %d", pScrn->bitsPerPixel); + "Unsupported bpp: %d\n", pScrn->bitsPerPixel); return FALSE; } /* case */ @@ -1062,7 +1062,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) if (pScrn->bitsPerPixel >= 8) { if (!fbPictureInit(pScreen, NULL, 0)) xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "RENDER extension initialisation failed."); + "RENDER extension initialisation failed.\n"); } if (fPtr->shadowFB && !WsfbShadowInit(pScreen)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Wed Dec 25 14:36:34 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Fix Xorg wsfb server "Rotate" corruption problem. PR xsrc/54167 Confirmed on zaurus SL-C1000, SL-C3000 (CW) and hpcarm WS003SH (CCW). Should be pulled up to netbsd-8 and netbsd-9. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.35 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.36 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.35 Tue Jul 23 12:01:53 2019 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Wed Dec 25 14:36:34 2019 @@ -875,6 +875,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) int ret, flags, ncolors; int wsmode = WSDISPLAYIO_MODE_DUMBFB; int wstype; + int width; size_t len; TRACE_ENTER("WsfbScreenInit"); @@ -979,7 +980,17 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) fPtr->fbstart = fPtr->fbmem + fPtr->fbi.fbi_fboffset; if (fPtr->shadowFB) { - fPtr->shadow = calloc(1, fPtr->fbi.fbi_stride * pScrn->virtualY); + if (fPtr->rotate) { + /* + * Note Rotate and Shadow FB options are valid + * only on depth >= 8. + */ + len = pScrn->virtualX * pScrn->virtualY * + (pScrn->bitsPerPixel >> 3); + } else { + len = fPtr->fbi.fbi_stride * pScrn->virtualY; + } + fPtr->shadow = calloc(1, len); if (!fPtr->shadow) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -988,13 +999,29 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) } } + /* + * fbScreenInit() seems to require "pixel width of frame buffer" + * but it is actually "stride in pixel" of frame buffer, + * per xorg/xserver/tree/fb/fbscreen.c. + */ + if (fPtr->rotate) { + width = pScrn->displayWidth; + } else { + if (pScrn->bitsPerPixel > 8) { + width = + fPtr->fbi.fbi_stride / (pScrn->bitsPerPixel >> 3); + } else { + width = + fPtr->fbi.fbi_stride * (8 / pScrn->bitsPerPixel); + } + } switch (pScrn->bitsPerPixel) { case 1: ret = fbScreenInit(pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, - fPtr->fbi.fbi_stride * 8, pScrn->bitsPerPixel); + width, pScrn->bitsPerPixel); break; case 4: case 8: @@ -1005,8 +1032,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) fPtr->shadowFB ? fPtr->shadow : fPtr->fbstart, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, - /* apparently fb wants stride in pixels, not bytes */ - fPtr->fbi.fbi_stride / (pScrn->bitsPerPixel >> 3), + width, pScrn->bitsPerPixel); break; default:
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: jmcneill Date: Sun Feb 3 17:11:49 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: The modesetting driver and wsfb access the same hardware but through different interfaces (/dev/dri/card0 vs /dev/ttyE0). To prevent both drivers from being active at once, skip wsfb probe if the modesetting driver has claimed the fb slot. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.32 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.33 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.32 Mon Dec 31 13:02:41 2018 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sun Feb 3 17:11:49 2019 @@ -368,6 +368,13 @@ WsfbProbe(DriverPtr drv, int flags) )) <= 0) return FALSE; + /* Do not attach if the modesetting driver is active */ + if (fbSlotClaimed == TRUE) { + DriverPtr fbSlotDrv = xf86GetEntityInfo(0)->driver; + if (strcmp(fbSlotDrv->driverName, "modesetting") == 0) + return FALSE; + } + for (i = 0; i < numDevSections; i++) { ScrnInfoPtr pScrn = NULL;
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Sun Jul 22 14:54:32 UTC 2018 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: actually use wsdisplayio_fbinfo::fbi_fboffset To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.29 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.30 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.29 Fri Mar 24 00:57:33 2017 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sun Jul 22 14:54:32 2018 @@ -501,8 +501,10 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags } fbi->fbi_flags = 0; fbi->fbi_fbsize = lb * info.height; + fbi->fbi_fboffset = 0; } + xf86Msg(X_INFO, "fboffset %x\n", fPtr->fbi.fbi_fboffset); /* * Allocate room for saving the colormap. */ @@ -958,7 +960,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) pScrn->PointerMoved = WsfbPointerMoved; } - fPtr->fbstart = fPtr->fbmem; + fPtr->fbstart = fPtr->fbmem + fPtr->fbi.fbi_fboffset; #ifdef WSDISPLAY_TYPE_LUNA if (wstype == WSDISPLAY_TYPE_LUNA) { /*
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Fri Mar 24 00:57:33 UTC 2017 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: support WSFB_VRAM_IS_SPLIT workaround for wildcat boards - use a shadow fb and copy dirty areas into both framebuffers now we can use X on Sun XVR-1200 should work on XVR-500 and others as well To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.28 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.29 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.28 Tue Aug 16 06:28:25 2016 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Fri Mar 24 00:57:33 2017 @@ -141,6 +141,7 @@ static Bool WsfbDGAInit(ScrnInfoPtr, Scr #endif static void WsfbShadowUpdateSwap32(ScreenPtr, shadowBufPtr); +static void WsfbShadowUpdateSplit(ScreenPtr, shadowBufPtr); static Bool WsfbDriverFunc(ScrnInfoPtr, xorgDriverFuncOp, pointer); @@ -595,7 +596,13 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Shadow FB option ignored on depth < 8"); } - + if (fPtr->fbi.fbi_flags & WSFB_VRAM_IS_SPLIT) { + if (!fPtr->shadowFB) { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Shadow FB forced on for split framebuffer"); + fPtr->shadowFB = TRUE; + } + } /* Rotation */ fPtr->rotate = WSFB_ROTATE_NONE; if ((s = xf86GetOptValString(fPtr->Options, OPTION_ROTATE))) { @@ -801,6 +808,7 @@ WsfbCreateScreenResources(ScreenPtr pScr WsfbPtr fPtr = WSFBPTR(pScrn); PixmapPtr pPixmap; Bool ret; + void (*shadowproc)(ScreenPtr, shadowBufPtr); pScreen->CreateScreenResources = fPtr->CreateScreenResources; ret = pScreen->CreateScreenResources(pScreen); @@ -810,10 +818,16 @@ WsfbCreateScreenResources(ScreenPtr pScr return FALSE; pPixmap = pScreen->GetScreenPixmap(pScreen); - - if (!shadowAdd(pScreen, pPixmap, fPtr->rotate ? - shadowUpdateRotatePackedWeak() : (fPtr->useSwap32 ? - WsfbShadowUpdateSwap32 : shadowUpdatePackedWeak()), + if (fPtr->fbi.fbi_flags & WSFB_VRAM_IS_SPLIT) { + shadowproc = WsfbShadowUpdateSplit; + } else if (fPtr->useSwap32) { + shadowproc = WsfbShadowUpdateSwap32; + } else if (fPtr->rotate) { + shadowproc = shadowUpdateRotatePacked; + } else + shadowproc = shadowUpdatePacked; + + if (!shadowAdd(pScreen, pPixmap, shadowproc, WsfbWindowLinear, fPtr->rotate, NULL)) { return FALSE; } @@ -905,6 +919,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) strerror(errno)); return FALSE; } + len = max(len, fPtr->fbi.fbi_fbsize); fPtr->fbmem = wsfb_mmap(len, 0, fPtr->fd); if (fPtr->fbmem == NULL) { @@ -957,8 +972,7 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) #endif if (fPtr->shadowFB) { - fPtr->shadow = calloc(1, pScrn->virtualX * pScrn->virtualY * - pScrn->bitsPerPixel/8); + fPtr->shadow = calloc(1, fPtr->fbi.fbi_stride * pScrn->virtualY); if (!fPtr->shadow) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -984,7 +998,9 @@ WsfbScreenInit(SCREEN_INIT_ARGS_DECL) fPtr->shadowFB ? fPtr->shadow : fPtr->fbstart, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, - pScrn->displayWidth, pScrn->bitsPerPixel); + /* apparently fb wants stride in pixels, not bytes */ + fPtr->fbi.fbi_stride / (pScrn->bitsPerPixel >> 3), + pScrn->bitsPerPixel); break; default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -1681,3 +1697,77 @@ WsfbShadowUpdateSwap32(ScreenPtr pScreen } } +void +WsfbShadowUpdateSplit(ScreenPtr pScreen, shadowBufPtr pBuf) +{ +ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; +WsfbPtr fPtr = WSFBPTR(pScrn); +RegionPtr damage = shadowDamage (pBuf); +PixmapPtr pShadow = pBuf->pPixmap; +int nbox = RegionNumRects (damage); +BoxPtr pbox = RegionRects (damage); +FbBits *shaBase, *shaLine, *sha; +FbStride shaStride; +int scrBase, scrLine, scr; +int shaBpp; +int shaXoff, shaYoff; /* XXX assumed to be zero */ +int x, y, w, h, width; +int i; +FbBits *winBase = NULL, *win, *win2; +unsigned long split = fPtr->fbi.fbi_fbsize / 2; +CARD32 winSize; + +fbGetDrawable (>drawable, shaBase, shaStride, shaBpp, shaXoff, shaYoff); +while (nbox--) +{ + x = pbox->x1 * shaBpp; + y = pbox->y1; + w = (pbox->x2 - pbox->x1) * shaBpp; + h = pbox->y2 - pbox->y1; + + scrLine = (x >> FB_SHIFT); + shaLine = shaBase + y * shaStride + (x >> FB_SHIFT); + + x &= FB_MASK; + w = (w + x + FB_MASK) >> FB_SHIFT; + + while (h--) + { + winSize = 0; + scrBase = 0; + width = w; + scr = scrLine; + sha = shaLine; + while (width) { + /* how much
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mrg Date: Tue Aug 16 06:28:25 UTC 2016 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb.h wsfb_driver.c Added Files: xsrc/external/mit/xf86-video-wsfb/dist/src: compat-api.h Log Message: port xf86-video-wsfb to compat-api.h style interfaces To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 \ xsrc/external/mit/xf86-video-wsfb/dist/src/compat-api.h cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h cvs rdiff -u -r1.27 -r1.28 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.5 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.6 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.5 Wed Feb 17 18:51:41 2016 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h Tue Aug 16 06:28:25 2016 @@ -41,6 +41,8 @@ #include #include +#include "compat-api.h" + #include "xf86.h" #include "xf86_OSproc.h" @@ -63,7 +65,7 @@ typedef struct { Bool useSwap32; CloseScreenProcPtr CloseScreen; CreateScreenResourcesProcPtr CreateScreenResources; - void(*PointerMoved)(int, int, int); + void(*PointerMoved)(SCRN_ARG_TYPE, int, int); EntityInfoPtr pEnt; struct wsdisplay_cmap saved_cmap; Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.27 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.28 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.27 Tue Aug 16 01:27:48 2016 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Tue Aug 16 06:28:25 2016 @@ -117,15 +117,15 @@ static const OptionInfoRec * WsfbAvailab static void WsfbIdentify(int); static Bool WsfbProbe(DriverPtr, int); static Bool WsfbPreInit(ScrnInfoPtr, int); -static Bool WsfbScreenInit(int, ScreenPtr, int, char **); -static Bool WsfbCloseScreen(int, ScreenPtr); +static Bool WsfbScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool WsfbCloseScreen(CLOSE_SCREEN_ARGS_DECL); static void *WsfbWindowLinear(ScreenPtr, CARD32, CARD32, int, CARD32 *, void *); -static void WsfbPointerMoved(int, int, int); -static Bool WsfbEnterVT(int, int); -static void WsfbLeaveVT(int, int); -static Bool WsfbSwitchMode(int, DisplayModePtr, int); -static int WsfbValidMode(int, DisplayModePtr, Bool, int); +static void WsfbPointerMoved(SCRN_ARG_TYPE, int, int); +static Bool WsfbEnterVT(VT_FUNC_ARGS_DECL); +static void WsfbLeaveVT(VT_FUNC_ARGS_DECL); +static Bool WsfbSwitchMode(SWITCH_MODE_ARGS_DECL); +static int WsfbValidMode(SCRN_ARG_TYPE, DisplayModePtr, Bool, int); static void WsfbLoadPalette(ScrnInfoPtr, int, int *, LOCO *, VisualPtr); static Bool WsfbSaveScreen(ScreenPtr, int); static void WsfbSave(ScrnInfoPtr); @@ -408,8 +408,8 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags { WsfbPtr fPtr; int default_depth, bitsperpixel, wstype; - const char *dev; - char *mod = NULL, *s; + const char *dev, *s; + char *mod = NULL; const char *reqSym = NULL; Gamma zeros = {0.0, 0.0, 0.0}; DisplayModePtr mode; @@ -836,7 +836,7 @@ WsfbShadowInit(ScreenPtr pScreen) } static Bool -WsfbScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +WsfbScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; WsfbPtr fPtr = WSFBPTR(pScrn); @@ -1016,7 +1016,7 @@ WsfbScreenInit(int scrnIndex, ScreenPtr "RENDER extension initialisation failed."); } if (fPtr->shadowFB && !WsfbShadowInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "shadow framebuffer initialization failed\n"); return FALSE; } @@ -1025,15 +1025,15 @@ WsfbScreenInit(int scrnIndex, ScreenPtr if (!fPtr->rotate) WsfbDGAInit(pScrn, pScreen); else - xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, " + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rotated display, " "disabling DGA\n"); #endif if (fPtr->rotate) { - xf86DrvMsg(scrnIndex, X_INFO, "Enabling Driver Rotation, " + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enabling Driver Rotation, " "disabling RandR\n"); xf86DisableRandR(); if (pScrn->bitsPerPixel == 24) - xf86DrvMsg(scrnIndex, X_WARNING, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n"); } @@ -1123,9 +1123,9 @@ WsfbScreenInit(int scrnIndex, ScreenPtr } static Bool -WsfbCloseScreen(int scrnIndex, ScreenPtr pScreen) +WsfbCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); PixmapPtr pPixmap; WsfbPtr fPtr = WSFBPTR(pScrn); @@ -1157,7 +1157,7 @@ WsfbCloseScreen(int scrnIndex, ScreenPtr /* Unwrap CloseScreen. */
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Feb 17 18:51:41 UTC 2016 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb.h wsfb_driver.c Log Message: add a shadowfb update function which endian-swaps 32bit pixels, use if we have hardware with BGRA pixel format ( like a wrong-endian ARGB framebuffer ) with this applications that use xrender work properly on things like mgx in 32bit colour To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h cvs rdiff -u -r1.25 -r1.26 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.4 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.5 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.4 Thu Jan 31 11:18:01 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h Wed Feb 17 18:51:41 2016 @@ -60,6 +60,7 @@ typedef struct { void * shadow; Bool shadowFB; Bool HWCursor; + Bool useSwap32; CloseScreenProcPtr CloseScreen; CreateScreenResourcesProcPtr CreateScreenResources; void(*PointerMoved)(int, int, int); Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.25 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.26 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.25 Mon Jul 21 19:03:03 2014 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Wed Feb 17 18:51:41 2016 @@ -140,8 +140,10 @@ static Bool WsfbDGASetMode(ScrnInfoPtr, static void WsfbDGASetViewport(ScrnInfoPtr, int, int, int); static Bool WsfbDGAInit(ScrnInfoPtr, ScreenPtr); #endif -static Bool WsfbDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, -pointer ptr); + +static void WsfbShadowUpdateSwap32(ScreenPtr, shadowBufPtr); + +static Bool WsfbDriverFunc(ScrnInfoPtr, xorgDriverFuncOp, pointer); /* Helper functions */ static int wsfb_open(const char *); @@ -573,6 +575,63 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags if (pScrn->depth == 24 && pix24bpp == 0) pix24bpp = xf86GetBppFromDepth(pScrn, 24); + /* Handle options. */ + xf86CollectOptions(pScrn, NULL); + fPtr->Options = (OptionInfoRec *)malloc(sizeof(WsfbOptions)); + if (fPtr->Options == NULL) + return FALSE; + memcpy(fPtr->Options, WsfbOptions, sizeof(WsfbOptions)); + xf86ProcessOptions(pScrn->scrnIndex, fPtr->pEnt->device->options, + fPtr->Options); + + /* Use shadow framebuffer by default, on depth >= 8 */ + xf86Msg(X_INFO, "fbi_flags: %x\n", fPtr->fbi.fbi_flags); + if ((pScrn->depth >= 8) && + ((fPtr->fbi.fbi_flags & WSFB_VRAM_IS_RAM) == 0)) { + fPtr->shadowFB = xf86ReturnOptValBool(fPtr->Options, + OPTION_SHADOW_FB, TRUE); + } else + if (xf86ReturnOptValBool(fPtr->Options, + OPTION_SHADOW_FB, FALSE)) { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Shadow FB option ignored on depth < 8"); + } + + /* Rotation */ + fPtr->rotate = WSFB_ROTATE_NONE; + if ((s = xf86GetOptValString(fPtr->Options, OPTION_ROTATE))) { + if (pScrn->depth >= 8) { + if (!xf86NameCmp(s, "CW")) { +fPtr->shadowFB = TRUE; +fPtr->rotate = WSFB_ROTATE_CW; +xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, +"Rotating screen clockwise\n"); + } else if (!xf86NameCmp(s, "CCW")) { +fPtr->shadowFB = TRUE; +fPtr->rotate = WSFB_ROTATE_CCW; +xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, +"Rotating screen counter clockwise\n"); + } else if (!xf86NameCmp(s, "UD")) { +fPtr->shadowFB = TRUE; +fPtr->rotate = WSFB_ROTATE_UD; +xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, +"Rotating screen upside down\n"); + } else { +xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, +"\"%s\" is not a valid value for Option " +"\"Rotate\"\n", s); +xf86DrvMsg(pScrn->scrnIndex, X_INFO, +"Valid options are \"CW\", \"CCW\"," +" or \"UD\"\n"); + } + } else { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Option \"Rotate\" ignored on depth < 8"); + } + } + + + fPtr->useSwap32 = FALSE; /* Color weight */ if (fPtr->fbi.fbi_pixeltype == WSFB_RGB) { rgb zeros = { 0, 0, 0 }, masks; @@ -580,6 +639,28 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags if (fPtr->fbi.fbi_subtype.fbi_rgbmasks.red_size > 0) { uint32_t msk; + /* + * see if we need to byte-swap pixels + * XXX this requires a shadow FB and is incompatible + * (for now ) with rotation + */ + if ((fPtr->fbi.fbi_bitsperpixel == 32) && + (fPtr->fbi.fbi_subtype.fbi_rgbmasks.blue_offset == 24) && + (fPtr->rotate == WSFB_ROTATE_NONE) && + (fPtr->shadowFB == TRUE)) { + /* + * looks like BGRA - set the swap flag and flip + * the offsets + */ + xf86Msg(X_INFO,
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Mon Jul 21 19:03:03 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Add kludge to use luna68k 4/8bpp framebuffers as a monochrome server. The idea is taken from mlterm-fb --depth option implementation. This change should not affect other framebuffer types. Tested on 4bpp on LUNA and 1bpp/8bpp on LUNA-II. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.24 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.25 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.24 Sun Jul 20 10:45:05 2014 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Mon Jul 21 19:03:03 2014 @@ -406,7 +406,7 @@ static Bool WsfbPreInit(ScrnInfoPtr pScrn, int flags) { WsfbPtr fPtr; - int default_depth, wstype; + int default_depth, bitsperpixel, wstype; const char *dev; char *mod = NULL, *s; const char *reqSym = NULL; @@ -537,17 +537,34 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags /* Handle depth */ default_depth = fPtr-fbi.fbi_bitsperpixel = 24 ? fPtr-fbi.fbi_bitsperpixel : 24; + bitsperpixel = fPtr-fbi.fbi_bitsperpixel; +#if defined(__NetBSD__) defined(WSDISPLAY_TYPE_LUNA) + if (wstype == WSDISPLAY_TYPE_LUNA) { + /* + * XXX + * LUNA's color framebuffers support 4bpp or 8bpp + * but they have multiple 1bpp VRAM planes like ancient VGA. + * For now, Xorg server supports only the first one plane + * as 1bpp monochrome server. + * + * Note OpenBSD/luna88k workarounds this by switching depth + * and palette settings by WSDISPLAYIO_SETGFXMODE ioctl. + */ + default_depth = 1; + bitsperpixel = 1; + } +#endif if (!xf86SetDepthBpp(pScrn, default_depth, default_depth, - fPtr-fbi.fbi_bitsperpixel, - fPtr-fbi.fbi_bitsperpixel = 24 ? Support24bppFb|Support32bppFb : 0)) + bitsperpixel, + bitsperpixel = 24 ? Support24bppFb|Support32bppFb : 0)) return FALSE; /* Check consistency. */ - if (pScrn-bitsPerPixel != fPtr-fbi.fbi_bitsperpixel) { + if (pScrn-bitsPerPixel != bitsperpixel) { xf86DrvMsg(pScrn-scrnIndex, X_ERROR, specified depth (%d) or bpp (%d) doesn't match framebuffer depth (%d)\n, pScrn-depth, - pScrn-bitsPerPixel, fPtr-fbi.fbi_bitsperpixel); + pScrn-bitsPerPixel, bitsperpixel); return FALSE; } xf86PrintDepthBpp(pScrn); @@ -1030,6 +1047,35 @@ WsfbScreenInit(int scrnIndex, ScreenPtr NULL, flags)) return FALSE; +#if defined(__NetBSD__) defined(WSDISPLAY_TYPE_LUNA) + if (wstype == WSDISPLAY_TYPE_LUNA) { + ncolors = fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries; + if (ncolors 0) { + /* + * Override palette to use 4bpp/8bpp framebuffers as + * monochrome server by using only the first plane. + * See also comment in WsfbPreInit(). + */ + struct wsdisplay_cmap cmap; + uint8_t r[256], g[256], b[256]; + int p; + + for (p = 0; p ncolors; p++) +r[p] = g[p] = b[p] = (p 1) ? 0xff : 0; + cmap.index = 0; + cmap.count = ncolors; + cmap.red = r; + cmap.green = g; + cmap.blue = b; + if (ioctl(fPtr-fd, WSDISPLAYIO_PUTCMAP, cmap) == -1) { +xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + ioctl WSDISPLAYIO_PUTCMAP: %s\n, + strerror(errno)); + } + } + } +#endif + pScreen-SaveScreen = WsfbSaveScreen; #ifdef XvExtension
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Sun Jul 20 08:53:00 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Fix wrong VRAM size calculation on old drivers without GET_FBINFO ioctl. The linebytes is a byte number of width so it should be (linebytes * height), not (width * linebytes). XXX: I'm not sure where WSDISPLAYIO_GET_FBINFO implementation was discussed but I wonder if we should use proper ifdef or macro to share this third party Xorg driver with OpenBSD... To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.21 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.22 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.21 Wed Jan 22 07:48:29 2014 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sun Jul 20 08:53:00 2014 @@ -498,7 +498,7 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags fbi-fbi_subtype.fbi_cmapinfo.cmap_entries = info.cmsize; } fbi-fbi_flags = 0; - fbi-fbi_fbsize = info.width * lb; + fbi-fbi_fbsize = lb * info.height; } /*
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Sun Jul 20 09:45:20 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: No need to handle colormap ioctls if cmsize == 0 even in WSFB_CI case. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.22 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.23 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.22 Sun Jul 20 08:53:00 2014 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sun Jul 20 09:45:20 2014 @@ -504,7 +504,8 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags /* * Allocate room for saving the colormap. */ - if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { + if (fPtr-fbi.fbi_pixeltype == WSFB_CI + fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries 0) { fPtr-saved_cmap.red = (unsigned char *)malloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); if (fPtr-saved_cmap.red == NULL) { @@ -1240,6 +1241,10 @@ WsfbLoadPalette(ScrnInfoPtr pScrn, int n TRACE_ENTER(LoadPalette); + /* nothing to do if there is no color palette support */ + if (fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries == 0) + return; + cmap.count = 1; cmap.red = red; cmap.green = green; @@ -1319,6 +1324,10 @@ WsfbSave(ScrnInfoPtr pScrn) if (fPtr-fbi.fbi_pixeltype != WSFB_CI) return; + /* nothing to do if no color palette support */ + if (fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries == 0) + return; + fPtr-saved_cmap.index = 0; fPtr-saved_cmap.count = fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries; if (ioctl(fPtr-fd, WSDISPLAYIO_GETCMAP, @@ -1338,7 +1347,8 @@ WsfbRestore(ScrnInfoPtr pScrn) TRACE_ENTER(WsfbRestore); - if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { + if (fPtr-fbi.fbi_pixeltype == WSFB_CI + fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries 0) { /* reset colormap for text mode */ if (ioctl(fPtr-fd, WSDISPLAYIO_PUTCMAP, (fPtr-saved_cmap)) == -1) {
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Sun Jul 20 10:45:05 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Add one more cmsize == 0 check before PUTCMAP ioctl. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.23 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.24 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.23 Sun Jul 20 09:45:20 2014 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sun Jul 20 10:45:05 2014 @@ -1186,7 +1186,8 @@ WsfbLeaveVT(int scrnIndex, int flags) * we're backing off */ - if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { + if (fPtr-fbi.fbi_pixeltype == WSFB_CI + fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries 0) { /* reset colormap for text mode */ if (ioctl(fPtr-fd, WSDISPLAYIO_PUTCMAP, (fPtr-saved_cmap)) == -1) {
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Jan 22 07:48:29 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: make Option HWCursor actually work, default to true To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.20 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.21 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.20 Fri Oct 18 16:58:50 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Wed Jan 22 07:48:29 2014 @@ -191,6 +191,7 @@ typedef enum { static const OptionInfoRec WsfbOptions[] = { { OPTION_SHADOW_FB, ShadowFB, OPTV_BOOLEAN, {0}, FALSE}, { OPTION_ROTATE, Rotate, OPTV_STRING, {0}, FALSE}, + { OPTION_HW_CURSOR, HWCursor, OPTV_BOOLEAN, {1}, FALSE}, { -1, NULL, OPTV_NONE, {0}, FALSE} };
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: apb Date: Fri Oct 18 16:58:50 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: CARD32 might be unsigned int or unsigned long, depending on platform, so cast to unsigned int when printing. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.19 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.20 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.19 Wed Jun 5 02:11:44 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Fri Oct 18 16:58:50 2013 @@ -575,8 +575,10 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags msk = msk fPtr-fbi.fbi_subtype.fbi_rgbmasks.blue_size; msk = ~msk; masks.blue = msk fPtr-fbi.fbi_subtype.fbi_rgbmasks.blue_offset; - xf86Msg(X_INFO, masks generated: %08x %08x %08x\n, - masks.red, masks.green, masks.blue); + xf86Msg(X_INFO, masks generated: %08lx %08lx %08lx\n, + (unsigned long)masks.red, + (unsigned long)masks.green, + (unsigned long)masks.blue); } else { masks.red = 0; masks.green = 0;
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mrg Date: Wed Jun 5 01:45:34 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: merge xf86-video-wsfb 0.4.0 To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.17 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.18 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.17 Thu Mar 28 16:30:47 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Wed Jun 5 01:45:34 2013 @@ -1,6 +1,5 @@ -/* $OpenBSD: wsfb_driver.c,v 1.16 2009/09/13 19:33:49 matthieu Exp $ */ /* - * Copyright (c) 2001 Matthieu Herrb + * Copyright © 2001-2012 Matthieu Herrb * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +41,8 @@ #include errno.h #include fcntl.h +#include unistd.h +#include sys/ioctl.h #include sys/types.h #include sys/mman.h #include sys/time.h @@ -110,9 +111,7 @@ extern int priv_open_device(const char * #endif /* Prototypes */ -#ifdef XFree86LOADER static pointer WsfbSetup(pointer, pointer, int *, int *); -#endif static Bool WsfbGetRec(ScrnInfoPtr); static void WsfbFreeRec(ScrnInfoPtr); static const OptionInfoRec * WsfbAvailableOptions(int, int); @@ -145,7 +144,7 @@ static Bool WsfbDriverFunc(ScrnInfoPtr p pointer ptr); /* Helper functions */ -static int wsfb_open(char *); +static int wsfb_open(const char *); static pointer wsfb_mmap(size_t, off_t, int); enum { WSFB_ROTATE_NONE = 0, @@ -155,7 +154,7 @@ enum { WSFB_ROTATE_NONE = 0, }; /* - * This is intentionally screen-independent. + * This is intentionally screen-independent. * It indicates the binding choice made in the first PreInit. */ static int pix24bpp = 0; @@ -195,6 +194,7 @@ static const OptionInfoRec WsfbOptions[] { -1, NULL, OPTV_NONE, {0}, FALSE} }; +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) = 6 /* Symbols needed from other modules */ static const char *fbSymbols[] = { fbPictureInit, @@ -217,6 +217,7 @@ static const char *ramdacSymbols[] = { xf86InitCursor, NULL }; +#endif #ifdef XFree86LOADER static XF86ModuleVersionInfo WsfbVersRec = { @@ -225,8 +226,8 @@ static XF86ModuleVersionInfo WsfbVersRec MODINFOSTRING1, MODINFOSTRING2, XORG_VERSION_CURRENT, - PACKAGE_VERSION_MAJOR, - PACKAGE_VERSION_MINOR, + PACKAGE_VERSION_MAJOR, + PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, ABI_CLASS_VIDEODRV, ABI_VIDEODRV_VERSION, @@ -264,7 +265,6 @@ WsfbSetup(pointer module, pointer opts, return NULL; } } -#endif /* XFree86LOADER */ static Bool WsfbGetRec(ScrnInfoPtr pScrn) @@ -283,7 +283,7 @@ WsfbFreeRec(ScrnInfoPtr pScrn) if (pScrn-driverPrivate == NULL) return; - xfree(pScrn-driverPrivate); + free(pScrn-driverPrivate); pScrn-driverPrivate = NULL; } @@ -302,11 +302,11 @@ WsfbIdentify(int flags) /* Open the framebuffer device. */ static int -wsfb_open(char *dev) +wsfb_open(const char *dev) { int fd = -1; - /* Try argument from XF86Config first. */ + /* Try argument from xorg.conf first. */ if (dev == NULL || ((fd = priv_open_device(dev)) == -1)) { /* Second: environment variable. */ dev = getenv(XDEVICE); @@ -356,7 +356,7 @@ WsfbProbe(DriverPtr drv, int flags) int i, fd, entity; GDevPtr *devSections; int numDevSections; - char *dev; + const char *dev; Bool foundScreen = FALSE; TRACE(probe start); @@ -397,7 +397,7 @@ WsfbProbe(DriverPtr drv, int flags) } } } - xfree(devSections); + free(devSections); TRACE(probe done); return foundScreen; } @@ -407,8 +407,8 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags { WsfbPtr fPtr; int default_depth, wstype; - char *dev, *s; - char *mod = NULL; + const char *dev; + char *mod = NULL, *s; const char *reqSym = NULL; Gamma zeros = {0.0, 0.0, 0.0}; DisplayModePtr mode; @@ -506,7 +506,7 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags */ if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { fPtr-saved_cmap.red = - (unsigned char *)xalloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); + (unsigned char *)malloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); if (fPtr-saved_cmap.red == NULL) { xf86DrvMsg(pScrn-scrnIndex, X_ERROR, Cannot malloc %d bytes\n, @@ -514,22 +514,22 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags return FALSE; } fPtr-saved_cmap.green = - (unsigned char *)xalloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); + (unsigned char *)malloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); if (fPtr-saved_cmap.green == NULL) { xf86DrvMsg(pScrn-scrnIndex, X_ERROR, Cannot malloc %d bytes\n,
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mrg Date: Wed Jun 5 02:11:44 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: fix a merge botch. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.18 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.19 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.18 Wed Jun 5 01:45:34 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Wed Jun 5 02:11:44 2013 @@ -219,7 +219,6 @@ static const char *ramdacSymbols[] = { }; #endif -#ifdef XFree86LOADER static XF86ModuleVersionInfo WsfbVersRec = { wsfb, MODULEVENDORSTRING,
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mlelstv Date: Thu Mar 28 16:30:47 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Call removeShadow only when shadowFB has been initialized. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.16 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.17 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.16 Thu Feb 14 16:13:38 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Thu Mar 28 16:30:47 2013 @@ -1058,7 +1058,8 @@ WsfbCloseScreen(int scrnIndex, ScreenPtr TRACE_ENTER(WsfbCloseScreen); pPixmap = pScreen-GetScreenPixmap(pScreen); - shadowRemove(pScreen, pPixmap); + if (fPtr-shadowFB) + shadowRemove(pScreen, pPixmap); if (pScrn-vtSema) { WsfbRestore(pScrn);
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Thu Feb 14 16:13:38 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: call ioctl(WSDISPLAYIO_SMODE, ...) in EnterTV/LeaveVT so kernel graphics drivers get notified when we switch in and out of X To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.15 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.16 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.15 Thu Jan 31 11:18:01 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Thu Feb 14 16:13:38 2013 @@ -1147,9 +1147,19 @@ static Bool WsfbEnterVT(int scrnIndex, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + WsfbPtr fPtr = WSFBPTR(pScrn); + int mode; TRACE_ENTER(EnterVT); pScrn-vtSema = TRUE; + + /* Restore the graphics mode. */ + mode = WSDISPLAYIO_MODE_DUMBFB; + if (ioctl(fPtr-fd, WSDISPLAYIO_SMODE, mode) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + error setting graphics mode %s\n, strerror(errno)); + } + TRACE_EXIT(EnterVT); return TRUE; } @@ -1157,11 +1167,39 @@ WsfbEnterVT(int scrnIndex, int flags) static void WsfbLeaveVT(int scrnIndex, int flags) { -#if DEBUG ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; -#endif + WsfbPtr fPtr = WSFBPTR(pScrn); + int mode; TRACE_ENTER(LeaveVT); + + /* + * stuff to do: + * - turn off hw cursor + * - restore colour map if WSFB_CI + * - ioctl(WSDISPLAYIO_MODE_EMUL) to notify the kernel driver that + * we're backing off + */ + + if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { + /* reset colormap for text mode */ + if (ioctl(fPtr-fd, WSDISPLAYIO_PUTCMAP, + (fPtr-saved_cmap)) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + error restoring colormap %s\n, + strerror(errno)); + } + } + + /* Restore the text mode. */ + mode = WSDISPLAYIO_MODE_EMUL; + if (ioctl(fPtr-fd, WSDISPLAYIO_SMODE, mode) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + error setting text mode %s\n, strerror(errno)); + } + + pScrn-vtSema = FALSE; + TRACE_EXIT(LeaveVT); } static Bool
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Thu Jan 31 11:18:02 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb.h wsfb_driver.c Log Message: use WSDISPLAYIO_GET_FBINFO if available To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h cvs rdiff -u -r1.14 -r1.15 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.3 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.4 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.3 Sat Dec 12 07:52:36 2009 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h Thu Jan 31 11:18:01 2013 @@ -52,8 +52,7 @@ /* private data */ typedef struct { int fd; /* file descriptor of open device */ - struct wsdisplay_fbinfo info; /* frame buffer characteristics */ - int linebytes; /* number of bytes per row */ + struct wsdisplayio_fbinfo fbi; int rotate; unsigned char* fbstart; unsigned char* fbmem; Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.14 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.15 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.14 Thu Jan 10 00:17:06 2013 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Thu Jan 31 11:18:01 2013 @@ -438,48 +438,96 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags return FALSE; } - if (ioctl(fPtr-fd, WSDISPLAYIO_GINFO, fPtr-info) == -1) { - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, - ioctl WSDISPLAY_GINFO: %s\n, - strerror(errno)); - return FALSE; - } - if (ioctl(fPtr-fd, WSDISPLAYIO_GTYPE, wstype) == -1) { - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, - ioctl WSDISPLAY_GTYPE: %s\n, - strerror(errno)); - return FALSE; - } - if (ioctl(fPtr-fd, WSDISPLAYIO_LINEBYTES, fPtr-linebytes) == -1) { - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, - ioctl WSDISPLAYIO_LINEBYTES: %s\n, - strerror(errno)); - return FALSE; + if (ioctl(fPtr-fd, WSDISPLAYIO_GET_FBINFO, fPtr-fbi) != 0) { + struct wsdisplay_fbinfo info; + struct wsdisplayio_fbinfo *fbi = fPtr-fbi; + int lb; + + xf86Msg(X_WARNING, ioctl(WSDISPLAYIO_GET_FBINFO) failed, \ + falling back to old method\n); + if (ioctl(fPtr-fd, WSDISPLAYIO_GINFO, info) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + ioctl WSDISPLAY_GINFO: %s\n, + strerror(errno)); + return FALSE; + } + if (ioctl(fPtr-fd, WSDISPLAYIO_GTYPE, wstype) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + ioctl WSDISPLAY_GTYPE: %s\n, + strerror(errno)); + return FALSE; + } + if (ioctl(fPtr-fd, WSDISPLAYIO_LINEBYTES, lb) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + ioctl WSDISPLAYIO_LINEBYTES: %s\n, + strerror(errno)); + return FALSE; + } + /* ok, fake up a new style fbinfo */ + fbi-fbi_width = info.width; + fbi-fbi_height = info.height; + fbi-fbi_stride = lb; + fbi-fbi_bitsperpixel = info.depth; + if (info.depth 16) { + fbi-fbi_pixeltype = WSFB_RGB; + if (wstype == WSDISPLAY_TYPE_SUN24 || + wstype == WSDISPLAY_TYPE_SUNCG12 || + wstype == WSDISPLAY_TYPE_SUNCG14 || + wstype == WSDISPLAY_TYPE_SUNTCX || + wstype == WSDISPLAY_TYPE_SUNFFB || + wstype == WSDISPLAY_TYPE_XVR1000 || + wstype == WSDISPLAY_TYPE_VC4) { +fbi-fbi_subtype.fbi_rgbmasks.red_offset = 0; +fbi-fbi_subtype.fbi_rgbmasks.red_size = 8; +fbi-fbi_subtype.fbi_rgbmasks.green_offset = 8; +fbi-fbi_subtype.fbi_rgbmasks.green_size = 8; +fbi-fbi_subtype.fbi_rgbmasks.blue_offset = 16; +fbi-fbi_subtype.fbi_rgbmasks.blue_size = 8; + } else { +fbi-fbi_subtype.fbi_rgbmasks.red_offset = 16; +fbi-fbi_subtype.fbi_rgbmasks.red_size = 8; +fbi-fbi_subtype.fbi_rgbmasks.green_offset = 8; +fbi-fbi_subtype.fbi_rgbmasks.green_size = 8; +fbi-fbi_subtype.fbi_rgbmasks.blue_offset = 0; +fbi-fbi_subtype.fbi_rgbmasks.blue_size = 8; + } + fbi-fbi_subtype.fbi_rgbmasks.alpha_offset = 0; + fbi-fbi_subtype.fbi_rgbmasks.alpha_size = 0; + } else if (info.depth = 8) { + fbi-fbi_pixeltype = WSFB_CI; + fbi-fbi_subtype.fbi_cmapinfo.cmap_entries = info.cmsize; + } + fbi-fbi_flags = 0; + fbi-fbi_fbsize = info.width * lb; + } /* * Allocate room for saving the colormap. */ - if (fPtr-info.cmsize != 0) { + if (fPtr-fbi.fbi_pixeltype == WSFB_CI) { fPtr-saved_cmap.red = - (unsigned char *)xalloc(fPtr-info.cmsize); + (unsigned char *)xalloc(fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries); if (fPtr-saved_cmap.red == NULL) { xf86DrvMsg(pScrn-scrnIndex, X_ERROR, - Cannot malloc %d bytes\n, fPtr-info.cmsize); + Cannot malloc %d bytes\n, + fPtr-fbi.fbi_subtype.fbi_cmapinfo.cmap_entries);
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: jmcneill Date: Thu Jan 10 00:17:07 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: WSDISPLAY_TYPE_VC4 framebuffer is BGR To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.13 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.14 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.13 Fri Jul 22 15:12:01 2011 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Thu Jan 10 00:17:06 2013 @@ -516,7 +516,8 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags wstype == WSDISPLAY_TYPE_SUNCG14 || wstype == WSDISPLAY_TYPE_SUNTCX || wstype == WSDISPLAY_TYPE_SUNFFB || - wstype == WSDISPLAY_TYPE_XVR1000) { + wstype == WSDISPLAY_TYPE_XVR1000 || + wstype == WSDISPLAY_TYPE_VC4) { masks.red = 0xff; masks.green = 0x00ff00; masks.blue = 0xff;
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: tsutsui Date: Fri Jul 22 15:12:01 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: Make wsfb driver work with 1bpp wscons framebuffer on luna68k: - Pass proper args (a number of line dots, not byte of screen width) to fbScreenInit() in 1bpp case, as X11R6 Xhpc server did - handle luna68k quirk (fbstart has 8 byte offset) by WSDISPLAYIO_GTYPE (XXX wstype should be stored in pScrn?) - set rgbBits properly in 1bpp and 4bpp cases (XXX not sure if really necessary) To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.12 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.13 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.12 Thu Jul 21 11:08:58 2011 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Fri Jul 22 15:12:01 2011 @@ -546,7 +546,7 @@ xf86SetGamma(pScrn,zeros); pScrn-progClock = TRUE; - pScrn-rgbBits = 8; + pScrn-rgbBits = (pScrn-depth = 8) ? 8 : pScrn-depth; pScrn-chipset = wsfb; pScrn-videoRam = fPtr-linebytes * fPtr-info.height; @@ -736,6 +736,7 @@ VisualPtr visual; int ret, flags, ncolors; int wsmode = WSDISPLAYIO_MODE_DUMBFB; + int wstype; size_t len; TRACE_ENTER(WsfbScreenInit); @@ -787,6 +788,13 @@ strerror(errno)); return FALSE; } + /* Get wsdisplay type to handle quirks */ + if (ioctl(fPtr-fd, WSDISPLAYIO_GTYPE, wstype) == -1) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + ioctl WSDISPLAY_GTYPE: %s\n, + strerror(errno)); + return FALSE; + } fPtr-fbmem = wsfb_mmap(len, 0, fPtr-fd); if (fPtr-fbmem == NULL) { @@ -826,6 +834,17 @@ } fPtr-fbstart = fPtr-fbmem; +#ifdef WSDISPLAY_TYPE_LUNA + if (wstype == WSDISPLAY_TYPE_LUNA) { + /* + * XXX + * LUNA's FB seems to have 64 dot (8 byte) offset. + * This might be able to be changed in kernel lunafb driver, + * but current setting was pulled from 4.4BSD-Lite2/luna68k. + */ + fPtr-fbstart += 8; + } +#endif if (fPtr-shadowFB) { fPtr-shadow = xcalloc(1, pScrn-virtualX * pScrn-virtualY * @@ -840,6 +859,12 @@ switch (pScrn-bitsPerPixel) { case 1: + ret = fbScreenInit(pScreen, + fPtr-fbstart, + pScrn-virtualX, pScrn-virtualY, + pScrn-xDpi, pScrn-yDpi, + fPtr-linebytes * 8, pScrn-bitsPerPixel); + break; case 4: case 8: case 16:
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Tue May 17 22:28:15 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: xf86LoaderReqSymbols() is no more To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.10 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.11 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.10 Sun May 15 23:44:47 2011 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Tue May 17 22:28:15 2011 @@ -100,6 +100,7 @@ #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) 6 #define xf86LoaderReqSymLists(...) do {} while (0) #define LoaderRefSymLists(...) do {} while (0) +#define xf86LoaderReqSymbols(...) do {} while (0) #endif #define DEBUG 0
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: macallan Date: Thu Dec 31 05:43:57 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: use BGR on XVR-1000 To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.6 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.7 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.6 Sat Dec 12 07:52:36 2009 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Thu Dec 31 05:43:56 2009 @@ -514,7 +514,8 @@ wstype == WSDISPLAY_TYPE_SUNCG12 || wstype == WSDISPLAY_TYPE_SUNCG14 || wstype == WSDISPLAY_TYPE_SUNTCX || - wstype == WSDISPLAY_TYPE_SUNFFB) { + wstype == WSDISPLAY_TYPE_SUNFFB || + wstype == WSDISPLAY_TYPE_XVR1000) { masks.red = 0xff; masks.green = 0x00ff00; masks.blue = 0xff;
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: nonaka Date: Sat Dec 12 07:52:36 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb.h wsfb_driver.c Log Message: Enable shadowFB for rotate option. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h cvs rdiff -u -r1.5 -r1.6 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.2 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.3 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.2 Fri Jun 12 01:53:00 2009 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h Sat Dec 12 07:52:36 2009 @@ -58,7 +58,7 @@ unsigned char* fbstart; unsigned char* fbmem; size_t fbmem_len; - //void * shadow; + void * shadow; Bool shadowFB; Bool HWCursor; CloseScreenProcPtr CloseScreen; Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.5 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.6 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.5 Mon Nov 9 05:24:05 2009 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Sat Dec 12 07:52:36 2009 @@ -835,7 +835,6 @@ fPtr-fbstart = fPtr-fbmem; -#if 0 if (fPtr-shadowFB) { fPtr-shadow = xcalloc(1, pScrn-virtualX * pScrn-virtualY * pScrn-bitsPerPixel); @@ -846,7 +845,6 @@ return FALSE; } } -#endif switch (pScrn-bitsPerPixel) { case 1: @@ -870,7 +868,7 @@ case 24: case 32: ret = fbScreenInit(pScreen, - /*fPtr-shadowFB ? fPtr-shadow :*/ fPtr-fbstart, + fPtr-shadowFB ? fPtr-shadow : fPtr-fbstart, pScrn-virtualX, pScrn-virtualY, pScrn-xDpi, pScrn-yDpi, pScrn-displayWidth, pScrn-bitsPerPixel);
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mrg Date: Mon Nov 9 05:19:11 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb_driver.c Log Message: merge xf86-video-wsfb 0.3.0 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.3 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.4 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.3 Fri Jun 12 01:53:00 2009 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Mon Nov 9 05:19:11 2009 @@ -1,4 +1,4 @@ -/* $OpenBSD: wsfb_driver.c,v 1.19 2003/04/27 16:42:32 matthieu Exp $ */ +/* $OpenBSD: wsfb_driver.c,v 1.16 2009/09/13 19:33:49 matthieu Exp $ */ /* * Copyright (c) 2001 Matthieu Herrb * All rights reserved. @@ -40,13 +40,15 @@ #include config.h #endif +#include errno.h #include fcntl.h #include sys/types.h +#include sys/mman.h #include sys/time.h #include errno.h #include dev/wscons/wsconsio.h -/* all driver need this */ +/* All drivers need this. */ #include xf86.h #include xf86_OSproc.h @@ -58,11 +60,19 @@ #include shadow.h #include dgaproc.h -/* for visuals */ +/* For visuals */ +#ifdef HAVE_XF1BPP +# include xf1bpp.h +#endif +#ifdef HAVE_XF4BPP +# include xf4bpp.h +#endif #include fb.h +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) 6 #include xf86Resources.h #include xf86RAC.h +#endif #ifdef XvExtension #include xf86xv.h @@ -74,7 +84,7 @@ #include sys/mman.h -#ifdef USE_PRIVSEP +#ifdef X_PRIVSEP extern int priv_open_device(const char *); #else #define priv_open_device(n)open(n,O_RDWR|O_NONBLOCK|O_EXCL) @@ -122,7 +132,7 @@ static void WsfbSave(ScrnInfoPtr); static void WsfbRestore(ScrnInfoPtr); -/* dga stuff */ +/* DGA stuff */ #ifdef XFreeXDGA static Bool WsfbDGAOpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, int *, int *, int *); @@ -133,7 +143,7 @@ static Bool WsfbDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr); -/* helper functions */ +/* Helper functions */ static int wsfb_open(char *); static pointer wsfb_mmap(size_t, off_t, int); @@ -144,8 +154,8 @@ }; /* - * This is intentionally screen-independent. It indicates the binding - * choice made in the first PreInit. + * This is intentionally screen-independent. + * It indicates the binding choice made in the first PreInit. */ static int pix24bpp = 0; @@ -231,7 +241,7 @@ static Bool setupDone = FALSE; const char *osname; - /* Check that we're being loaded on a OpenBSD or NetBSD system */ + /* Check that we're being loaded on a OpenBSD or NetBSD system. */ LoaderGetOS(osname, NULL, NULL, NULL); if (!osname || (strcmp(osname, openbsd) != 0 strcmp(osname, netbsd) != 0)) { @@ -289,18 +299,18 @@ WsfbChipsets); } -/* Open the framebuffer device */ +/* Open the framebuffer device. */ static int wsfb_open(char *dev) { int fd = -1; - /* try argument from XF86Config first */ + /* Try argument from XF86Config first. */ if (dev == NULL || ((fd = priv_open_device(dev)) == -1)) { - /* second: environment variable */ + /* Second: environment variable. */ dev = getenv(XDEVICE); if (dev == NULL || ((fd = priv_open_device(dev)) == -1)) { - /* last try: default device */ + /* Last try: default device. */ dev = WSFB_DEFAULT_DEV; if ((fd = priv_open_device(dev)) == -1) { return -1; @@ -310,7 +320,7 @@ return fd; } -/* Map the framebuffer's memory */ +/* Map the framebuffer's memory. */ static pointer wsfb_mmap(size_t len, off_t off, int fd) { @@ -323,7 +333,7 @@ addr = 0; /* - * try and make it private first, that way once we get it, an + * Try and make it private first, that way once we get it, an * interloper, e.g. another server, can't get this frame buffer, * and if another server already has it, this one won't. */ @@ -416,8 +426,10 @@ fPtr-pEnt = xf86GetEntityInfo(pScrn-entityList[0]); +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) 6 pScrn-racMemFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT; pScrn-racIoFlags = pScrn-racMemFlags; +#endif dev = xf86FindOptionValue(fPtr-pEnt-device-options, device); fPtr-fd = wsfb_open(dev); @@ -444,7 +456,7 @@ return FALSE; } /* - * Allocate room for saving the colormap + * Allocate room for saving the colormap. */ if (fPtr-info.cmsize != 0) { fPtr-saved_cmap.red = @@ -480,7 +492,7 @@ fPtr-info.depth = 24 ? Support24bppFb|Support32bppFb : 0)) return FALSE; - /* Check consistency */ + /* Check consistency. */ if (pScrn-bitsPerPixel != fPtr-info.depth) { xf86DrvMsg(pScrn-scrnIndex, X_ERROR, specified depth (%d) or bpp (%d) doesn't match @@
CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src
Module Name:xsrc Committed By: mrg Date: Fri Jun 12 01:53:00 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-wsfb/dist/src: wsfb.h wsfb_cursor.c wsfb_driver.c Log Message: xf86_ansic.h is no more. use errno.h and sys/mman.h always. remove no longer working 1 and 4 bpp. :-( To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.1 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.2 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h:1.1 Tue Nov 4 22:20:39 2008 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb.h Fri Jun 12 01:53:00 2009 @@ -43,7 +43,6 @@ #include xf86.h #include xf86_OSproc.h -#include xf86_ansic.h #include xf86RamDac.h Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c:1.1 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c:1.2 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c:1.1 Tue Nov 4 22:20:39 2008 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_cursor.c Fri Jun 12 01:53:00 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: wsfb_cursor.c,v 1.1 2008/11/04 22:20:39 macallan Exp $ */ +/* $NetBSD: wsfb_cursor.c,v 1.2 2009/06/12 01:53:00 mrg Exp $ */ /* * Copyright (c) 2005 Michael Lorenz * All rights reserved. @@ -46,7 +46,6 @@ /* all driver need this */ #include xf86.h #include xf86_OSproc.h -#include xf86_ansic.h #include wsfb.h Index: xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c diff -u xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.2 xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.3 --- xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c:1.2 Tue Nov 4 22:20:39 2008 +++ xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c Fri Jun 12 01:53:00 2009 @@ -43,12 +43,12 @@ #include fcntl.h #include sys/types.h #include sys/time.h +#include errno.h #include dev/wscons/wsconsio.h /* all driver need this */ #include xf86.h #include xf86_OSproc.h -#include xf86_ansic.h #include mipointer.h #include mibstore.h @@ -59,8 +59,6 @@ #include dgaproc.h /* for visuals */ -#include xf1bpp.h -#include xf4bpp.h #include fb.h #include xf86Resources.h @@ -74,9 +72,7 @@ /* #include wsconsio.h */ -#ifndef XFree86LOADER #include sys/mman.h -#endif #ifdef USE_PRIVSEP extern int priv_open_device(const char *); @@ -639,14 +635,6 @@ /* Load bpp-specific modules */ switch(pScrn-bitsPerPixel) { - case 1: - mod = xf1bpp; - reqSym = xf1bppScreenInit; - break; - case 4: - mod = xf4bpp; - reqSym = xf4bppScreenInit; - break; default: mod = fb; break; @@ -825,18 +813,6 @@ fPtr-fbstart = fPtr-fbmem; switch (pScrn-bitsPerPixel) { - case 1: - ret = xf1bppScreenInit(pScreen, fPtr-fbstart, - pScrn-virtualX, pScrn-virtualY, - pScrn-xDpi, pScrn-yDpi, - pScrn-displayWidth); - break; - case 4: - ret = xf4bppScreenInit(pScreen, fPtr-fbstart, - pScrn-virtualX, pScrn-virtualY, - pScrn-xDpi, pScrn-yDpi, - pScrn-displayWidth); - break; case 8: case 16: case 24: