Module Name:    xsrc
Committed By:   macallan
Date:           Wed Jun 18 16:55:28 UTC 2014

Modified Files:
        xsrc/external/mit/xf86-video-suntcx/dist/src: tcx.h tcx_driver.c

Log Message:
make this work properly on 8bit SUNW,tcx


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h
cvs rdiff -u -r1.6 -r1.7 \
    xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_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-suntcx/dist/src/tcx.h
diff -u xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.4 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.5
--- xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.4	Tue Jun  4 22:20:42 2013
+++ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h	Wed Jun 18 16:55:28 2014
@@ -37,6 +37,8 @@
 /* Various offsets in virtual (ie. mmap()) spaces Linux and Solaris support. */
 #define TCX_RAM8_VOFF		0x00000000
 #define TCX_RAM24_VOFF		0x01000000
+#define	TCX_STIP_VOFF		0x10000000
+#define	TCX_BLIT_VOFF		0x20000000
 #define TCX_CPLANE_VOFF		0x28000000
 #define	TCX_RSTIP_VOFF		0x30000000
 #define	TCX_RBLIT_VOFF		0x38000000
@@ -56,6 +58,7 @@ typedef struct {
 	sbusDevicePtr	psdp;
 	CloseScreenProcPtr CloseScreen;
 	Bool		HWCursor;
+	Bool		Is8bit;
 	uint64_t	*rblit;
 	uint64_t	*rstip;
 	xf86CursorInfoPtr CursorInfoRec;

Index: xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c
diff -u xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.6 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.7
--- xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.6	Tue Jun  4 22:20:42 2013
+++ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c	Wed Jun 18 16:55:28 2014
@@ -341,12 +341,13 @@ TCXPreInit(ScrnInfoPtr pScrn, int flags)
     **********************/
     hwCursor = 0;
     lowDepth = 1;
-    if (sparcPromInit() >= 0) {
-	hwCursor = sparcPromGetBool(&psdp->node, "hw-cursor");
-	lowDepth = sparcPromGetBool(&psdp->node, "tcx-8-bit");
-	sparcPromClose();
+     if (sparcPromInit() >= 0) {
+ 	hwCursor = sparcPromGetBool(&psdp->node, "hw-cursor");
+ 	lowDepth = sparcPromGetBool(&psdp->node, "tcx-8-bit");
+ 	sparcPromClose();
     }
 
+    pTcx->Is8bit = (lowDepth != 0); 
     /* all S24 support a hardware cursor */
     if (!lowDepth)
 	hwCursor = 1;
@@ -357,7 +358,7 @@ TCXPreInit(ScrnInfoPtr pScrn, int flags)
     deal with depth
     *********************/
     
-    if (!xf86SetDepthBpp(pScrn, 0, 0, 0,
+    if (!xf86SetDepthBpp(pScrn, lowDepth ? 8 : 0, 0, 0,
 			 lowDepth ? NoDepth24Support : Support32bppFb)) {
 	return FALSE;
     } else {
@@ -524,15 +525,30 @@ TCXScreenInit(SCREEN_INIT_ARGS_DECL)
 	    return FALSE;
     }
 
-    pTcx->rblit = xf86MapSbusMem(pTcx->psdp, TCX_RBLIT_VOFF, 8 * 1024 * 1024);
-    if (pTcx->rblit == NULL) {
-	xf86Msg(X_ERROR, "Couldn't map RBLIT space\n");
-	return FALSE;
-    }
-    pTcx->rstip = xf86MapSbusMem(pTcx->psdp, TCX_RSTIP_VOFF, 8 * 1024 * 1024);
-    if (pTcx->rstip == NULL) {
-	xf86Msg(X_ERROR, "Couldn't map RSTIP space\n");
-	return FALSE;
+    if (pTcx->Is8bit) {
+    	/* use STIP and BLIT on tcx */
+        pTcx->rblit = xf86MapSbusMem(pTcx->psdp, TCX_BLIT_VOFF, 8 * 1024 * 1024);
+        if (pTcx->rblit == NULL) {
+	    xf86Msg(X_ERROR, "Couldn't map BLIT space\n");
+	    return FALSE;
+        }
+        pTcx->rstip = xf86MapSbusMem(pTcx->psdp, TCX_STIP_VOFF, 8 * 1024 * 1024);
+        if (pTcx->rstip == NULL) {
+	    xf86Msg(X_ERROR, "Couldn't map STIP space\n");
+	    return FALSE;
+	}
+    } else {
+    	/* use RSTIP and RBLIT on S24 */
+        pTcx->rblit = xf86MapSbusMem(pTcx->psdp, TCX_RBLIT_VOFF, 8 * 1024 * 1024);
+        if (pTcx->rblit == NULL) {
+	    xf86Msg(X_ERROR, "Couldn't map RBLIT space\n");
+	    return FALSE;
+        }
+        pTcx->rstip = xf86MapSbusMem(pTcx->psdp, TCX_RSTIP_VOFF, 8 * 1024 * 1024);
+        if (pTcx->rstip == NULL) {
+	    xf86Msg(X_ERROR, "Couldn't map RSTIP space\n");
+	    return FALSE;
+	}
     }
 
     if (! pTcx->fb)
@@ -605,9 +621,7 @@ TCXScreenInit(SCREEN_INIT_ARGS_DECL)
     fbPictureInit (pScreen, 0, 0);
 #endif
 
-#if 0
-    if (!pTcx->NoAccel)
-    {
+    if (!pTcx->NoAccel) {
         XF86ModReqInfo req;
         int errmaj, errmin;
 
@@ -625,7 +639,7 @@ TCXScreenInit(SCREEN_INIT_ARGS_DECL)
     }
 
     miInitializeBackingStore(pScreen);
-#endif
+
     xf86SetBackingStore(pScreen);
     xf86SetSilkenMouse(pScreen);
 

Reply via email to