[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