--- a/open-src/driver/xf86-video-mga/sparc.patch Thu Nov 01 17:15:02 2012 -0700
+++ b/open-src/driver/xf86-video-mga/sparc.patch Thu Dec 13 16:27:01 2012 -0800
@@ -293,7 +293,107 @@
index 96bb6b9..57fdba5 100644
--- a/src/mga_storm.c
+++ b/src/mga_storm.c
-@@ -989,7 +989,12 @@ static void mgaRestoreAccelState(ScrnInfoPtr pScrn)
+@@ -97,6 +97,7 @@
+ static void mgaSubsequentSolidTwoPointLine( ScrnInfoPtr pScrn, int x1, int y1,
+ int x2, int y2, int flags );
+
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ static void mgaSetupForMono8x8PatternFill( ScrnInfoPtr pScrn,
+ int patx, int paty, int fg, int bg, int rop, unsigned int planemask );
+
+@@ -109,6 +110,7 @@
+ static void mgaSubsequentMono8x8PatternFillTrap( ScrnInfoPtr pScrn,
+ int patx, int paty, int y, int h, int left, int dxL, int dyL, int eL,
+ int right, int dxR, int dyR, int eR );
++#endif
+
+ static void mgaSetupForScanlineImageWrite( ScrnInfoPtr pScrn, int rop,
+ unsigned int planemask, int transparency_color, int bpp, int depth );
+@@ -148,10 +150,12 @@
+ static void MGAFillSolidSpansDMA(ScrnInfoPtr pScrn, int fg, int rop,
+ unsigned int planemask, int n, DDXPointPtr ppt,
+ int *pwidth, int fSorted);
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ static void MGAFillMono8x8PatternRectsTwoPass(ScrnInfoPtr pScrn, int fg, int bg,
+ int rop, unsigned int planemask, int nBox,
+ BoxPtr pBox, int pattern0, int pattern1,
+ int xorigin, int yorigin);
++#endif
+ static void MGAValidatePolyArc(GCPtr, unsigned long, DrawablePtr);
+ static void MGAValidatePolyPoint(GCPtr, unsigned long, DrawablePtr);
+ static void MGAFillCacheBltRects(ScrnInfoPtr, int, unsigned int, int, BoxPtr,
+@@ -623,7 +627,9 @@
+ /* fill out infoPtr here */
+ infoPtr->Flags = PIXMAP_CACHE |
+ OFFSCREEN_PIXMAPS |
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ LINEAR_FRAMEBUFFER |
++#endif
+ MICROSOFT_ZERO_LINE_BIAS;
+
+ /* sync */
+@@ -652,18 +658,20 @@
+ /* clipping */
+ infoPtr->SetClippingRectangle = MGASetClippingRectangle;
+ infoPtr->DisableClipping = MGADisableClipping;
++#if X_BYTE_ORDER == X_BIG_ENDIAN
+ infoPtr->ClippingFlags = HARDWARE_CLIP_SOLID_LINE |
++ HARDWARE_CLIP_SOLID_FILL;
++#else
++ infoPtr->ClippingFlags = HARDWARE_CLIP_SOLID_LINE |
+ HARDWARE_CLIP_DASHED_LINE |
+ HARDWARE_CLIP_SOLID_FILL |
+ HARDWARE_CLIP_MONO_8x8_FILL;
+
+-#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ /* dashed lines */
+ infoPtr->DashedLineFlags = LINE_PATTERN_MSBFIRST_LSBJUSTIFIED;
+ infoPtr->SetupForDashedLine = mgaSetupForDashedLine;
+ infoPtr->SubsequentDashedTwoPointLine = mgaSubsequentDashedTwoPointLine;
+ infoPtr->DashPatternMaxLength = 128;
+-#endif
+
+ /* 8x8 mono patterns */
+ infoPtr->Mono8x8PatternFillFlags = HARDWARE_PATTERN_PROGRAMMED_BITS |
+@@ -675,6 +683,7 @@
+ mgaSubsequentMono8x8PatternFillRect;
+ infoPtr->SubsequentMono8x8PatternFillTrap =
+ mgaSubsequentMono8x8PatternFillTrap;
++#endif
+
+ /* cpu to screen color expansion */
+ infoPtr->ScanlineCPUToScreenColorExpandFillFlags =
+@@ -748,11 +757,13 @@
+ infoPtr->FillSolidSpans = MGAFillSolidSpansDMA;
+ }
+
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ if(pMga->AccelFlags & TWO_PASS_COLOR_EXPAND) {
+ if(infoPtr->SetupForMono8x8PatternFill)
+ infoPtr->FillMono8x8PatternRects =
+ MGAFillMono8x8PatternRectsTwoPass;
+ }
++#endif
+
+ if(infoPtr->SetupForSolidFill) {
+ infoPtr->ValidatePolyArc = MGAValidatePolyArc;
+@@ -769,12 +780,14 @@
+ infoPtr->SolidLineFlags |= NO_PLANEMASK;
+ #if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ infoPtr->DashedLineFlags |= NO_PLANEMASK;
+-#endif
+ infoPtr->Mono8x8PatternFillFlags |= NO_PLANEMASK;
++#endif
+ infoPtr->ScreenToScreenColorExpandFillFlags |= NO_PLANEMASK;
+ infoPtr->FillSolidRectsFlags |= NO_PLANEMASK;
+ infoPtr->FillSolidSpansFlags |= NO_PLANEMASK;
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ infoPtr->FillMono8x8PatternRectsFlags |= NO_PLANEMASK;
++#endif
+ infoPtr->FillCacheBltRectsFlags |= NO_PLANEMASK;
+ }
+
+@@ -989,7 +1002,12 @@
#if X_BYTE_ORDER == X_LITTLE_ENDIAN
OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT );
#else
@@ -307,7 +407,7 @@
#endif
OUTREG(MGAREG_CXBNDRY, 0xFFFF0000); /* (maxX << 16) | minX */
OUTREG(MGAREG_YTOP, 0x00000000); /* minPixelPointer */
-@@ -1077,9 +1082,9 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
+@@ -1077,9 +1095,9 @@
maccess |= (1 << 31);
}
@@ -319,3 +419,36 @@
#endif
pMga->SetupForSolidFill = mgaSetupForSolidFill;
+@@ -1601,6 +1619,7 @@
+ OUTREG(MGAREG_DWGCTL, pMga->FilledRectCMD);
+ }
+
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+
+ /***************************\
+ | 8x8 Mono Pattern Fills |
+@@ -1689,6 +1708,7 @@
+ OUTREG(MGAREG_YDSTLEN + MGAREG_EXEC, (y << 16) | h);
+ OUTREG(MGAREG_DWGCTL, pMga->PatternRectCMD);
+ }
++#endif /* X_BYTE_ORDER == X_LITTLE_ENDIAN */
+
+ /***********************\
+ | Color Expand Rect |
+@@ -2280,6 +2300,8 @@
+ }
+
+
++#if X_BYTE_ORDER == X_LITTLE_ENDIAN
++
+ static void
+ MGAFillMono8x8PatternRectsTwoPass(
+ ScrnInfoPtr pScrn,
+@@ -2331,6 +2353,7 @@
+
+ SET_SYNC_FLAG(infoRec);
+ }
++#endif /* X_BYTE_ORDER == X_LITTLE_ENDIAN */
+
+
+ static void