CVS commit: xsrc/external/mit/xf86-video-wsfb/dist/src

2019-12-30 Thread Izumi Tsutsui
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

2019-12-25 Thread Izumi Tsutsui
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

2019-02-03 Thread Jared D. McNeill
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

2018-07-22 Thread Michael Lorenz
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

2017-03-23 Thread Michael Lorenz
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

2016-08-16 Thread matthew green
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

2016-02-17 Thread Michael Lorenz
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

2014-07-21 Thread Izumi Tsutsui
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

2014-07-20 Thread Izumi Tsutsui
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

2014-07-20 Thread Izumi Tsutsui
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

2014-07-20 Thread Izumi Tsutsui
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

2014-01-21 Thread Michael Lorenz
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

2013-10-18 Thread Alan Barrett
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

2013-06-04 Thread matthew green
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

2013-06-04 Thread matthew green
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

2013-03-28 Thread Michael van Elst
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

2013-02-14 Thread Michael Lorenz
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

2013-01-31 Thread Michael Lorenz
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

2013-01-09 Thread Jared D. McNeill
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

2011-07-22 Thread Izumi Tsutsui
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

2011-05-17 Thread Michael Lorenz
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

2009-12-30 Thread Michael Lorenz
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

2009-12-11 Thread NONAKA Kimihiro
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

2009-11-08 Thread matthew green
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

2009-06-11 Thread matthew green
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: