--- a/open-src/driver/xf86-video-mga/sparc.patch Thu Mar 29 13:35:26 2012 -0700
+++ b/open-src/driver/xf86-video-mga/sparc.patch Fri Apr 06 21:57:14 2012 -0700
@@ -1,8 +1,9 @@
-diff -ur old/src/mga.h new/src/mga.h
---- src/mga.h Wed Jan 4 18:11:17 2012
-+++ src/mga.h Wed Jan 4 18:12:40 2012
-@@ -47,6 +47,10 @@
- #include "client.h"
+diff --git a/src/mga.h b/src/mga.h
+index 77406f1..25dcf53 100644
+--- a/src/mga.h
++++ b/src/mga.h
+@@ -46,6 +46,10 @@
+ #include "mga_dri.h"
#endif
+#ifdef __sparc__
@@ -12,7 +13,7 @@
typedef enum {
OPTION_SW_CURSOR,
OPTION_HW_CURSOR,
-@@ -201,6 +205,28 @@
+@@ -200,6 +204,28 @@ void MGAdbg_outreg32(ScrnInfoPtr, int,int, char*);
#define MGA_MODULE_DATA mgaModuleData
#define MGA_DRIVER_NAME "mga"
@@ -41,7 +42,7 @@
typedef struct {
unsigned char ExtVga[6];
unsigned char DacClk[6];
-@@ -682,6 +708,9 @@
+@@ -667,6 +693,9 @@ typedef struct {
if in merged mode */
/* End of Merged Framebuffer Data */
int HALGranularityOffX, HALGranularityOffY;
@@ -51,10 +52,11 @@
} MGARec, *MGAPtr;
extern CARD32 MGAAtype[16];
-diff -ur old/src/mga_dacG.c new/src/mga_dacG.c
---- src/mga_dacG.c Wed Jan 4 18:11:17 2012
-+++ src/mga_dacG.c Thu Jan 19 11:54:04 2012
-@@ -1753,11 +1753,35 @@
+diff --git a/src/mga_dacG.c b/src/mga_dacG.c
+index b489dea..e549f6c 100644
+--- a/src/mga_dacG.c
++++ b/src/mga_dacG.c
+@@ -1711,11 +1711,35 @@ MGAGLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src)
MGAPtr pMga = MGAPTR(pScrn);
CARD32 *dst = (CARD32*)(pMga->FbBase + pMga->FbCursorOffset);
int i = 128;
@@ -92,10 +94,11 @@
src += 8;
}
}
-diff -ur old/src/mga_driver.c new/src/mga_driver.c
---- src/mga_driver.c Wed Jan 4 18:11:17 2012
-+++ src/mga_driver.c Wed Jan 11 12:45:12 2012
-@@ -104,6 +104,11 @@
+diff --git a/src/mga_driver.c b/src/mga_driver.c
+index af005f1..ae4a005 100644
+--- a/src/mga_driver.c
++++ b/src/mga_driver.c
+@@ -107,6 +107,11 @@
#include <unistd.h>
@@ -107,7 +110,7 @@
/*
* Forward definitions for the functions that make up the driver.
*/
-@@ -153,6 +158,10 @@
+@@ -156,6 +161,10 @@ static Bool MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
static void MGABlockHandler(int, pointer, pointer, pointer);
static void MGAG100BlackMagic(ScrnInfoPtr pScrn);
@@ -118,7 +121,7 @@
static int MGAEntityIndex = -1;
#include "mga_merge.h"
-@@ -452,7 +461,16 @@
+@@ -455,6 +464,15 @@ static const struct pci_id_match mga_device_match[] = {
{ 0, 0, 0 },
};
@@ -130,12 +133,11 @@
+ const char * device_string;
+};
+#define DEV_PATH(dev) (((struct mga_device_private *) (dev))->device_string)
++#endif
#endif
-+#endif
/* Supported chipsets */
- static SymTabRec MGAChipsets[] = {
-@@ -1295,9 +1316,11 @@
+@@ -1296,9 +1314,11 @@ MGAdoDDC(ScrnInfoPtr pScrn)
/* Map the VGA memory when the primary video */
if (pMga->Primary) {
@@ -147,7 +149,7 @@
} else {
/* XXX Need to write an MGA mode ddc1SetSpeed */
if (pMga->DDC1SetSpeed == vgaHWddc1SetSpeedWeak()) {
-@@ -1340,6 +1363,7 @@
+@@ -1341,6 +1361,7 @@ MGAdoDDC(ScrnInfoPtr pScrn)
pMga->ddc1Read ) ;
from = "DDC1";
}
@@ -155,7 +157,7 @@
if (!MonInfo){
vbeInfoPtr pVbe;
if (xf86LoadSubModule(pScrn, "vbe")) {
-@@ -1349,6 +1373,7 @@
+@@ -1350,6 +1371,7 @@ MGAdoDDC(ScrnInfoPtr pScrn)
from = "VBE";
}
}
@@ -163,7 +165,7 @@
}
if (MonInfo) {
-@@ -1574,7 +1599,21 @@
+@@ -1571,6 +1593,20 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
pMga->PciInfo = xf86GetPciInfoForEntity(pMga->pEnt->index);
pMga->PciTag = pciTag(pMga->PciInfo->bus, pMga->PciInfo->device,
pMga->PciInfo->func);
@@ -180,12 +182,11 @@
+ if ((pMga->fd = open(dev, O_RDWR)) < 0)
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot open device %s\n", dev);
+ }
++#endif
#endif
-+#endif
pMga->Primary = xf86IsPrimaryPci(pMga->PciInfo);
-
-@@ -1960,7 +1999,7 @@
+@@ -1922,7 +1958,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Enabling KVM\n");
}
@@ -194,7 +195,7 @@
pMga->softbooted = FALSE;
Default = (pMga->chip_attribs->dual_head_possible
&& !pMga->Primary && !pMga->SecondCrtc);
-@@ -3012,7 +3051,11 @@
+@@ -2838,7 +2874,11 @@ MGASave(ScrnInfoPtr pScrn)
/* Could call it dac2Saved */
/* Only save text mode fonts/text for the primary card */
@@ -205,8 +206,8 @@
+#endif
}
- #ifdef USEMGAHAL
-@@ -3370,6 +3413,10 @@
+ /*
+@@ -2996,6 +3036,10 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
#ifdef DEBUG
MGAG450PrintPLL(pScrn);
#endif
@@ -217,19 +218,19 @@
return TRUE;
}
-@@ -3467,7 +3514,11 @@
- }
- ); /* MGA_HAL */
- #endif
+@@ -3085,7 +3129,11 @@ MGARestore(ScrnInfoPtr pScrn)
+ vgaHWProtect(pScrn, TRUE);
+ }
+ if (pMga->Primary) {
+#ifdef __sparc__
-+ (*pMga->Restore)(pScrn, vgaReg, mgaReg, FALSE);
++ (*pMga->Restore)(pScrn, vgaReg, mgaReg, FALSE);
+#else
(*pMga->Restore)(pScrn, vgaReg, mgaReg, TRUE);
+#endif
} else {
vgaHWRestore(pScrn, vgaReg, VGA_SR_MODE);
}
-@@ -3658,9 +3709,11 @@
+@@ -3215,9 +3263,11 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Map the VGA memory when the primary video */
if (!pMga->FBDev) {
if (pMga->Primary) {
@@ -241,7 +242,7 @@
}
/* Save the current state */
-@@ -3916,6 +3969,10 @@
+@@ -3473,6 +3523,10 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
MGAInitVideo(pScreen);
@@ -249,22 +250,24 @@
+ MGANotifyModeChanged(pScrn);
+#endif
+
- #ifdef XF86DRI
+ #ifdef MGADRI
if (pMga->directRenderingEnabled) {
/* Now that mi, drm and others have done their thing,
-@@ -4352,6 +4409,11 @@
- if (pMga->ScratchBuffer)
- xfree(pMga->ScratchBuffer);
+@@ -3792,6 +3846,13 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
+ free(pMga->portPrivate);
+ free(pMga->ScratchBuffer);
+#ifdef __sparc__
++ MGANotifyModeChanged(pScrn);
++
+ if (pMga->fd)
+ close(pMga->fd);
+#endif
+
pScrn->vtSema = FALSE;
- if (xf86IsPc98())
-@@ -4757,3 +4819,21 @@
+ xf86ClearPrimInitDone(pScrn->entityList[0]);
+@@ -4194,3 +4253,21 @@ MGAG100BlackMagic(ScrnInfoPtr pScrn)
usleep(10);
}
@@ -286,10 +289,11 @@
+
+}
+#endif
-diff -ur old/src/mga_storm.c new/src/mga_storm.c
---- src/mga_storm.c Wed Jan 4 18:11:17 2012
-+++ src/mga_storm.c Wed Jan 11 12:41:33 2012
-@@ -989,7 +989,12 @@
+diff --git a/src/mga_storm.c b/src/mga_storm.c
+index 96bb6b9..57fdba5 100644
+--- a/src/mga_storm.c
++++ b/src/mga_storm.c
+@@ -989,7 +989,12 @@ static void mgaRestoreAccelState(ScrnInfoPtr pScrn)
#if X_BYTE_ORDER == X_LITTLE_ENDIAN
OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT );
#else
@@ -303,7 +307,7 @@
#endif
OUTREG(MGAREG_CXBNDRY, 0xFFFF0000); /* (maxX << 16) | minX */
OUTREG(MGAREG_YTOP, 0x00000000); /* minPixelPointer */
-@@ -1077,9 +1082,9 @@
+@@ -1077,9 +1082,9 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
maccess |= (1 << 31);
}