[xorg-x11-drv-mga/f16] mga-1.4.12-bigendian.patch: Fix channel swizzle on big-endian mga-1.4.13-fbdev-force.patch: Force fb

Adam Jackson ajax at fedoraproject.org
Mon Dec 19 16:26:37 UTC 2011


commit 2a58fbc53a75db4547de08d0feea50b1d11de539
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Dec 19 11:26:36 2011 -0500

    mga-1.4.12-bigendian.patch: Fix channel swizzle on big-endian
    mga-1.4.13-fbdev-force.patch: Force fbdev mode on ppc

 mga-1.4.12-bigendian.patch   |  101 ++++++++++++++++++++++++++++++++++++++++++
 mga-1.4.13-fbdev-force.patch |   15 ++++++
 xorg-x11-drv-mga.spec        |   10 ++++-
 3 files changed, 125 insertions(+), 1 deletions(-)
---
diff --git a/mga-1.4.12-bigendian.patch b/mga-1.4.12-bigendian.patch
new file mode 100644
index 0000000..02f1111
--- /dev/null
+++ b/mga-1.4.12-bigendian.patch
@@ -0,0 +1,101 @@
+diff -up xf86-video-mga-1.4.12/src/mga_dri.c.jx xf86-video-mga-1.4.12/src/mga_dri.c
+--- xf86-video-mga-1.4.12/src/mga_dri.c.jx	2008-08-15 13:55:06.000000000 -0400
++++ xf86-video-mga-1.4.12/src/mga_dri.c	2011-06-20 12:04:43.047560274 -0400
+@@ -374,7 +374,8 @@ void MGAGetQuiescence( ScrnInfoPtr pScrn
+ 
+       pMga->SrcOrg = 0;
+       OUTREG( MGAREG_DSTORG, pMga->DstOrg );
+-      OUTREG( MGAREG_OPMODE, MGAOPM_DMA_BLIT );
++      OUTREG( MGAREG_OPMODE,
++	      (INREG(MGAREG_OPMODE) & ~MGAOPM_DMA_MASK) | MGAOPM_DMA_BLIT );
+       OUTREG( MGAREG_CXBNDRY, 0xFFFF0000 ); /* (maxX << 16) | minX */
+       OUTREG( MGAREG_YTOP, 0x00000000 );    /* minPixelPointer */
+       OUTREG( MGAREG_YBOT, 0x007FFFFF );    /* maxPixelPointer */
+diff -up xf86-video-mga-1.4.12/src/mga_driver.c.jx xf86-video-mga-1.4.12/src/mga_driver.c
+--- xf86-video-mga-1.4.12/src/mga_driver.c.jx	2011-06-20 11:57:31.000000000 -0400
++++ xf86-video-mga-1.4.12/src/mga_driver.c	2011-06-20 12:11:51.713070025 -0400
+@@ -2536,7 +2536,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
+ 	/*if (pMga->Chipset == PCI_CHIP_MGAG200 ||
+ 	  pMga->Chipset == PCI_CHIP_MGAG200_PCI) */{
+ 	    CARD32 opmode;
+-	    opmode = INREG(MGAREG_OPMODE);
++	    opmode = INREG(MGAREG_OPMODE) & ~MGAOPM_DMA_MASK ;
+ 	    OUTREG(MGAREG_OPMODE,  MGAOPM_DMA_BLIT | opmode);
+ 	}
+ 	/* wrapping OpenLibrary to fix broken registers. MATROX: hint, hint. */
+diff -up xf86-video-mga-1.4.12/src/mga_exa.c.jx xf86-video-mga-1.4.12/src/mga_exa.c
+--- xf86-video-mga-1.4.12/src/mga_exa.c.jx	2009-04-27 11:47:42.000000000 -0400
++++ xf86-video-mga-1.4.12/src/mga_exa.c	2011-06-20 12:08:14.368304719 -0400
+@@ -701,7 +701,8 @@ mgaUploadToScreen(PixmapPtr pDst, int x,
+ 
+     mgaSetup(pMga, pDst, NULL, 10);
+ 
+-    OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT);
++    OUTREG(MGAREG_OPMODE,
++	   (INREG(MGAREG_OPMODE) & ~MGAOPM_DMA_MASK) | MGAOPM_DMA_BLIT);
+     OUTREG(MGAREG_DSTORG, exaGetPixmapOffset(pDst));
+     OUTREG(MGAREG_PITCH, mgaGetPixmapPitch(pDst));
+     OUTREG(MGAREG_PLNWT, 0xffffffff);
+diff -up xf86-video-mga-1.4.12/src/mga_reg.h.jx xf86-video-mga-1.4.12/src/mga_reg.h
+--- xf86-video-mga-1.4.12/src/mga_reg.h.jx	2011-06-20 11:57:31.000000000 -0400
++++ xf86-video-mga-1.4.12/src/mga_reg.h	2011-06-20 12:01:22.891854925 -0400
+@@ -124,6 +124,7 @@
+ #define MGAOPM_DMA_GENERAL	(0x00 << 2)
+ #define MGAOPM_DMA_BLIT		(0x01 << 2)
+ #define MGAOPM_DMA_VECTOR	(0x10 << 2)
++#define MGAOPM_DMA_MASK		(0x11 << 2)
+ 
+ /* MACCESS register additives */
+ #define MGAMAC_PW8               0x00
+diff -up xf86-video-mga-1.4.12/src/mga_storm.c.jx xf86-video-mga-1.4.12/src/mga_storm.c
+--- xf86-video-mga-1.4.12/src/mga_storm.c.jx	2011-06-20 11:57:31.000000000 -0400
++++ xf86-video-mga-1.4.12/src/mga_storm.c	2011-06-20 12:11:51.721070061 -0400
+@@ -2192,6 +2192,7 @@ MGAFillSolidRectsDMA(
+     MGAPtr pMga = MGAPTR(pScrn);
+     XAAInfoRecPtr infoRec = pMga->AccelInfoRec;
+     CARD32 *base = (CARD32*)pMga->ILOADBase;
++    CARD32 opmode;
+ 
+     CHECK_DMA_QUIESCENT(pMga, pScrn);
+ 
+@@ -2207,7 +2208,8 @@ MGAFillSolidRectsDMA(
+ 
+     if(!nBox) return;
+ 
+-    OUTREG(MGAREG_OPMODE, MGAOPM_DMA_GENERAL);
++    opmode = INREG(MGAREG_OPMODE) & ~MGAOPM_DMA_MASK;
++    OUTREG(MGAREG_OPMODE, opmode | MGAOPM_DMA_GENERAL);
+     while(nBox) {
+ 	base[0] = DMAINDICES(MGAREG_FXBNDRY, MGAREG_YDSTLEN + MGAREG_EXEC,
+                 MGAREG_FXBNDRY, MGAREG_YDSTLEN + MGAREG_EXEC);
+@@ -2219,7 +2221,7 @@ MGAFillSolidRectsDMA(
+ 	pBox++;
+ 	base += 5; nBox -= 2;
+     }
+-    OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT);
++    OUTREG(MGAREG_OPMODE, opmode | MGAOPM_DMA_BLIT);
+ }
+ 
+ static void
+@@ -2256,9 +2258,11 @@ MGAFillSolidSpansDMA(
+     }
+ 
+     if(n) {
++	CARD32 opmode;
+ 	if(n > 838860) n = 838860;  /* maximum number we have room for */
+ 
+-	OUTREG(MGAREG_OPMODE, MGAOPM_DMA_GENERAL);
++	opmode = INREG(MGAREG_OPMODE) | MGAOPM_DMA_MASK;
++	OUTREG(MGAREG_OPMODE, opmode | MGAOPM_DMA_GENERAL);
+ 	while(n) {
+ 	    base[0] = DMAINDICES(MGAREG_FXBNDRY, MGAREG_YDSTLEN + MGAREG_EXEC,
+                 MGAREG_FXBNDRY, MGAREG_YDSTLEN + MGAREG_EXEC);
+@@ -2270,7 +2274,7 @@ MGAFillSolidSpansDMA(
+ 	    ppt++;
+ 	    base += 5; n -= 2;
+ 	}
+-	OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT);
++	OUTREG(MGAREG_OPMODE, opmode | MGAOPM_DMA_BLIT);
+     }
+ 
+     if(infoRec->ClipBox) {
diff --git a/mga-1.4.13-fbdev-force.patch b/mga-1.4.13-fbdev-force.patch
new file mode 100644
index 0000000..ffbe1d9
--- /dev/null
+++ b/mga-1.4.13-fbdev-force.patch
@@ -0,0 +1,15 @@
+diff -up xf86-video-mga-1.4.13/src/mga_driver.c.jx xf86-video-mga-1.4.13/src/mga_driver.c
+--- xf86-video-mga-1.4.13/src/mga_driver.c.jx	2011-12-14 11:05:28.000000000 -0500
++++ xf86-video-mga-1.4.13/src/mga_driver.c	2011-12-19 10:40:29.439055873 -0500
+@@ -1824,7 +1824,11 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
+     if (pMga->SecondCrtc)
+ 	flags24 = Support32bppFb;
+ 
++#if defined(__ppc__) || defined(__ppc64)
++    if (1) {
++#else
+     if (xf86ReturnOptValBool(pMga->Options, OPTION_FBDEV, FALSE)) {
++#endif
+ 	pMga->FBDev = TRUE;
+ 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ 		"Using framebuffer device\n");
diff --git a/xorg-x11-drv-mga.spec b/xorg-x11-drv-mga.spec
index 27293f0..9c47163 100644
--- a/xorg-x11-drv-mga.spec
+++ b/xorg-x11-drv-mga.spec
@@ -7,7 +7,7 @@
 Summary:   Xorg X11 mga video driver
 Name:      xorg-x11-drv-mga
 Version:   1.4.13
-Release:   8%{?dist}
+Release:   9%{?dist}
 URL:       http://www.x.org
 License: MIT
 Group:     User Interface/X Hardware Support
@@ -18,6 +18,8 @@ Source1:    mga.xinf
 
 Patch0: mga-1.4.5-no-hal-advertising.patch
 Patch1: mga-1.4.6.1-get-client-pointer.patch
+Patch2: mga-1.4.13-fbdev-force.patch
+Patch3: mga-1.4.12-bigendian.patch
 
 ExcludeArch: s390 s390x
 
@@ -37,6 +39,8 @@ X.Org X11 mga video driver.
 %setup -q -n %{tarball}-%{version}
 %patch0 -p1 -b .hal
 %patch1 -p1 -b .gcp
+%patch2 -p1 -b .ppc-hax
+%patch3 -p1 -b .bigendian
 
 %build
 autoreconf -v --install || exit 1
@@ -63,6 +67,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man4/mga.4*
 
 %changelog
+* Mon Dec 19 2011 Adam Jackson <ajax at redhat.com> 1.4.13-9
+- mga-1.4.12-bigendian.patch: Fix channel swizzle on big-endian
+- mga-1.4.13-fbdev-force.patch: Force fbdev mode on ppc
+
 * Thu Aug 18 2011 Adam Jackson <ajax at redhat.com> - 1.4.13-8
 - Rebuild for xserver 1.11 ABI
 


More information about the scm-commits mailing list