summaryrefslogtreecommitdiff
path: root/extra/xf86-video-mga
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2012-04-03 14:54:55 +0000
committerParabola <dev@list.parabolagnulinux.org>2012-04-03 14:54:55 +0000
commitb618c3d0693aec564c6746238fd05d94e31d3b76 (patch)
tree4a4834f3097bba25dba1adeba4324080c1b4bf7b /extra/xf86-video-mga
parent8cb5196780766f47b595410eed8ddbee2e8add08 (diff)
Tue Apr 3 14:54:45 UTC 2012
Diffstat (limited to 'extra/xf86-video-mga')
-rw-r--r--extra/xf86-video-mga/git-fixes.patch5192
1 files changed, 0 insertions, 5192 deletions
diff --git a/extra/xf86-video-mga/git-fixes.patch b/extra/xf86-video-mga/git-fixes.patch
deleted file mode 100644
index 70650b0d1..000000000
--- a/extra/xf86-video-mga/git-fixes.patch
+++ /dev/null
@@ -1,5192 +0,0 @@
-From 951474c7fcd1b28d3178a6644d58958cb3bdf5a8 Mon Sep 17 00:00:00 2001
-From: Yannick Heneault <yheneaul@matrox.com>
-Date: Wed, 25 Aug 2010 15:16:27 +0000
-Subject: modified G200SE conditionnal statement about revision register for products compatibility.
-
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 5a1e9b4..83649ee 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -1081,7 +1081,7 @@ MGACountRam(ScrnInfoPtr pScrn)
-
- if (pMga->is_G200SE)
- pMga->reg_1e24 = INREG(0x1e24); /* stash the model for later */
-- if (pMga->reg_1e24 == 0x01) {
-+ if (pMga->reg_1e24 >= 0x01) {
- MGAUnmapMem(pScrn);
- ProbeSize = 16384;
- ProbeSizeOffset = 0x10000;
-@@ -3253,7 +3253,7 @@ MGA_HAL(
- MGA_NOT_HAL(
- if (pMga->is_G200SE) {
- OUTREG8(0x1FDE, 0x06);
-- if (pMga->reg_1e24 == 0x01)
-+ if (pMga->reg_1e24 >= 0x01)
- OUTREG8(0x1FDF, 0x03);
- else
- OUTREG8(0x1FDF, 0x14);
-@@ -4326,7 +4326,7 @@ MGAValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
- return MODE_VIRTUAL_X;
- if (mode->VDisplay > 1200)
- return MODE_VIRTUAL_Y;
-- if (pMga->reg_1e24 == 0x01 &&
-+ if (pMga->reg_1e24 >= 0x01 &&
- xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 244)
- return MODE_BANDWIDTH;
- } else if (pMga->is_G200WB){
---
-cgit v0.9.0.2-2-gbebe
-From 0bd44fad450843b7f1c35c70ab356a2b250d107d Mon Sep 17 00:00:00 2001
-From: Jesse Adkins <jesserayadkins@gmail.com>
-Date: Tue, 28 Sep 2010 20:29:51 +0000
-Subject: Purge cvs tags.
-
-Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
----
-diff --git a/man/mga.man b/man/mga.man
-index 3a7a9f8..e1e674f 100644
---- a/man/mga.man
-+++ b/man/mga.man
-@@ -1,4 +1,3 @@
--.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.man,v 1.7 2003/04/03 07:11:03 herrb Exp $
- .\" shorthand for double quote that works everywhere.
- .ds q \N'34'
- .TH mga __drivermansuffix__ __vendorversion__
-diff --git a/src/binding.h b/src/binding.h
-index 6dcd1e9..57e9b92 100644
---- a/src/binding.h
-+++ b/src/binding.h
-@@ -13,7 +13,6 @@
- @end
-
- ***************************************************************************************/
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/HALlib/binding.h,v 1.3 2000/10/24 22:45:08 dawes Exp $ */
-
- #ifndef _BINDING
- #define _BINDING
-diff --git a/src/mga.h b/src/mga.h
-index 2cb3d88..7725b56 100644
---- a/src/mga.h
-+++ b/src/mga.h
-@@ -1,4 +1,3 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.87tsi Exp $ */
- /*
- * MGA Millennium (MGA2064W) functions
- *
-diff --git a/src/mga_common.h b/src/mga_common.h
-index 90f6b37..81be2bc 100644
---- a/src/mga_common.h
-+++ b/src/mga_common.h
-@@ -25,8 +25,6 @@
- * Converted to common header format:
- * Jens Owen <jens@tungstengraphics.com>
- *
-- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_common.h,v 1.2 2002/12/16 16:19:18 dawes Exp $
-- *
- */
-
- #ifndef _MGA_COMMON_H_
-diff --git a/src/mga_dri.h b/src/mga_dri.h
-index f1afb5d..1984b9c 100644
---- a/src/mga_dri.h
-+++ b/src/mga_dri.h
-@@ -1,5 +1,3 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.h,v 1.6 2001/04/10 16:08:01 dawes Exp $ */
--
- /*
- * Copyright 2000 VA Linux Systems Inc., Fremont, California.
- * All Rights Reserved.
-diff --git a/src/mga_dripriv.h b/src/mga_dripriv.h
-index 3ddd133..feca134 100644
---- a/src/mga_dripriv.h
-+++ b/src/mga_dripriv.h
-@@ -1,5 +1,3 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dripriv.h,v 1.4 2001/04/10 16:08:01 dawes Exp $ */
--
- /*
- * Copyright 2000 VA Linux Systems Inc., Fremont, California.
- * All Rights Reserved.
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 83649ee..72e7acc 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -1,4 +1,3 @@
--/* $XConsortium: mga_driver.c /main/12 1996/10/28 05:13:26 kaleb $ */
- /*
- * MGA Millennium (MGA2064W) with Ti3026 RAMDAC driver v.1.1
- *
-diff --git a/src/mga_macros.h b/src/mga_macros.h
-index 69dc8e3..bffd063 100644
---- a/src/mga_macros.h
-+++ b/src/mga_macros.h
-@@ -1,5 +1,3 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_macros.h,v 1.21 2001/09/26 12:59:17 alanh Exp $ */
--
- #ifndef _MGA_MACROS_H_
- #define _MGA_MACROS_H_
-
-diff --git a/src/mga_reg.h b/src/mga_reg.h
-index 6251976..ffe4723 100644
---- a/src/mga_reg.h
-+++ b/src/mga_reg.h
-@@ -1,11 +1,3 @@
--/* $XConsortium: mgareg.h /main/2 1996/10/25 10:33:21 kaleb $ */
--
--
--
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h,v 1.18 2001/09/26 12:59:18 alanh Exp $ */
--
--
--
- /*
- * MGA Millennium (MGA2064W) functions
- * MGA Mystique (MGA1064SG) functions
-diff --git a/src/mga_sarea.h b/src/mga_sarea.h
-index c5ffbbc..16fc9ce 100644
---- a/src/mga_sarea.h
-+++ b/src/mga_sarea.h
-@@ -1,5 +1,3 @@
--/* $XFree86$ */
--
- /*
- * Copyright 2000 Gareth Hughes
- * All Rights Reserved.
-diff --git a/src/mgareg_flags.h b/src/mgareg_flags.h
-index 69050fc..548af86 100644
---- a/src/mgareg_flags.h
-+++ b/src/mgareg_flags.h
-@@ -19,7 +19,6 @@
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mgareg_flags.h,v 1.2 2003/01/12 03:55:47 tsi Exp $ */
-
- #ifndef _MGAREGS_H_
- #define _MGAREGS_H_
-diff --git a/util/stormdwg.c b/util/stormdwg.c
-index 99f76cc..b43cc32 100644
---- a/util/stormdwg.c
-+++ b/util/stormdwg.c
-@@ -1,8 +1,3 @@
--/* $XConsortium: dwg.c /main/2 1996/10/28 06:57:55 kaleb $ */
--
--
--
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/util/stormdwg.c,v 1.1 1997/04/12 14:11:29 hohndel Exp $ */
-
- #include <stdio.h>
- #include <stdlib.h>
---
-cgit v0.9.0.2-2-gbebe
-From 636c3c88e7e9cb30010fe1731cd7356849f3f172 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Thu, 14 Oct 2010 18:36:06 +0000
-Subject: Don't allow the config file to override BIOS location
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 72e7acc..37bf847 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -1779,23 +1779,16 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- #ifndef XSERVER_LIBPCIACCESS
- /*
- * Find the BIOS base. Get it from the PCI config if possible. Otherwise
-- * use the VGA default. Allow the config file to override this.
-+ * use the VGA default.
- */
-
-- pMga->BiosFrom = X_NONE;
-- if (pMga->device->BiosBase != 0) {
-- /* XXX This isn't used */
-- pMga->BiosAddress = pMga->device->BiosBase;
-- pMga->BiosFrom = X_CONFIG;
-- } else {
-- /* details: rombase sdk pp 4-15 */
-- if (pMga->PciInfo->biosBase != 0) {
-- pMga->BiosAddress = pMga->PciInfo->biosBase & 0xffff0000;
-- pMga->BiosFrom = X_PROBED;
-- } else if (pMga->Primary) {
-- pMga->BiosAddress = 0xc0000;
-- pMga->BiosFrom = X_DEFAULT;
-- }
-+ /* details: rombase sdk pp 4-15 */
-+ if (pMga->PciInfo->biosBase != 0) {
-+ pMga->BiosAddress = pMga->PciInfo->biosBase & 0xffff0000;
-+ pMga->BiosFrom = X_PROBED;
-+ } else if (pMga->Primary) {
-+ pMga->BiosAddress = 0xc0000;
-+ pMga->BiosFrom = X_DEFAULT;
- }
- if (pMga->BiosAddress) {
- xf86DrvMsg(pScrn->scrnIndex, pMga->BiosFrom, "BIOS at 0x%lX\n",
---
-cgit v0.9.0.2-2-gbebe
-From f7a2ef60e18e2cc464f69c1cad4681096c645651 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith@oracle.com>
-Date: Sat, 30 Oct 2010 16:38:31 +0000
-Subject: Sun's copyrights now belong to Oracle
-
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
----
-diff --git a/man/Makefile.am b/man/Makefile.am
-index b3688ce..1ea26b3 100644
---- a/man/Makefile.am
-+++ b/man/Makefile.am
-@@ -1,5 +1,5 @@
- #
--# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
-+# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- #
- # Permission is hereby granted, free of charge, to any person obtaining a
- # copy of this software and associated documentation files (the "Software"),
-@@ -19,7 +19,7 @@
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- # DEALINGS IN THE SOFTWARE.
--#
-+#
-
- drivermandir = $(DRIVER_MAN_DIR)
-
---
-cgit v0.9.0.2-2-gbebe
-From 5f1b04e86e79938c8158055a777280a649f95510 Mon Sep 17 00:00:00 2001
-From: Yannick Heneault <yheneaul@matrox.com>
-Date: Fri, 17 Dec 2010 14:00:46 +0000
-Subject: added support for G200ER.
-
----
-diff --git a/src/mga.h b/src/mga.h
-index 7725b56..c520e86 100644
---- a/src/mga.h
-+++ b/src/mga.h
-@@ -136,6 +136,10 @@ void MGAdbg_outreg32(ScrnInfoPtr, int,int, char*);
- #define PCI_CHIP_MGAG200_EH_PCI 0x0533
- #endif
-
-+#ifndef PCI_CHIP_MGAG200_ER_PCI
-+#define PCI_CHIP_MGAG200_ER_PCI 0x0534
-+#endif
-+
- /*
- * Read/write to the DAC via MMIO
- */
-@@ -199,7 +203,9 @@ void MGAdbg_outreg32(ScrnInfoPtr, int,int, char*);
- typedef struct {
- unsigned char ExtVga[6];
- unsigned char DacClk[6];
-- unsigned char * DacRegs;
-+ unsigned char ExtVga_Index24;
-+ unsigned char Dac_Index90;
-+ unsigned char * DacRegs;
- unsigned long crtc2[0x58];
- unsigned char dac2[0x21];
- CARD32 Option;
-@@ -478,6 +484,7 @@ typedef struct {
- int is_G200WB:1;
- int is_G200EV:1;
- int is_G200EH:1;
-+ int is_G200ER:1;
-
- int KVM;
-
-diff --git a/src/mga_dacG.c b/src/mga_dacG.c
-index df00765..fca1031 100644
---- a/src/mga_dacG.c
-+++ b/src/mga_dacG.c
-@@ -444,6 +444,116 @@ MGAG200WBPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
- outMGAdac(MGA1064_REMHEADCTL, ucTempByte);
- }
-
-+#define G200ER_PLLREF 48000
-+#define G200ER_VCOMIN 1056000
-+#define G200ER_VCOMAX 1488000
-+
-+static void MGAG200ERComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *piM, int *piN, int *piP)
-+{
-+
-+ int ulM;
-+ int ulN;
-+ int ulO;
-+ int ulR;
-+
-+ CARD32 ulComputedFo;
-+ CARD32 ulVco;
-+ CARD32 ulFDelta;
-+ CARD32 ulFTmpDelta;
-+
-+ CARD32 aulMDivValue[] = {1, 2, 4, 8};
-+
-+ CARD32 ulFo = lFo;
-+
-+ ulFDelta = 0xFFFFFFFF;
-+
-+ for (ulR = 0; ulR < 4; ulR++)
-+ {
-+ if(ulFDelta==0) break;
-+ for (ulN = 5; (ulN <= 128) ; ulN++)
-+ {
-+ if(ulFDelta==0) break;
-+ for (ulM = 3; ulM >= 0; ulM--)
-+ {
-+ if(ulFDelta==0) break;
-+ for (ulO = 5; ulO <= 32; ulO++)
-+ {
-+ ulVco = (G200ER_PLLREF * (ulN+1)) / (ulR+1);
-+ // Validate vco
-+ if (ulVco < G200ER_VCOMIN) continue;
-+ if (ulVco > G200ER_VCOMAX) continue;
-+ ulComputedFo = ulVco / (aulMDivValue[ulM] * (ulO+1));
-+
-+ if (ulComputedFo > ulFo)
-+ {
-+ ulFTmpDelta = ulComputedFo - ulFo;
-+ }
-+ else
-+ {
-+ ulFTmpDelta = ulFo - ulComputedFo;
-+ }
-+
-+ if (ulFTmpDelta < ulFDelta)
-+ {
-+ ulFDelta = ulFTmpDelta;
-+ // XG200ERPIXPLLCM M<1:0> O<7:3>
-+ *piM = (CARD8)ulM | (CARD8)(ulO<<3);
-+ //
-+ // XG200ERPIXPLLCN N<6:0>
-+ *piN = (CARD8)ulN;
-+ //
-+ // XG200ERPIXPLLCP R<1:0> cg<7:4> (Use R value)
-+ *piP = (CARD8)ulR | (CARD8)(ulR<<3);
-+
-+ // Test
-+ int ftest = (G200ER_PLLREF * (ulN+1)) / ((ulR+1) * aulMDivValue[ulM] * (ulO+1));
-+ ftest=ftest;
-+ }
-+ } // End O Loop
-+ } // End M Loop
-+ } // End N Loop
-+ } // End R Loop
-+}
-+
-+static void
-+MGAG200ERPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
-+{
-+ //TODO G200ER Validate sequence
-+ CARD8 ucPixCtrl, ucTempByte;
-+ MGAPtr pMga = MGAPTR(pScrn);
-+
-+
-+ // Set pixclkdis to 1
-+ ucPixCtrl = inMGAdac(MGA1064_PIX_CLK_CTL);
-+ ucPixCtrl |= MGA1064_PIX_CLK_CTL_CLK_DIS;
-+ outMGAdac(MGA1064_PIX_CLK_CTL, ucPixCtrl);
-+
-+ ucTempByte = inMGAdac(MGA1064_REMHEADCTL);
-+ ucTempByte |= MGA1064_REMHEADCTL_CLKDIS;
-+ outMGAdac(MGA1064_REMHEADCTL, ucTempByte);
-+
-+ // Select PLL Set C
-+ ucTempByte = INREG8(MGAREG_MEM_MISC_READ);
-+ ucTempByte |= (0x3<<2) | 0xc0; //select MGA pixel clock
-+ OUTREG8(MGAREG_MEM_MISC_WRITE, ucTempByte);
-+
-+ ucPixCtrl &= ~MGA1064_PIX_CLK_CTL_CLK_DIS;
-+ ucPixCtrl |= MGA1064_PIX_CLK_CTL_CLK_POW_DOWN;
-+ outMGAdac(MGA1064_PIX_CLK_CTL, ucPixCtrl);
-+
-+ // Wait 500 us
-+ usleep(500);
-+
-+ // Program the Pixel PLL Register
-+ outMGAdac(MGA1064_ER_PIX_PLLC_N, mgaReg->PllN);
-+ outMGAdac(MGA1064_ER_PIX_PLLC_M, mgaReg->PllM);
-+ outMGAdac(MGA1064_ER_PIX_PLLC_P, mgaReg->PllP);
-+
-+ // Wait 50 us
-+ usleep(50);
-+
-+}
-+
- static void
- MGAG200WBPrepareForModeSwitch(ScrnInfoPtr pScrn)
- {
-@@ -768,8 +878,13 @@ MGAGSetPCLK( ScrnInfoPtr pScrn, long f_out )
-
- pReg->PllM = m;
- pReg->PllN = n;
-- pReg->PllP = p;
-- } else {
-+ pReg->PllP = p;
-+ } else if (pMga->is_G200ER) {
-+ MGAG200ERComputePLLParam(pScrn, f_out, &m, &n, &p);
-+ pReg->PllM = m;
-+ pReg->PllN = n;
-+ pReg->PllP = p;
-+ } else {
- /* Do the calculations for m, n, p and s */
- MGAGCalcClock( pScrn, f_out, &m, &n, &p, &s );
-
-@@ -966,6 +1081,10 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- pReg->Option2 = 0x0000b000;
- break;
-
-+ case PCI_CHIP_MGAG200_ER_PCI:
-+ pReg->Dac_Index90 = 0;
-+ break;
-+
- case PCI_CHIP_MGAG200_EH_PCI:
- pReg->DacRegs[MGA1064_MISC_CTL] =
- MGA1064_MISC_CTL_VGA8 |
-@@ -1088,6 +1207,7 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- if (pMga->is_G200WB){
- pReg->ExtVga[1] |= 0x88;
- }
-+ pReg->ExtVga_Index24 = 0x05;
-
- pVga->CRTC[0] = ht - 4;
- pVga->CRTC[1] = hd;
-@@ -1327,10 +1447,15 @@ MGA_NOT_HAL(
- if ( (pMga->is_G200EV || pMga->is_G200WB || pMga->is_G200EH) &&
- (i >= 0x44) && (i <= 0x4E))
- continue;
--
-+
- outMGAdac(i, mgaReg->DacRegs[i]);
- }
-
-+ if (pMga->is_G200ER)
-+ {
-+ outMGAdac(0x90, mgaReg->Dac_Index90);
-+ }
-+
- if (!MGAISGx50(pMga)) {
- /* restore pci_option register */
- #ifdef XSERVER_LIBPCIACCESS
-@@ -1361,7 +1486,9 @@ MGA_NOT_HAL(
- #endif
- }
-
-- if (pMga->is_G200EV) {
-+ if (pMga->is_G200ER) {
-+ MGAG200ERPIXPLLSET(pScrn, mgaReg);
-+ } else if (pMga->is_G200EV) {
- MGAG200EVPIXPLLSET(pScrn, mgaReg);
- } else if (pMga->is_G200WB) {
- MGAG200WBPIXPLLSET(pScrn, mgaReg);
-@@ -1388,6 +1515,11 @@ MGA_NOT_HAL(
- for (i = 0; i < 6; i++)
- OUTREG16(MGAREG_CRTCEXT_INDEX, (mgaReg->ExtVga[i] << 8) | i);
-
-+ if (pMga->is_G200ER) {
-+ OUTREG8(MGAREG_CRTCEXT_INDEX, 0x24);
-+ OUTREG8(MGAREG_CRTCEXT_DATA, mgaReg->ExtVga_Index24);
-+ }
-+
- /* This handles restoring the generic VGA registers. */
- if (pMga->is_G200SE) {
- MGAG200SERestoreMode(pScrn, vgaReg);
-@@ -1404,7 +1536,7 @@ MGA_NOT_HAL(
- OUTREG16(MGAREG_CRTCEXT_INDEX, 6);
- OUTREG16(MGAREG_CRTCEXT_DATA, 0);
- }
--
-+
- /*
- * this is needed to properly restore start address
- */
-@@ -1555,6 +1687,11 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
- mgaReg->PllM = inMGAdac(MGA1064_EH_PIX_PLLC_M);
- mgaReg->PllN = inMGAdac(MGA1064_EH_PIX_PLLC_N);
- mgaReg->PllP = inMGAdac(MGA1064_EH_PIX_PLLC_P);
-+ } else if (pMga->is_G200ER) {
-+ mgaReg->PllM = inMGAdac(MGA1064_ER_PIX_PLLC_M);
-+ mgaReg->PllN = inMGAdac(MGA1064_ER_PIX_PLLC_N);
-+ mgaReg->PllP = inMGAdac(MGA1064_ER_PIX_PLLC_P);
-+ mgaReg->Dac_Index90 = inMGAdac(0x90);
- }
-
- mgaReg->PIXPLLCSaved = TRUE;
-@@ -1583,6 +1720,11 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
- OUTREG8(MGAREG_CRTCEXT_INDEX, i);
- mgaReg->ExtVga[i] = INREG8(MGAREG_CRTCEXT_DATA);
- }
-+ if (pMga->is_G200ER)
-+ {
-+ OUTREG8(MGAREG_CRTCEXT_INDEX, 0x24);
-+ mgaReg->ExtVga_Index24 = INREG8(MGAREG_CRTCEXT_DATA);
-+ }
-
- #ifdef DEBUG
- ErrorF("Saved values:\nDAC:");
-@@ -1737,7 +1879,7 @@ static const struct mgag_i2c_private {
- { (1 << 0), (1 << 2) },
- { (1 << 4), (1 << 5) },
- { (1 << 0), (1 << 1) }, /* G200SE, G200EV and G200WB I2C bits */
-- { (1 << 1), (1 << 0) }, /* G200EH I2C bits */
-+ { (1 << 1), (1 << 0) }, /* G200EH, G200ER I2C bits */
- };
-
-
-@@ -1750,7 +1892,7 @@ MGAG_ddc1Read(ScrnInfoPtr pScrn)
-
- if (pMga->is_G200SE || pMga->is_G200WB || pMga->is_G200EV)
- i2c_index = 3;
-- else if (pMga->is_G200EH)
-+ else if (pMga->is_G200EH || pMga->is_G200ER)
- i2c_index = 4;
- else
- i2c_index = 0;
-@@ -1851,7 +1993,7 @@ MGAG_i2cInit(ScrnInfoPtr pScrn)
-
- if (pMga->is_G200SE || pMga->is_G200WB || pMga->is_G200EV)
- i2c_index = 3;
-- else if (pMga->is_G200EH)
-+ else if (pMga->is_G200EH || pMga->is_G200ER)
- i2c_index = 4;
- else
- i2c_index = 0;
-@@ -1976,7 +2118,7 @@ void MGAGSetupFuncs(ScrnInfoPtr pScrn)
- pMga->Save = MGAGSave;
- pMga->Restore = MGAGRestore;
- pMga->ModeInit = MGAGInit;
-- if (!pMga->is_G200WB){
-+ if ((!pMga->is_G200WB) && (!pMga->is_G200ER)) {
- pMga->ddc1Read = MGAG_ddc1Read;
- /* vgaHWddc1SetSpeed will only work if the card is in VGA mode */
- pMga->DDC1SetSpeed = vgaHWddc1SetSpeedWeak();
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 37bf847..7232c73 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -403,6 +403,21 @@ static const struct mga_device_attributes attribs[] = {
- 8192, 0x4000, /* Memory probe size & offset values */
- },
-
-+ /* G200ER */
-+ [15] = { 0, 1, 0, 0, 1, 0, 0, 0, new_BARs,
-+ (TRANSC_SOLID_FILL | TWO_PASS_COLOR_EXPAND | USE_LINEAR_EXPANSION),
-+ {
-+ { 50000, 230000 }, /* System VCO frequencies */
-+ { 50000, 203400 }, /* Pixel VCO frequencies */
-+ { 0, 0 }, /* Video VCO frequencies */
-+ 45000, /* Memory clock */
-+ 27050, /* PLL reference frequency */
-+ 0, /* Supports fast bitblt? */
-+ MGA_HOST_PCI /* Host interface */
-+ },
-+
-+ 16384, 0x4000, /* Memory probe size & offset values */
-+ }
- };
-
- #ifdef XSERVER_LIBPCIACCESS
-@@ -432,6 +447,8 @@ static const struct pci_id_match mga_device_match[] = {
-
- MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_EH_PCI, 14 ),
-
-+ MGA_DEVICE_MATCH(PCI_CHIP_MGAG200_ER_PCI, 15 ),
-+
- { 0, 0, 0 },
- };
- #endif
-@@ -449,6 +466,7 @@ static SymTabRec MGAChipsets[] = {
- { PCI_CHIP_MGAG200_SE_A_PCI, "mgag200 SE A PCI" },
- { PCI_CHIP_MGAG200_SE_B_PCI, "mgag200 SE B PCI" },
- { PCI_CHIP_MGAG200_EV_PCI, "mgag200 EV Maxim" },
-+ { PCI_CHIP_MGAG200_ER_PCI, "mgag200 ER SH7757" },
- { PCI_CHIP_MGAG200_WINBOND_PCI, "mgag200 eW Nuvoton" },
- { PCI_CHIP_MGAG200_EH_PCI, "mgag200eH" },
- { PCI_CHIP_MGAG400, "mgag400" },
-@@ -471,6 +489,8 @@ static PciChipsets MGAPciChipsets[] = {
- RES_SHARED_VGA },
- { PCI_CHIP_MGAG200_EV_PCI, PCI_CHIP_MGAG200_EV_PCI,
- RES_SHARED_VGA },
-+ { PCI_CHIP_MGAG200_ER_PCI, PCI_CHIP_MGAG200_ER_PCI,
-+ RES_SHARED_VGA },
- { PCI_CHIP_MGAG200_WINBOND_PCI, PCI_CHIP_MGAG200_WINBOND_PCI,
- RES_SHARED_VGA },
- { PCI_CHIP_MGAG200_EH_PCI, PCI_CHIP_MGAG200_EH_PCI,
-@@ -912,6 +932,11 @@ MGAProbe(DriverPtr drv, int flags)
- case PCI_CHIP_MGAG200_EH_PCI:
- attrib_no = 14;
- break;
-+
-+ case PCI_CHIP_MGAG200_ER_PCI:
-+ attrib_no = 15;
-+ break;
-+
-
- default:
- return FALSE;
-@@ -1285,6 +1310,11 @@ MGAdoDDC(ScrnInfoPtr pScrn)
- MGASave(pScrn);
-
- /* It is now safe to talk to the card */
-+ /* Allow access to DDC */
-+ if (pMga->is_G200ER) {
-+ CARD8 ucData = inMGAdac(MGA1064_GEN_IO_CTL2);
-+ outMGAdac(MGA1064_GEN_IO_CTL2, ucData | 1);
-+ }
-
- /* Initialize I2C buses - used by DDC if available */
- if (pMga->i2cInit) {
-@@ -1326,6 +1356,12 @@ MGAdoDDC(ScrnInfoPtr pScrn)
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "end of monitor info\n");
- }
-
-+ /* Remove access to DDC */
-+ if (pMga->is_G200ER) {
-+ CARD8 ucData = inMGAdac(MGA1064_GEN_IO_CTL2);
-+ outMGAdac(MGA1064_GEN_IO_CTL2, ucData & ~1);
-+ }
-+
- /* Restore previous state and unmap MGA memory and MMIO areas */
- MGARestore(pScrn);
- MGAUnmapMem(pScrn);
-@@ -1619,6 +1655,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- pMga->is_G200EV = (pMga->Chipset == PCI_CHIP_MGAG200_EV_PCI);
- pMga->is_G200WB = (pMga->Chipset == PCI_CHIP_MGAG200_WINBOND_PCI);
- pMga->is_G200EH = (pMga->Chipset == PCI_CHIP_MGAG200_EH_PCI);
-+ pMga->is_G200ER = (pMga->Chipset == PCI_CHIP_MGAG200_ER_PCI);
-
- #ifdef USEMGAHAL
- if (pMga->chip_attribs->HAL_chipset) {
-@@ -1782,14 +1819,14 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- * use the VGA default.
- */
-
-- /* details: rombase sdk pp 4-15 */
-- if (pMga->PciInfo->biosBase != 0) {
-- pMga->BiosAddress = pMga->PciInfo->biosBase & 0xffff0000;
-- pMga->BiosFrom = X_PROBED;
-- } else if (pMga->Primary) {
-- pMga->BiosAddress = 0xc0000;
-- pMga->BiosFrom = X_DEFAULT;
-- }
-+ /* details: rombase sdk pp 4-15 */
-+ if (pMga->PciInfo->biosBase != 0) {
-+ pMga->BiosAddress = pMga->PciInfo->biosBase & 0xffff0000;
-+ pMga->BiosFrom = X_PROBED;
-+ } else if (pMga->Primary) {
-+ pMga->BiosAddress = 0xc0000;
-+ pMga->BiosFrom = X_DEFAULT;
-+ }
- if (pMga->BiosAddress) {
- xf86DrvMsg(pScrn->scrnIndex, pMga->BiosFrom, "BIOS at 0x%lX\n",
- (unsigned long)pMga->BiosAddress);
-@@ -2134,6 +2171,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- case PCI_CHIP_MGAG400:
- case PCI_CHIP_MGAG550:
- MGAGSetupFuncs(pScrn);
-@@ -2247,6 +2285,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- pMga->SrcOrg = 0;
- pMga->DstOrg = 0;
- break;
-@@ -2424,16 +2463,17 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- maxPitch = 2048;
- break;
- case PCI_CHIP_MGAG200_SE_A_PCI:
-- if (pScrn->videoRam < 2048){
-+ if (pScrn->videoRam < 2048){
- maxPitch = 1280;
-- }
-- break;
-+ }
-+ break;
- case PCI_CHIP_MGAG200:
- case PCI_CHIP_MGAG200_PCI:
- case PCI_CHIP_MGAG200_SE_B_PCI:
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- case PCI_CHIP_MGAG400:
- case PCI_CHIP_MGAG550:
- maxPitch = 4096;
-@@ -4332,10 +4372,13 @@ MGAValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
- return MODE_BANDWIDTH;
- } else if (pMga->is_G200EV
- && (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 327)) {
-- return MODE_BANDWIDTH;
-+ return MODE_BANDWIDTH;
- } else if (pMga->is_G200EH
- && (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 375)) {
- return MODE_BANDWIDTH;
-+ } else if (pMga->is_G200ER
-+ && (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 550)) {
-+ return MODE_BANDWIDTH;
- }
-
- lace = 1 + ((mode->Flags & V_INTERLACE) != 0);
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index 753f752..1fd0572 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -363,6 +363,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- case PCI_CHIP_MGAG400:
- case PCI_CHIP_MGAG550:
- MGAGSetupFuncs(pScrn);
-@@ -518,6 +519,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- case PCI_CHIP_MGAG400:
- case PCI_CHIP_MGAG550:
- maxPitch = 4096;
-diff --git a/src/mga_reg.h b/src/mga_reg.h
-index ffe4723..5a37db6 100644
---- a/src/mga_reg.h
-+++ b/src/mga_reg.h
-@@ -369,6 +369,7 @@
- #define MGA1064_MISC_CTL_VGA8 ( 0x01 << 3 )
- #define MGA1064_MISC_CTL_DAC_RAM_CS ( 0x01 << 4 )
-
-+#define MGA1064_GEN_IO_CTL2 0x29
- #define MGA1064_GEN_IO_CTL 0x2a
- #define MGA1064_GEN_IO_DATA 0x2b
- #define MGA1064_SYS_PLL_M 0x2c
-@@ -429,6 +430,10 @@
- #define MGA1064_EH_PIX_PLLC_N 0xb7
- #define MGA1064_EH_PIX_PLLC_P 0xb8
-
-+/* Modified PLL for G200 Maxim (G200ER) */
-+#define MGA1064_ER_PIX_PLLC_M 0xb7
-+#define MGA1064_ER_PIX_PLLC_N 0xb6
-+#define MGA1064_ER_PIX_PLLC_P 0xb8
-
- #define MGA1064_DISP_CTL 0x8a
- #define MGA1064_DISP_CTL_DAC1OUTSEL_MASK 0x01
-diff --git a/src/mga_storm.c b/src/mga_storm.c
-index 87473c8..db7fae7 100644
---- a/src/mga_storm.c
-+++ b/src/mga_storm.c
-@@ -1131,6 +1131,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
- case PCI_CHIP_MGAG200_WINBOND_PCI:
- case PCI_CHIP_MGAG200_EV_PCI:
- case PCI_CHIP_MGAG200_EH_PCI:
-+ case PCI_CHIP_MGAG200_ER_PCI:
- pMga->SrcOrg = 0;
- OUTREG(MGAREG_SRCORG, pMga->realSrcOrg);
- OUTREG(MGAREG_DSTORG, pMga->DstOrg);
---
-cgit v0.9.0.2-2-gbebe
-From 43280e6521815582f219d42821d896093c9c0d5f Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Wed, 22 Jun 2011 21:02:29 +0000
-Subject: Don't include xf86Priv.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-diff --git a/src/mga_dri.c b/src/mga_dri.c
-index 3fda623..14f342f 100644
---- a/src/mga_dri.c
-+++ b/src/mga_dri.c
-@@ -32,7 +32,6 @@
-
- #include "xf86.h"
- #include "xf86_OSproc.h"
--#include "xf86Priv.h"
-
- #include "xf86PciInfo.h"
- #include "xf86Pci.h"
---
-cgit v0.9.0.2-2-gbebe
-From c083bf0a66bef9a4345847f39be5fb895c211f79 Mon Sep 17 00:00:00 2001
-From: Christian Toutant <ctoutant@matrox.com>
-Date: Wed, 03 Aug 2011 13:45:13 +0000
-Subject: Added support for G200SE Pilot3
-
-Optimize use of bandwidth and increase maximum resolution to 1920x1200
-
-Signed-off-by: Christian Toutant <ctoutant@matrox.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 7232c73..b140013 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -3282,15 +3282,71 @@ MGA_HAL(
- outb(0xfac, 0x02);
- }
-
-- MGA_NOT_HAL(
-- if (pMga->is_G200SE) {
-+ /*
-+ This function optimize the Priority Request control
-+ Higher HiPriLvl will reduce drawing performance
-+ We need to give enough bandwith to crtc to avoid visual artifact
-+ */
-+ if (pMga->is_G200SE)
-+ {
-+ if (pMga->reg_1e24 >= 0x02)
-+ {
-+ /* Calulate CRTC Priority value */
-+ CARD8 ucHiPriLvl;
-+ CARD32 ulBitsPerPixel;
-+ CARD32 ulMemoryBandwidth;
-+
-+ /* uiBitsPerPixel can only be 8,16 or32 */
-+ if (pScrn->bitsPerPixel > 16)
-+ {
-+ ulBitsPerPixel = 32;
-+ }
-+ else if (pScrn->bitsPerPixel > 8)
-+ {
-+ ulBitsPerPixel = 16;
-+ }
-+ else
-+ {
-+ ulBitsPerPixel = 8;
-+ }
-+
-+
-+ ulMemoryBandwidth = (mode->Clock * ulBitsPerPixel) / 1000;
-+
-+ if (ulMemoryBandwidth > 3100) ucHiPriLvl = 0;
-+ else if (ulMemoryBandwidth > 2600) ucHiPriLvl = 1;
-+ else if (ulMemoryBandwidth > 1900) ucHiPriLvl = 2;
-+ else if (ulMemoryBandwidth > 1160) ucHiPriLvl = 3;
-+ else if (ulMemoryBandwidth > 440) ucHiPriLvl = 4;
-+ else ucHiPriLvl = 5;
-+
- OUTREG8(0x1FDE, 0x06);
-- if (pMga->reg_1e24 >= 0x01)
-- OUTREG8(0x1FDF, 0x03);
-- else
-- OUTREG8(0x1FDF, 0x14);
-+ OUTREG8(0x1FDF, ucHiPriLvl);
-+
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Clock == %d\n", mode->Clock);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BitsPerPixel == %d\n", pScrn->bitsPerPixel);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "MemoryBandwidth == %d\n", ulMemoryBandwidth);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HiPriLvl == %02X\n", ucHiPriLvl);
- }
-- );
-+ else
-+ {
-+ MGA_NOT_HAL(
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Clock == %d\n", mode->Clock);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BitsPerPixel == %d\n", pScrn->bitsPerPixel);
-+ OUTREG8(0x1FDE, 0x06);
-+ if (pMga->reg_1e24 >= 0x01)
-+ {
-+ OUTREG8(0x1FDF, 0x03);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HiPriLvl == 03\n");
-+ }
-+ else
-+ {
-+ OUTREG8(0x1FDF, 0x14);
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HiPriLvl == 14h\n");
-+ }
-+ );
-+ }
-+ }
-
- pMga->CurrentLayout.mode = mode;
-
-@@ -4354,13 +4410,23 @@ MGAValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
- MGAPtr pMga = MGAPTR(pScrn);
-
- if (pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) {
-- if (mode->HDisplay > 1600)
-- return MODE_VIRTUAL_X;
-- if (mode->VDisplay > 1200)
-- return MODE_VIRTUAL_Y;
-- if (pMga->reg_1e24 >= 0x01 &&
-- xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 244)
-- return MODE_BANDWIDTH;
-+ if (pMga->reg_1e24 == 0x01) {
-+ if (mode->HDisplay > 1600)
-+ return MODE_VIRTUAL_X;
-+ if (mode->VDisplay > 1200)
-+ return MODE_VIRTUAL_Y;
-+ if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 244)
-+ return MODE_BANDWIDTH;
-+ } else {
-+ if (pMga->reg_1e24 >= 0x02) {
-+ if (mode->HDisplay > 1920)
-+ return MODE_VIRTUAL_X;
-+ if (mode->VDisplay > 1200)
-+ return MODE_VIRTUAL_Y;
-+ if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 301)
-+ return MODE_BANDWIDTH;
-+ }
-+ }
- } else if (pMga->is_G200WB){
- if (mode->Flags & V_DBLSCAN)
- return MODE_NO_DBLESCAN;
---
-cgit v0.9.0.2-2-gbebe
-From 01ca2186ea028b2549de509b51726aa08519fce0 Mon Sep 17 00:00:00 2001
-From: Christian Toutant <ctoutant@matrox.com>
-Date: Tue, 20 Sep 2011 17:07:16 +0000
-Subject: Reset tagfifo for renesas.
-
-For renesas, we need to reset tagfifo after a mode switch.
-
-Signed-off-by: Christian Toutant <ctoutant@matrox.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index b140013..58a1390 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -3282,6 +3282,28 @@ MGA_HAL(
- outb(0xfac, 0x02);
- }
-
-+ /* Reset tagfifo*/
-+ if (pMga->is_G200ER)
-+ {
-+ CARD32 ulMemCtl = INREG(MGAREG_MEMCTL);
-+ CARD8 ucSeq1;
-+
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reset tagfifo\n");
-+ /* Screen off */
-+ OUTREG8(MGAREG_SEQ_INDEX, 0x01); /* Select SEQ1 */
-+ ucSeq1 = INREG8(MGAREG_SEQ_DATA) | 0x20;
-+ OUTREG8(MGAREG_SEQ_DATA, ucSeq1);
-+
-+ /* Reset tagfifo */
-+ OUTREG(MGAREG_MEMCTL, ulMemCtl | 0x002000000);
-+ usleep(1000); /* wait 1ms */
-+ OUTREG(MGAREG_MEMCTL, ulMemCtl & ~0x002000000);
-+
-+ /* Screen on */
-+ OUTREG8(MGAREG_SEQ_DATA, ucSeq1 & ~0x20);
-+
-+ }
-+
- /*
- This function optimize the Priority Request control
- Higher HiPriLvl will reduce drawing performance
-diff --git a/src/mga_reg.h b/src/mga_reg.h
-index 5a37db6..ae0fe8c 100644
---- a/src/mga_reg.h
-+++ b/src/mga_reg.h
-@@ -119,6 +119,9 @@
- #define MGAREG_WACCEPTSEQ 0x1dd4
- #define MGAREG_WMISC 0x1e70
-
-+
-+#define MGAREG_MEMCTL 0x2E08
-+
- /* OPMODE register additives */
-
- #define MGAOPM_DMA_GENERAL (0x00 << 2)
---
-cgit v0.9.0.2-2-gbebe
-From ae90c47503bc1015a50e7ea6d22ec10e5e0d4113 Mon Sep 17 00:00:00 2001
-From: Jamey Sharp <jamey@minilop.net>
-Date: Tue, 13 Sep 2011 21:01:57 +0000
-Subject: Nothing uses clientlx.c, so delete it.
-
-Adam Jackson wrote:
-
- Hey, so, remember back in the dark ages when dualhead was this
- insanely wild differentiating feature? Matrox thought it was so
- special, in fact, that they hid most of the implementation of it
- (and a bunch of other stuff) in a binary-only blob called the
- HALlib. As you'd expect it was pretty much a cut-and-paste of
- the relevant Windows code, and then some open glue to keep it
- working; clientlx.c is that glue.
-
- I guess the theory was that if you don't tell people which
- registers to duplicate to implement a second pipe in their own
- hardware, they won't figure it out? A pretty eyeroll-worthy
- idea even at the time, and definitely not something we should be
- condoning anymore.
-
- Kill it with fire ...
-
-Signed-off-by: Jamey Sharp <jamey@minilop.net>
-Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
-Reviewed-by: Adam Jackson <ajax@redhat.com>
----
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 17211bb..44417de 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -32,7 +32,6 @@ mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
- mga_drv_la_SOURCES = \
- binding.h \
- client.h \
-- clientlx.c \
- mga_arc.c \
- mga_bios.c \
- mga_common.h \
-diff --git a/src/binding.h b/src/binding.h
-index 57e9b92..616aed7 100644
---- a/src/binding.h
-+++ b/src/binding.h
-@@ -37,37 +37,6 @@ typedef char CHAR;
- typedef unsigned char UCHAR;
- typedef unsigned char FAR*LPUCHAR;
-
--typedef struct TAGCLIENTTABLE{
-- ULONG (DECL *ClientReadConfigSpaceByte )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientReadConfigSpaceDword )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientWriteConfigSpaceByte )(LPVOID , ULONG, UCHAR);
-- ULONG (DECL *ClientWriteConfigSpaceDword )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientOpenRegisterBase )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientCloseRegisterBase )(LPVOID );
-- ULONG (DECL *ClientReadRegisterByte )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientReadRegisterDword )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientWriteRegisterByte )(LPVOID , ULONG, UCHAR);
-- ULONG (DECL *ClientWriteRegisterDword )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientOpenMemoryBase )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientCloseMemoryBase )(LPVOID );
-- ULONG (DECL *ClientReadMemoryByte )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientReadMemoryDword )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientWriteMemoryByte )(LPVOID , ULONG, UCHAR);
-- ULONG (DECL *ClientWriteMemoryDword )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientOpenSystemDevice )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientCloseSystemDevice )(LPVOID );
-- ULONG (DECL *ClientReadSystemDeviceByte )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientReadSystemDeviceDword )(LPVOID , ULONG, LPVOID );
-- ULONG (DECL *ClientWriteSystemDeviceByte )(LPVOID , ULONG, UCHAR);
-- ULONG (DECL *ClientWriteSystemDeviceDword )(LPVOID , ULONG, ULONG);
-- ULONG (DECL *ClientWait )(LPVOID , ULONG);
-- ULONG (DECL *ClientGetBiosInfo ) (LPVOID, LPVOID, LPVOID);
-- ULONG (DECL *ClientReadDDCEdid ) (LPVOID, LPVOID, ULONG);
--#ifdef DEBUG
-- ULONG (DECL *ClientDebug ) (LPVOID, ULONG, LPVOID, ULONG, LPVOID);
--#endif
--} CLIENTTABLE, FAR *LPCLIENTTABLE;
--
- #endif /* _INTERNALBINDING */
-
- /***************************************************************************************************
-diff --git a/src/client.h b/src/client.h
-index 8348b64..59aca5d 100644
---- a/src/client.h
-+++ b/src/client.h
-@@ -17,46 +17,6 @@ typedef struct TAGCLIENTDATA
- pointer pMga;
- } CLIENTDATA, *LPCLIENTDATA;
-
--extern ULONG DECL ClientReadConfigSpaceByte(LPBOARDHANDLE, ULONG, LPUCHAR);
--extern ULONG DECL ClientReadConfigSpaceDword(LPBOARDHANDLE , ULONG, LPULONG );
--extern ULONG DECL ClientWriteConfigSpaceByte (LPBOARDHANDLE , ULONG, UCHAR);
--extern ULONG DECL ClientWriteConfigSpaceDword(LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientOpenRegisterBase(LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientCloseRegisterBase (LPBOARDHANDLE );
--extern ULONG DECL ClientReadRegisterByte(LPBOARDHANDLE , ULONG, LPUCHAR );
--extern ULONG DECL ClientReadRegisterDword(LPBOARDHANDLE , ULONG, LPULONG );
--extern ULONG DECL ClientWriteRegisterByte (LPBOARDHANDLE , ULONG, UCHAR);
--extern ULONG DECL ClientWriteRegisterDword(LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientOpenMemoryBase(LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientCloseMemoryBase(LPBOARDHANDLE );
--extern ULONG DECL ClientReadMemoryByte(LPBOARDHANDLE , ULONG, LPUCHAR );
--extern ULONG DECL ClientReadMemoryDword (LPBOARDHANDLE , ULONG, LPULONG );
--extern ULONG DECL ClientWriteMemoryByte(LPBOARDHANDLE , ULONG, UCHAR);
--extern ULONG DECL ClientWriteMemoryDword (LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientOpenSystemDevice (LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientCloseSystemDevice (LPBOARDHANDLE );
--extern ULONG DECL ClientReadSystemDeviceByte(LPBOARDHANDLE , ULONG, LPUCHAR );
--extern ULONG DECL ClientReadSystemDeviceDword(LPBOARDHANDLE , ULONG, LPULONG );
--extern ULONG DECL ClientWriteSystemDeviceByte(LPBOARDHANDLE , ULONG, UCHAR);
--extern ULONG DECL ClientWriteSystemDeviceDword (LPBOARDHANDLE , ULONG, ULONG);
--extern ULONG DECL ClientWait (LPBOARDHANDLE , ULONG);
--extern ULONG DECL ClientLocateFirstTwisterOfQuad(ULONG);
--extern ULONG DECL ClientSearchDevNode(ULONG, UCHAR, UCHAR);
--extern ULONG DECL ClientGetBiosInfo(LPBOARDHANDLE, LPUCHAR, LPULONG );
--extern ULONG DECL ClientDebug (LPBOARDHANDLE , ULONG, LPUCHAR, ULONG, LPVOID);
--extern ULONG DECL ClientCallBiosInt10(LPBOARDHANDLE, LPBIOSREGS);
--extern ULONG DECL ClientReadDDCEdid(LPBOARDHANDLE, LPUCHAR, ULONG);
--extern ULONG DECL ClientCustomCall(LPBOARDHANDLE, ULONG, LPVOID, LPVOID);
--extern ULONG DECL ClientApplyEpromPatch(LPBOARDHANDLE);
--extern ULONG DECL ClientDetectHostInterface(LPBOARDHANDLE, LPULONG);
--extern ULONG DECL ClientHSLPatchFunction(LPBOARDHANDLE, ULONG, ULONG, LPUCHAR);
--extern ULONG DECL InitClientFunctions(LPBOARDHANDLE, ULONG);
--extern ULONG DECL ClientInitTimeBase(LPBOARDHANDLE);
--extern ULONG DECL ClientOpenDMABase(LPBOARDHANDLE, ULONG, ULONG);
--extern ULONG DECL ClientReadDMAByte(LPBOARDHANDLE, ULONG, LPUCHAR);
--extern ULONG DECL ClientReadBIOS(LPBOARDHANDLE, ULONG, ULONG, ULONG, ULONG, LPUCHAR);
--extern ULONG DECL ClientWriteBIOS(LPBOARDHANDLE, ULONG, ULONG, ULONG, ULONG);
--
- #if defined(__cplusplus)
- }
- #endif
-diff --git a/src/clientlx.c b/src/clientlx.c
-deleted file mode 100644
-index 9c6ab50..0000000
---- a/src/clientlx.c
-+++ b/dev/null
-@@ -1,848 +0,0 @@
--/******************************************************************************\
--
-- clientlx.c
--
-- Copyright © 1997, Matrox Graphics Inc.
--
-- All Rights Reserved.
--
--\******************************************************************************/
--#ifdef HAVE_CONFIG_H
--#include "config.h"
--#endif
--
--#include "xf86_OSproc.h"
--#include "xf86Pci.h"
--#include "client.h"
--#include "mga.h"
--
--CLIENTTABLE ClientFunctions = {
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadConfigSpaceByte,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadConfigSpaceDword,
-- (ULONG (DECL *)(LPVOID,ULONG,UCHAR)) ClientWriteConfigSpaceByte,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientWriteConfigSpaceDword,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientOpenRegisterBase,
-- (ULONG (DECL *)(LPVOID)) ClientCloseRegisterBase,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadRegisterByte,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadRegisterDword,
-- (ULONG (DECL *)(LPVOID,ULONG,UCHAR)) ClientWriteRegisterByte,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientWriteRegisterDword,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientOpenMemoryBase,
-- (ULONG (DECL *)(LPVOID)) ClientCloseMemoryBase,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadMemoryByte,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadMemoryDword,
-- (ULONG (DECL *)(LPVOID,ULONG,UCHAR)) ClientWriteMemoryByte,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientWriteMemoryDword,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientOpenSystemDevice,
-- (ULONG (DECL *)(LPVOID)) ClientCloseSystemDevice,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadSystemDeviceByte,
-- (ULONG (DECL *)(LPVOID,ULONG,LPVOID)) ClientReadSystemDeviceDword,
-- (ULONG (DECL *)(LPVOID,ULONG,UCHAR)) ClientWriteSystemDeviceByte,
-- (ULONG (DECL *)(LPVOID,ULONG,ULONG)) ClientWriteSystemDeviceDword,
-- (ULONG (DECL *)(LPVOID,ULONG)) ClientWait,
-- (ULONG (DECL *)(LPVOID,LPVOID,LPVOID)) ClientGetBiosInfo,
-- (ULONG (DECL *)(LPVOID,LPVOID,ULONG)) ClientReadDDCEdid
--};
--
--/******************************************************************************\
--
-- Function : ClientReadConfigSpaceByte
--
-- Description : Read a Byte from the configuration space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specifib board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR *pucByte | pointer to a byte that will receive
-- the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadConfigSpaceByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR *pucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr)pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
--#ifdef XSERVER_LIBPCIACCESS
-- pci_device_cfg_read_u8(pMga->PciInfo, pucByte, ulOffset);
--#else
-- *pucByte = pciReadByte(pMga->PciTag,ulOffset);
--#endif
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadConfigSpaceDword
--
-- Description : Read a Dword from the configuration space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG *pulDword | Dword to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadConfigSpaceDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG *pulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr)pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
--#ifdef XSERVER_LIBPCIACCESS
-- pci_device_cfg_read_u32(pMga->PciInfo, (uint32_t *) pulDword, ulOffset);
--#else
-- *pulDword = pciReadLong(pMga->PciTag,ulOffset);
--#endif
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteConfigSpaceByte
--
-- Description : Write a Byte from the configuration space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR ucByte | Byte to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteConfigSpaceByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR ucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr)pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
--#ifdef XSERVER_LIBPCIACCESS
-- pci_device_cfg_write_u8(pMga->PciInfo, ucByte, ulOffset);
--#else
-- pciWriteByte(pMga->PciTag,ulOffset, ucByte);
--#endif
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteConfigSpaceDword
--
-- Description : Write a Dword from the configuration space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG ulDword | Dword containing the data to be written
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteConfigSpaceDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG ulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr)pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
--#ifdef XSERVER_LIBPCIACCESS
-- pci_device_cfg_write_u32(pMga->PciInfo, (uint32_t) ulDword, ulOffset);
--#else
-- pciWriteLong(pMga->PciTag,ulOffset, ulDword);
--#endif
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientOpenRegisterBase
--
-- Description : Map the register base for future call to ClientReadRegisterX
-- and ClientWriteRegisterX.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulAddress | Physical address of the Register aperture
-- ULONG ulSize | Size in Byte of the Register Aperture
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientOpenRegisterBase(LPBOARDHANDLE pBoard, ULONG ulAddress, ULONG ulSize)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr)pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
-- pClientStruct->ulRegisterBase = (ULONG) pMga->IOBase;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientCloseRegisterBase
--
-- Description : Unmap the register base address and free resources needed
-- to address it.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientCloseRegisterBase(LPBOARDHANDLE pBoard)
--{
-- ASSERT_HANDLER(pBoard);
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadRegisterByte
--
-- Description : Read a byte from the Register space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure.
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR *pucByte | pointer to the byte that will receive
-- the data.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadRegisterByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR *pucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *pucByte = *((UCHAR *)(pClientStruct->ulRegisterBase + ulOffset));
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadRegisterDword
--
-- Description : Read a Dword from the Register space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG *pulDword | pointer to the dword that will receive
-- the data.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadRegisterDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG *pulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *pulDword = *((ULONG *)(pClientStruct->ulRegisterBase + ulOffset));
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteRegisterByte
--
-- Description : Write a Byte from the Register space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR ucByte | CHAR to receive the data.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteRegisterByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR ucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *((UCHAR *)(pClientStruct->ulRegisterBase + ulOffset)) = ucByte;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteRegisterSpaceDword
--
-- Description : Write a Dword from the Register space.
--
-- I/O Desc. : LPBOARDHANDLE *| pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG ulDword | Dword to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteRegisterDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG ulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *((ULONG *)(pClientStruct->ulRegisterBase + ulOffset)) = ulDword;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientOpenMemoryBase
--
-- Description : Map the Memory base for future call to ClientReadMemoryX
-- and ClientWriteMemoryX.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulAddress | Physical address of the Register aperture
-- ULONG ulSize | Size in Byte of the Register Aperture
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientOpenMemoryBase(LPBOARDHANDLE pBoard, ULONG ulAddress, ULONG ulSize)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
-- MGAPtr pMga = (MGAPtr) pClientStruct->pMga;
--
-- ASSERT_HANDLER(pBoard);
--
-- pClientStruct->ulFrameBufferBase = (ULONG) pMga->FbBase;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientCloseMemoryBase
--
-- Description : Unmap the Frame Buffer aperture and free resources
-- needed to address it.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientCloseMemoryBase(LPBOARDHANDLE pBoard)
--{
-- ASSERT_HANDLER(pBoard);
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadMemoryByte
--
-- Description : Read a Byte from the Frame Buffer space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR *ucByte | CHAR to receive the data
--
-- Return Val : ULONG
--\******************************************************************************/
--ULONG ClientReadMemoryByte(LPBOARDHANDLE pBoard, ULONG ulOffset, UCHAR *pucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *pucByte = *((UCHAR *)(pClientStruct->ulFrameBufferBase + ulOffset));
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadMemoryDword
--
-- Description : Read a Dword from the Frame Buffer Space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG *uDword | Dword to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadMemoryDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG *pulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *pulDword = *((ULONG *)(pClientStruct->ulFrameBufferBase + ulOffset));
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteMemoryByte
--
-- Description : Write a Byte from the Frame Buffer space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR ucByte | CHAR to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteMemoryByte(LPBOARDHANDLE pBoard, ULONG ulOffset, UCHAR ucByte)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *((UCHAR *)(pClientStruct->ulFrameBufferBase + ulOffset)) = ucByte;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteMemoryDword
--
-- Description : Write a Dword from the Frame Buffer space.
--
-- I/O desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG ulDword | Dword to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteMemoryDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG ulDword)
--{
-- LPCLIENTDATA pClientStruct = MGAGetClientPointer(pBoard);
--
-- ASSERT_HANDLER(pBoard);
--
-- *((ULONG *)(pClientStruct->ulFrameBufferBase + ulOffset)) = ulDword;
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientOpenSystemDevice
--
-- Description : Map a System device aperture for future call to
-- ClientReadSystemDeviceX and ClientWriteSystemDeviceX.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulAddress | Physical address of the Register aperture
-- ULONG ulSize | Size in Byte of the Register Aperture
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientOpenSystemDevice(LPBOARDHANDLE pBoard, ULONG ulAddress,
-- ULONG ulSize)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientCloseSystemDevice
--
-- Description : Unmap the System Device aperture address and free
-- resources needed to address it.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientCloseSystemDevice (LPBOARDHANDLE pBoard)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadSystemDeviceByte
--
-- Description : Read a Byte from the device Space.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG pucByte | Byte to read the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadSystemDeviceByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR *pucByte)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadSystemDeviceDword
--
-- Description : Read a Dword from the Frame Buffer Space
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG ulDword | Dword to Read the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadSystemDeviceDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG *pulDword)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteSystemByte
--
-- Description : Write a Byte from the System Device Aperture
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- UCHAR ucByte | Byte to receive the data
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteSystemDeviceByte(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- UCHAR ucByte)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWriteSystemDword
--
-- Description : Write a Dword from the System Device Aperture.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulOffset | Offset of the Byte to be read.
-- ULONG uDword | Dword to receive the data
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWriteSystemDeviceDword(LPBOARDHANDLE pBoard, ULONG ulOffset,
-- ULONG ulDword)
--{
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientWait
--
-- Description : Wait for ulDelayus micro-seconds.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- ULONG ulDelayus | Delay in uSec
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientWait (LPBOARDHANDLE pBoard, ULONG ulDelayus)
--{
-- int i;
-- ULONG ulTmp;
--
-- ASSERT_HANDLER(pBoard);
--
-- for(i = 0; i < ulDelayus * 3; i++)
-- {
-- ClientReadRegisterDword(pBoard,0x1e14,&ulTmp);
-- }
--
-- return 0;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientGetBiosInfo
--
-- Description : This function will be call if no PINS can be found
-- in physical EEPROM.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPUCHAR | Buffer where we copy bios pins.
-- ULONG | Bios version
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientGetBiosInfo(LPBOARDHANDLE pBoard, LPUCHAR pucPins,LPULONG pulBIOSVersion)
--{
-- Bool bNotFound = TRUE;
-- UCHAR ucBIOS[32768];
-- UCHAR ucTmpByte;
-- UCHAR ucCheckSum;
-- UCHAR ucPinsIndex;
-- UCHAR ucPinsSize;
-- ULONG ulTmpDword;
-- ULONG ulPinsOffset = 0;
-- ULONG ulPCIINFOffset;
--
-- ASSERT_HANDLER(pBoard);
--
-- xf86ReadBIOS(0xc0000,0,ucBIOS,32768);
--
-- if(ucBIOS[0] == 0x55)
-- {
-- if(ucBIOS[1] == 0xaa)
-- {
-- while((ulPinsOffset < 0x10000) && bNotFound)
-- {
-- ulTmpDword = *(ULONG *)(ucBIOS + ulPinsOffset);
-- ucPinsSize = (UCHAR) (ulTmpDword >> 16);
-- if(((ulTmpDword & 0x0000ffff) == 0x0000412e)
-- && ucPinsSize <= 128)
-- {
-- ucCheckSum = 0;
-- for(ucPinsIndex = 0;ucPinsIndex < ucPinsSize; ucPinsIndex++)
-- {
-- pucPins[ucPinsIndex] = ucBIOS[ulPinsOffset +
-- ucPinsIndex];
-- ucCheckSum += pucPins[ucPinsIndex];
-- }
-- if(ucCheckSum == 0)
-- {
-- bNotFound = FALSE;
-- }
-- }
-- ulPinsOffset++;
-- }
--
-- if(bNotFound)
-- {
-- return 1;
-- }
--
-- ulPCIINFOffset = *(ULONG *)(ucBIOS + 0x18);
-- ulPCIINFOffset &= 0x0000ffff;
-- ulTmpDword = *(ULONG *)(ucBIOS + ulPCIINFOffset);
--
-- if(ulTmpDword == 0x52494350) /* "PCIR" */
-- {
-- ulPCIINFOffset += 0x12;
-- ulTmpDword = *(ULONG *)(ucBIOS + ulPCIINFOffset);
-- *pulBIOSVersion = ((ULONG) ((ulTmpDword & 0xf0) >> 4) << 16) |
-- ((ulTmpDword &0xf) << 12) | ((ulTmpDword >> 8)
-- & 0xff);
-- }
-- else
-- {
-- return 1;
-- }
-- }
-- else
-- {
-- return 1;
-- }
-- }
-- else
-- {
-- return 1;
-- }
--
-- if(!*pulBIOSVersion)
-- {
-- ucTmpByte = ucBIOS[5];
-- *pulBIOSVersion = ((ULONG) (ucTmpByte >> 4) << 16) | ((ULONG)
-- (ucTmpByte & 0x0f) << 12);
-- }
--
-- return 0;
--}
--
--/******************************************************************************\
--
-- Function : ClientCallBiosInt10
--
-- Description : Call the BIOS Int10h with specified parameters.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPBIOSREGS pBiosRegs | Pointor to the Bios register
-- structure.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientCallBiosInt10(LPBOARDHANDLE pBoard, LPBIOSREGS pBiosRegs)
--{
-- ASSERT_HANDLER(pBoard);
--
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientReadDDCEdid
--
-- Description : Not implemented.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPBIOSREGS pBiosRegs | Pointor to the Bios register
-- structure.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientReadDDCEdid(LPBOARDHANDLE pBoard, LPUCHAR pEdid,
-- ULONG ulMonitorIndex)
--{
-- ASSERT_HANDLER(pBoard);
--
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientCustomCall
--
-- Description : Not implemented.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPBIOSREGS pBiosRegs | Pointor to the Bios register
-- structure.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientCustomCall(LPBOARDHANDLE pBoard, ULONG ulServiceNumber,
-- LPVOID pInData, LPVOID pOutData)
--{
-- ASSERT_HANDLER(pBoard);
--
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientApplyEpromPatch
--
-- Description : Not implemented.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPBIOSREGS pBiosRegs | Pointor to the Bios register
-- structure.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientApplyEpromPatch(LPBOARDHANDLE pBoard)
--{
-- ASSERT_HANDLER(pBoard);
--
-- return 1;
--}
--
--
--/******************************************************************************\
--
-- Function : ClientDetectHostInterface
--
-- Description : Not implemented.
--
-- I/O Desc. : LPBOARDHANDLE pBoard | Handle to the board structure
-- containing all the information about a specific board.
-- LPBIOSREGS pBiosRegs | Pointor to the Bios register
-- structure.
--
-- Return Val : ULONG
--
--\******************************************************************************/
--ULONG ClientDetectHostInterface(LPBOARDHANDLE pBoard, LPULONG pulData)
--{
-- ASSERT_HANDLER(pBoard);
--
-- return 1;
--}
--
---
-cgit v0.9.0.2-2-gbebe
-From 94bbeb132c7eda912d1b402a1a91ca7cbbf5e6a1 Mon Sep 17 00:00:00 2001
-From: Jamey Sharp <jamey@minilop.net>
-Date: Thu, 15 Sep 2011 15:29:11 +0000
-Subject: Delete support for MGA's proprietary HAL: unifdef USEMGAHAL.
-
-This patch produced with:
- for f in `git grep -Fwl USEMGAHAL`; do
- unifdef -B -UUSEMGAHAL $f | sponge $f
- done
-
-Adam Jackson wrote:
-
- Hey, so, remember back in the dark ages when dualhead was this
- insanely wild differentiating feature? Matrox thought it was so
- special, in fact, that they hid most of the implementation of it
- (and a bunch of other stuff) in a binary-only blob called the
- HALlib. As you'd expect it was pretty much a cut-and-paste of
- the relevant Windows code, and then some open glue to keep it
- working; clientlx.c is that glue.
-
- I guess the theory was that if you don't tell people which
- registers to duplicate to implement a second pipe in their own
- hardware, they won't figure it out? A pretty eyeroll-worthy
- idea even at the time, and definitely not something we should be
- condoning anymore.
-
- Kill it with fire, but while you're at it, untangle the hideous
- mess of MGA_HAL() macros too.
-
-Signed-off-by: Jamey Sharp <jamey@minilop.net>
-Cc: Adam Jackson <ajax@redhat.com>
----
-diff --git a/src/mga.h b/src/mga.h
-index c520e86..fced6aa 100644
---- a/src/mga.h
-+++ b/src/mga.h
-@@ -42,10 +42,6 @@
- #include "mga_dri.h"
- #endif
-
--#ifdef USEMGAHAL
--#include "client.h"
--#endif
--
- typedef enum {
- OPTION_SW_CURSOR,
- OPTION_HW_CURSOR,
-@@ -329,11 +325,6 @@ typedef enum {
-
- typedef struct {
- int lastInstance;
--#ifdef USEMGAHAL
-- LPCLIENTDATA pClientStruct;
-- LPBOARDHANDLE pBoard;
-- LPMGAHWINFO pMgaHwInfo;
--#endif
- int refCount;
- CARD32 masterFbAddress;
- long masterFbMapSize;
-@@ -459,12 +450,6 @@ struct mga_device_attributes {
- };
-
- typedef struct {
--#ifdef USEMGAHAL
-- LPCLIENTDATA pClientStruct;
-- LPBOARDHANDLE pBoard;
-- LPMGAMODEINFO pMgaModeInfo;
-- LPMGAHWINFO pMgaHwInfo;
--#endif
- EntityInfoPtr pEnt;
- struct mga_bios_values bios;
- CARD8 BiosOutputMode;
-@@ -650,9 +635,6 @@ typedef struct {
- MGAPaletteInfo palinfo[256]; /* G400 hardware bug workaround */
- FBLinearPtr LinearScratch;
- Bool softbooted;
--#ifdef USEMGAHAL
-- Bool HALLoaded;
--#endif
- OptionInfoPtr Options;
-
- /* Exa */
-@@ -810,26 +792,6 @@ void MGAG200SESaveMode(ScrnInfoPtr, vgaRegPtr);
- void MGAG200SERestoreMode(ScrnInfoPtr, vgaRegPtr);
- void MGAG200SEHWProtect(ScrnInfoPtr, Bool);
-
--#ifdef USEMGAHAL
--/************ ESC Call Definition ***************/
--typedef struct {
-- char *function;
-- void (*funcptr)(ScrnInfoPtr pScrn, unsigned long *param, char *out, DisplayModePtr pMode);
--} MGAEscFuncRec, *MGAEscFuncPtr;
--
--typedef struct {
-- char function[32];
-- unsigned long parameters[32];
--} EscCmdStruct;
--
--extern LPMGAMODEINFO pMgaModeInfo[2];
--extern MGAMODEINFO TmpMgaModeInfo[2];
--
--extern void MGAExecuteEscCmd(ScrnInfoPtr pScrn, char *cmdline , char *sResult, DisplayModePtr pMode);
--void MGAFillDisplayModeStruct(DisplayModePtr pMode, LPMGAMODEINFO pModeInfo);
--/************************************************/
--#endif
--
- static __inline__ void
- MGA_MARK_SYNC(MGAPtr pMga, ScrnInfoPtr pScrn)
- {
-diff --git a/src/mga_dacG.c b/src/mga_dacG.c
-index fca1031..b489dea 100644
---- a/src/mga_dacG.c
-+++ b/src/mga_dacG.c
-@@ -1001,9 +1001,6 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- break;
- case PCI_CHIP_MGAG400:
- case PCI_CHIP_MGAG550:
--#ifdef USEMGAHAL
-- MGA_HAL(break;);
--#endif
- if (MGAISGx50(pMga))
- break;
-
-@@ -1046,9 +1043,6 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- break;
- case PCI_CHIP_MGAG200_SE_A_PCI:
- case PCI_CHIP_MGAG200_SE_B_PCI:
--#ifdef USEMGAHAL
-- MGA_HAL(break;);
--#endif
- pReg->DacRegs[ MGA1064_VREF_CTL ] = 0x03;
- pReg->DacRegs[MGA1064_PIX_CLK_CTL] =
- MGA1064_PIX_CLK_CTL_SEL_PLL;
-@@ -1097,9 +1091,6 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- case PCI_CHIP_MGAG200:
- case PCI_CHIP_MGAG200_PCI:
- default:
--#ifdef USEMGAHAL
-- MGA_HAL(break;);
--#endif
- if(pMga->OverclockMem) {
- /* 143 Mhz */
- pReg->DacRegs[ MGA1064_SYS_PLL_M ] = 0x06;
-@@ -1496,21 +1487,6 @@ MGA_NOT_HAL(
- MGAG200EHPIXPLLSET(pScrn, mgaReg);
- }
- ); /* MGA_NOT_HAL */
--#ifdef USEMGAHAL
-- /*
-- * Work around another bug in HALlib: it doesn't restore the
-- * DAC width register correctly. MATROX: hint, hint.
-- */
-- MGA_HAL(
-- outMGAdac(MGA1064_MUL_CTL,mgaReg->DacRegs[0]);
-- outMGAdac(MGA1064_MISC_CTL,mgaReg->DacRegs[1]);
-- if (!MGAISGx50(pMga)) {
-- outMGAdac(MGA1064_PIX_PLLC_M,mgaReg->DacRegs[2]);
-- outMGAdac(MGA1064_PIX_PLLC_N,mgaReg->DacRegs[3]);
-- outMGAdac(MGA1064_PIX_PLLC_P,mgaReg->DacRegs[4]);
-- }
-- );
--#endif
- /* restore CRTCEXT regs */
- for (i = 0; i < 6; i++)
- OUTREG16(MGAREG_CRTCEXT_INDEX, (mgaReg->ExtVga[i] << 8) | i);
-@@ -1650,24 +1626,6 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
- * DAC width register correctly.
- */
-
--#ifdef USEMGAHAL
-- /*
-- * Work around another bug in HALlib: it doesn't restore the
-- * DAC width register correctly (s.o.). MATROX: hint, hint.
-- */
-- MGA_HAL(
-- if (mgaReg->DacRegs == NULL) {
-- mgaReg->DacRegs = xnfcalloc(MGAISGx50(pMga) ? 2 : 5, 1);
-- }
-- mgaReg->DacRegs[0] = inMGAdac(MGA1064_MUL_CTL);
-- mgaReg->DacRegs[1] = inMGAdac(MGA1064_MISC_CTL);
-- if (!MGAISGx50(pMga)) {
-- mgaReg->DacRegs[2] = inMGAdac(MGA1064_PIX_PLLC_M);
-- mgaReg->DacRegs[3] = inMGAdac(MGA1064_PIX_PLLC_N);
-- mgaReg->DacRegs[4] = inMGAdac(MGA1064_PIX_PLLC_P);
-- }
-- );
--#endif
- MGA_NOT_HAL(
- /*
- * The port I/O code necessary to read in the extended registers.
-@@ -1793,12 +1751,6 @@ MGAGSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
- x += 64;
- y += 64;
-
--#ifdef USEMGAHAL
-- MGA_HAL(
-- x += pMga->HALGranularityOffX;
-- y += pMga->HALGranularityOffY;
-- );
--#endif
- /* cursor update must never occurs during a retrace period (pp 4-160) */
- while( INREG( MGAREG_Status ) & 0x08 );
-
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 58a1390..d770031 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -1509,10 +1509,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- int flags24;
- MGAEntPtr pMgaEnt = NULL;
- Bool Default;
--#ifdef USEMGAHAL
-- ULONG status;
-- CARD8 MiscCtlReg;
--#endif
-
- /*
- * Note: This function is only called once at server startup, and
-@@ -1657,37 +1653,9 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- pMga->is_G200EH = (pMga->Chipset == PCI_CHIP_MGAG200_EH_PCI);
- pMga->is_G200ER = (pMga->Chipset == PCI_CHIP_MGAG200_ER_PCI);
-
--#ifdef USEMGAHAL
-- if (pMga->chip_attribs->HAL_chipset) {
-- Bool loadHal = TRUE;
--
-- from = X_DEFAULT;
-- if (xf86FindOption(pMga->device->options, "NoHal")) {
-- loadHal = !xf86SetBoolOption(pMga->device->options,
-- "NoHal", !loadHal);
-- from = X_CONFIG;
-- } else if (xf86FindOption(pMga->device->options, "Hal")) {
-- loadHal = xf86SetBoolOption(pMga->device->options,
-- "Hal", loadHal);
-- from = X_CONFIG;
-- }
-- if (loadHal && xf86LoadSubModule(pScrn, "mga_hal")) {
-- xf86DrvMsg(pScrn->scrnIndex, from,"Matrox HAL module used\n");
-- pMga->HALLoaded = TRUE;
-- } else {
-- xf86DrvMsg(pScrn->scrnIndex, from, "Matrox HAL module not loaded "
-- "- using builtin mode setup instead\n");
-- pMga->HALLoaded = FALSE;
-- }
-- }
--#endif
--
- pMga->DualHeadEnabled = FALSE;
- if (xf86IsEntityShared(pScrn->entityList[0])) {/* dual-head mode requested*/
- if (
--#ifdef USEMGAHAL
-- pMga->HALLoaded ||
--#endif
- !MGA_DH_NEEDS_HAL(pMga)) {
- pMga->DualHeadEnabled = TRUE;
- } else if (xf86IsPrimInitDone(pScrn->entityList[0])) {
-@@ -2088,30 +2056,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "\"Merged Framebuffer\" mode only supported on G450 and G550 boards.\n");
- } else {
--#ifdef USEMGAHAL
-- if(pMga->HALLoaded)
-- {
-- pMga->MergedFB = TRUE;
-- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-- "Using \"Merged Framebuffer\" mode.\n");
-- /*
-- * a few options that won't work well together
-- */
-- if(pMga->HWCursor) /*Should we give the choice? */
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- " -- Hardware Cursor disabled.\n");
-- pMga->HWCursor = FALSE;
-- if(pMga->ShadowFB)
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- " -- Shadow Framebuffer disabled.\n");
-- pMga->ShadowFB = FALSE;
-- if(pMga->FBDev)
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- " -- Framebuffer device disabled.\n");
-- pMga->FBDev = FALSE;
-- } /* MGA_HAL */
-- else
--#endif
- {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "HALLib not loaded! NOT using \"Merged Framebuffer\" mode.\n");
-@@ -2404,10 +2348,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- clockRanges->clockIndex = -1; /* programmable */
- clockRanges->interlaceAllowed = TRUE;
- clockRanges->doubleScanAllowed = TRUE;
--#ifdef USEMGAHAL
-- MGA_HAL(clockRanges->interlaceAllowed = FALSE);
-- MGA_HAL(clockRanges->doubleScanAllowed = FALSE);
--#endif
- if (pMga->SecondCrtc == TRUE)
- clockRanges->interlaceAllowed = FALSE;
-
-@@ -2513,80 +2453,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- MGAFreeRec(pScrn);
- return FALSE;
- }
--#ifdef USEMGAHAL
-- MGA_HAL(
--
-- if(pMga->SecondCrtc == FALSE) {
--
-- pMga->pBoard = xalloc(sizeof(CLIENTDATA) + MGAGetBOARDHANDLESize());
-- pMga->pClientStruct = xalloc(sizeof(CLIENTDATA));
-- pMga->pClientStruct->pMga = (MGAPtr) pMga;
--
-- MGAMapMem(pScrn);
-- /*
-- * For some reason the MGAOPM_DMA_BLIT bit needs to be set
-- * on G200 before opening the HALlib. I don't know why.
-- * MATROX: hint, hint.
-- */
-- /*if (pMga->Chipset == PCI_CHIP_MGAG200 ||
-- pMga->Chipset == PCI_CHIP_MGAG200_PCI) */{
-- CARD32 opmode;
-- opmode = INREG(MGAREG_OPMODE);
-- OUTREG(MGAREG_OPMODE, MGAOPM_DMA_BLIT | opmode);
-- }
-- /* wrapping OpenLibrary to fix broken registers. MATROX: hint, hint. */
-- MiscCtlReg = inMGAdac(MGA1064_MISC_CTL);
-- MGAOpenLibrary(pMga->pBoard,pMga->pClientStruct,sizeof(CLIENTDATA));
-- outMGAdac(MGA1064_MISC_CTL,MiscCtlReg);
-- MGAUnmapMem(pScrn);
-- pMga->pMgaHwInfo = xalloc(sizeof(MGAHWINFO));
-- MGAGetHardwareInfo(pMga->pBoard,pMga->pMgaHwInfo);
--
-- /* copy the board handles */
-- if (pMga->DualHeadEnabled) {
-- pMgaEnt->pClientStruct = pMga->pClientStruct;
-- pMgaEnt->pBoard = pMga->pBoard;
-- pMgaEnt->pMgaHwInfo = pMga->pMgaHwInfo;
-- }
--
-- } else { /* Second CRTC && entity is shared */
-- pMga->pBoard = pMgaEnt->pBoard;
-- pMga->pClientStruct = pMgaEnt->pClientStruct;
-- pMga->pMgaHwInfo = pMgaEnt->pMgaHwInfo;
--
-- }
--
-- MGAFillModeInfoStruct(pScrn,NULL);
-- /* Fields usually handled by MGAFillModeInfoStruct, but are unavailable
-- * because no mode is given
-- */
-- pMga->pMgaModeInfo->ulDispWidth = pScrn->virtualX;
-- pMga->pMgaModeInfo->ulDispHeight = pScrn->virtualY;
--
--
-- if (ISDIGITAL1(pMga))
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-- "Digital screen detected on first head.\n");
-- if (ISTV1(pMga))
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-- "TV detected on first head.\n");
-- if (ISDIGITAL2(pMga))
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-- "Digital screen detected on second head.\n");
-- if (ISTV2(pMga))
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-- "TV detected on second head.\n");
--
--
-- if((status = MGAValidateMode(pMga->pBoard,pMga->pMgaModeInfo)) != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGAValidateMode from HALlib found the mode to be invalid.\n"
-- "\tError: 0x%lx\n", status);
-- return FALSE;
-- }
-- pScrn->displayWidth = pMga->pMgaModeInfo->ulFBPitch;
-- ); /* MGA_HAL */
--#endif
-
- /* If the Device section explicitly set HasSDRAM, don't bother checking.
- */
-@@ -2620,9 +2486,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- * driver and if the driver doesn't provide code to set them. They
- * are not pre-initialised at all.
- */
--#ifdef USEMGAHAL
-- MGA_HAL(xf86SetCrtcForModes(pScrn, 0));
--#endif
- MGA_NOT_HAL(xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V));
-
- /* Set the current mode to the first in the list */
-@@ -2790,46 +2653,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- };
-
-
--#ifdef USEMGAHAL
-- MGA_HAL(
-- /* Close the library after preinit */
-- /* This needs to only happen after this board has completed preinit
-- * both times
-- */
--
-- if(pMga->DualHeadEnabled) {
-- /* Entity is shared make sure refcount == 2 */
-- /* If ref count is 2 then reset it to 0 */
-- if(pMgaEnt->refCount == 2) {
-- /* Both boards have done there initialization */
-- MGACloseLibrary(pMga->pBoard);
--
-- if (pMga->pBoard)
-- xfree(pMga->pBoard);
-- if (pMga->pClientStruct)
-- xfree(pMga->pClientStruct);
-- if (pMga->pMgaModeInfo)
-- xfree(pMga->pMgaModeInfo);
-- if (pMga->pMgaHwInfo)
-- xfree(pMga->pMgaHwInfo);
-- pMgaEnt->refCount = 0;
-- }
-- } else {
-- MGACloseLibrary(pMga->pBoard);
--
-- if (pMga->pBoard)
-- xfree(pMga->pBoard);
-- if (pMga->pClientStruct)
-- xfree(pMga->pClientStruct);
-- if (pMga->pMgaModeInfo)
-- xfree(pMga->pMgaModeInfo);
-- if (pMga->pMgaHwInfo)
-- xfree(pMga->pMgaHwInfo);
-- }
--
-- ); /* MGA_HAL */
--#endif
--
- xf86SetPrimInitDone(pScrn->entityList[0]);
-
- return TRUE;
-@@ -2995,9 +2818,6 @@ MGASave(ScrnInfoPtr pScrn)
- MGARegPtr mgaReg = &pMga->SavedReg;
-
- if(pMga->SecondCrtc == TRUE) return;
--#ifdef USEMGAHAL
-- MGA_HAL(if (pMga->pBoard != NULL) MGASaveVgaState(pMga->pBoard));
--#endif
-
- /* I need to save the registers for the second head also */
- /* Save the register for 0x80 to 0xa0 */
-@@ -3007,135 +2827,6 @@ MGASave(ScrnInfoPtr pScrn)
- (*pMga->Save)(pScrn, vgaReg, mgaReg, pMga->Primary);
- }
-
--#ifdef USEMGAHAL
--/* Convert DisplayModeRec parameters in MGAMODEINFO parameters.
--* mode parameter optionnal. */
--void
--MGAFillModeInfoStruct(ScrnInfoPtr pScrn, DisplayModePtr mode)
--{
-- const char *s;
-- MGAPtr pMga = MGAPTR(pScrn);
--
-- Bool digital1 = FALSE;
-- Bool digital2 = FALSE;
-- Bool tv1 = FALSE;
-- Bool tv2 = FALSE;
-- Bool swap_head
-- = xf86ReturnOptValBool(pMga->Options, OPTION_SWAPPED_HEAD, FALSE);
--
-- if(pMga->MergedFB && mode && mode->Private && (mode->PrivSize == 0)) {
-- mode = pMga->SecondCrtc ?
-- ((MergedDisplayModePtr)mode->Private)->Monitor2
-- : ((MergedDisplayModePtr)mode->Private)->Monitor1;
-- }
--
--
-- if (pMga->pMgaHwInfo)
-- {
-- digital1 = ISDIGITAL1(pMga);
-- digital2 = ISDIGITAL2(pMga);
-- tv1 = ISTV1(pMga);
-- tv2 = ISTV2(pMga);
-- }
--
-- /*FIXME: causes segfault elsewhere if not commented*/
-- /*if(!pMga->pMgaModeInfo)*/ pMga->pMgaModeInfo = xalloc(sizeof(MGAMODEINFO));
-- pMga->pMgaModeInfo->flOutput = 0;
-- pMga->pMgaModeInfo->ulDeskWidth = pScrn->virtualX;
-- pMga->pMgaModeInfo->ulDeskHeight = pScrn->virtualY;
-- pMga->pMgaModeInfo->ulFBPitch = 0;
-- pMga->pMgaModeInfo->ulBpp = pScrn->bitsPerPixel;
-- pMga->pMgaModeInfo->ulZoom = 1;
-- pMga->pMgaModeInfo->flSignalMode = 0x10;
--
-- /* Set TV standard */
-- if ((s = xf86GetOptValString(pMga->Options, OPTION_TVSTANDARD))) {
-- if (!xf86NameCmp(s, "PAL")) {
-- pMga->pMgaModeInfo->flSignalMode = 0x00;
-- pMga->pMgaModeInfo->ulRefreshRate = 50;
-- pMga->pMgaModeInfo->ulTVStandard = TV_PAL;
-- } else {
-- pMga->pMgaModeInfo->ulRefreshRate = 60;
-- pMga->pMgaModeInfo->ulTVStandard = TV_NTSC;
-- }
-- } else {
-- pMga->pMgaModeInfo->ulRefreshRate = 0;
-- pMga->pMgaModeInfo->ulTVStandard = TV_NTSC;
-- }
--
-- /* Set Cable Type */
-- if ((s = xf86GetOptValString(pMga->Options, OPTION_CABLETYPE))) {
-- if (!xf86NameCmp(s, "SCART_RGB")) {
-- pMga->pMgaModeInfo->ulCableType = TV_SCART_RGB;
-- } else if (!xf86NameCmp(s, "SCART_COMPOSITE")) {
-- pMga->pMgaModeInfo->ulCableType = TV_SCART_COMPOSITE;
-- } else if (!xf86NameCmp(s, "SCART_TYPE2")) {
-- pMga->pMgaModeInfo->ulCableType = TV_SCART_TYPE2;
-- } else {
-- pMga->pMgaModeInfo->ulCableType = TV_YC_COMPOSITE;
-- }
-- } else {
-- pMga->pMgaModeInfo->ulCableType = TV_YC_COMPOSITE;
-- }
--
-- if(mode) {
-- pMga->pMgaModeInfo->ulHorizRate = 0;
-- pMga->pMgaModeInfo->ulDispWidth = mode->HDisplay;
-- pMga->pMgaModeInfo->ulDispHeight = mode->VDisplay;
-- pMga->pMgaModeInfo->ulPixClock = mode->Clock;
-- pMga->pMgaModeInfo->ulHFPorch = mode->HSyncStart - mode->HDisplay;
-- pMga->pMgaModeInfo->ulHSync = mode->HSyncEnd - mode->HSyncStart;
-- pMga->pMgaModeInfo->ulHBPorch = mode->HTotal - mode->HSyncEnd;
-- pMga->pMgaModeInfo->ulVFPorch = mode->VSyncStart - mode->VDisplay;
-- pMga->pMgaModeInfo->ulVSync = mode->VSyncEnd - mode->VSyncStart;
-- pMga->pMgaModeInfo->ulVBPorch = mode->VTotal - mode->VSyncEnd;
-- }
-- /* Use DstOrg directly */
-- /* This is an offset in pixels not memory */
-- pMga->pMgaModeInfo->ulDstOrg = pMga->DstOrg / (pScrn->bitsPerPixel / 8);
-- pMga->pMgaModeInfo->ulDisplayOrg = pMga->DstOrg / (pScrn->bitsPerPixel / 8);
-- pMga->pMgaModeInfo->ulPanXGran = 0;
-- pMga->pMgaModeInfo->ulPanYGran = 0;
--
-- if(pMga->SecondCrtc == TRUE) {
-- pMga->pMgaModeInfo->flOutput = MGAMODEINFO_SECOND_CRTC |
-- MGAMODEINFO_FORCE_PITCH |
-- MGAMODEINFO_FORCE_DISPLAYORG;
-- if (digital2) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_DIGITAL2;
-- } else if (tv2) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_TV;
-- } else {
-- if (!swap_head) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_ANALOG2;
-- } else {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_ANALOG1;
-- }
-- }
-- } else {
-- pMga->pMgaModeInfo->flOutput = MGAMODEINFO_FORCE_PITCH;
-- if (digital1) {
-- if ((pMga->Chipset == PCI_CHIP_MGAG200) ||
-- (pMga->Chipset == PCI_CHIP_MGAG200_PCI)) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_FLATPANEL1;
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_DIGITAL2;
-- } else {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_DIGITAL1;
-- }
-- } else if (tv1) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_TV;
-- } else {
-- if (!swap_head) {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_ANALOG1;
-- } else {
-- pMga->pMgaModeInfo->flOutput |= MGAMODEINFO_ANALOG2;
-- }
-- }
-- }
-- pMga->pMgaModeInfo->ulFBPitch = pScrn->displayWidth;
--}
--#endif
--
- /*
- * Initialise a new mode. This is currently still using the old
- * "initialise struct, restore/write struct to HW" model. That could
-@@ -3150,9 +2841,6 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- MGAPtr pMga = MGAPTR(pScrn);
- MGARegPtr mgaReg;
-
--#ifdef USEMGAHAL
-- ULONG status;
--#endif
- vgaHWUnlock(hwp);
-
- /* if(pMga->MergedFB && mode && mode->Private && (mode->PrivSize == 0)) {
-@@ -3175,56 +2863,6 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- }
- vgaReg = &hwp->ModeReg;
- mgaReg = &pMga->ModeReg;
--#ifdef USEMGAHAL
-- MGA_HAL(
-- MGAFillModeInfoStruct(pScrn,mode);
--
-- /* Validate the parameters */
-- if ((status = MGAValidateMode(pMga->pBoard, pMga->pMgaModeInfo)) != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGAValidateMode from HALlib found the mode to be invalid.\n"
-- "\tError: %lx\n", status);
-- return FALSE;
-- }
--
-- /*
-- * Find mode for second head.
-- */
-- if(pMga->MergedFB) {
--
-- MGAFillModeInfoStruct(pMga->pScrn2,mode);
-- /* Validates the Video parameters */
-- if ((status = MGAValidateVideoParameters(pMga->pBoard, MGAPTR(pMga->pScrn2)->pMgaModeInfo))
-- != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGAValidateVideoParameters from HALlib found the mode to be invalid.\n\tError: %lx\n", status);
-- return FALSE;
-- }
-- }
-- ); /*MGA_HAL */
--
--#endif
--
--#ifdef USEMGAHAL
--MGA_HAL(
--
-- /*************************** ESC *****************************/
-- TmpMgaModeInfo[0] = *pMga->pMgaModeInfo;
--
-- if(pMga->SecondCrtc == TRUE)
-- pMgaModeInfo[1] = pMga->pMgaModeInfo;
-- else
-- pMgaModeInfo[0] = pMga->pMgaModeInfo;
--
-- TmpMgaModeInfo[0].ulDispWidth = 0;
--
-- if(!pMga->MergedFB) /* FIXME: Must deal with this once PowerDesk & MergedFB
-- compatibility will exist */
-- MGAFillDisplayModeStruct(mode, pMga->pMgaModeInfo);
-- /*************************************************************/
--
--); /* MGA_HAL */
--#endif
-
- #ifdef XF86DRI
- if (pMga->directRenderingEnabled) {
-@@ -3232,38 +2870,6 @@ MGA_HAL(
- }
- #endif
-
--#ifdef USEMGAHAL
-- MGA_HAL(
-- /* Initialize the board */
-- if(MGASetMode(pMga->pBoard,pMga->pMgaModeInfo) != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGASetMode returned an error."
-- " Make sure to validate the mode before.\n");
-- return FALSE;
-- }
-- if(pMga->MergedFB
-- && MGASetMode(pMga->pBoard,MGAPTR(pMga->pScrn2)->pMgaModeInfo) != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGASetMode returned an error."
-- " Make sure to validate the mode before.\n");
-- }
--
-- ); /* MGA_HAL */
--
-- /* getting around bugs in the HAL lib. MATROX: hint, hint. */
-- MGA_HAL(
-- if (pMga->chip_attribs->hwcursor_1064) {
-- if(pMga->SecondCrtc == FALSE && pMga->HWCursor == TRUE) {
-- outMGAdac(MGA1064_CURSOR_BASE_ADR_LOW,
-- pMga->FbCursorOffset >> 10);
-- outMGAdac(MGA1064_CURSOR_BASE_ADR_HI,
-- pMga->FbCursorOffset >> 18);
-- outMGAdac(MGA1064_CURSOR_CTL, 0x00);
-- }
-- }
-- ); /* MGA_HAL */
--#endif
--
- MGA_NOT_HAL((*pMga->Restore)(pScrn, vgaReg, mgaReg, FALSE));
-
- MGAStormSync(pScrn);
-@@ -3472,14 +3078,6 @@ MGARestore(ScrnInfoPtr pScrn)
- vgaHWProtect(pScrn, TRUE);
- }
- if (pMga->Primary) {
--#ifdef USEMGAHAL
-- MGA_HAL(
-- if(pMga->pBoard != NULL) {
-- MGASetVgaMode(pMga->pBoard);
-- MGARestoreVgaState(pMga->pBoard);
-- }
-- ); /* MGA_HAL */
--#endif
- (*pMga->Restore)(pScrn, vgaReg, mgaReg, TRUE);
- } else {
- vgaHWRestore(pScrn, vgaReg, VGA_SR_MODE);
-@@ -3588,81 +3186,12 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- pPriv = xf86GetEntityPrivate(pScrn->entityList[0], MGAEntityIndex);
- pMgaEnt = pPriv->ptr;
- pMgaEnt->refCount++;
--#ifdef USEMGAHAL
-- MGA_HAL(
-- if(pMgaEnt->refCount == 1) {
-- CARD8 MiscCtlReg;
-- pMga->pBoard = xalloc(sizeof(CLIENTDATA) + MGAGetBOARDHANDLESize());
-- pMga->pClientStruct = xalloc(sizeof(CLIENTDATA));
-- pMga->pClientStruct->pMga = (MGAPtr) pMga;
--
-- /* wrapping OpenLibrary to fix broken registers. MATROX: hint,hint.*/
-- MiscCtlReg = inMGAdac(MGA1064_MISC_CTL);
-- MGAOpenLibrary(pMga->pBoard,pMga->pClientStruct,sizeof(CLIENTDATA));
-- outMGAdac(MGA1064_MISC_CTL,MiscCtlReg);
-- pMga->pMgaHwInfo = xalloc(sizeof(MGAHWINFO));
-- MGAGetHardwareInfo(pMga->pBoard,pMga->pMgaHwInfo);
--
-- /* Detecting for type of display */
-- if (pMga->pMgaHwInfo->ulCapsSecondOutput & MGAHWINFOCAPS_OUTPUT_TV) {
-- xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "TV detected\n");
-- }
-- if (pMga->pMgaHwInfo->ulCapsFirstOutput &
-- MGAHWINFOCAPS_OUTPUT_DIGITAL) {
-- xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
-- "Digital Screen detected\n");
-- }
-- if (pMga->pMgaHwInfo->ulCapsSecondOutput &
-- MGAHWINFOCAPS_OUTPUT_DIGITAL) {
-- xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
-- "Digital Screen detected\n");
-- }
--
-- /* Now copy these to the entitystructure */
-- pMgaEnt->pClientStruct = pMga->pClientStruct;
-- pMgaEnt->pBoard = pMga->pBoard;
-- pMgaEnt->pMgaHwInfo = pMga->pMgaHwInfo;
-- } else { /* Ref count is 2 */
-- pMga->pClientStruct = pMgaEnt->pClientStruct;
-- pMga->pBoard = pMgaEnt->pBoard;
-- pMga->pMgaHwInfo = pMgaEnt->pMgaHwInfo;
-- }
-- ); /* MGA_HAL */
--#endif
- } else {
--#ifdef USEMGAHAL
-- CARD8 MiscCtlReg;
--
-- MGA_HAL(
-- pMga->pBoard = xalloc(sizeof(CLIENTDATA) + MGAGetBOARDHANDLESize());
-- pMga->pClientStruct = xalloc(sizeof(CLIENTDATA));
-- pMga->pClientStruct->pMga = (MGAPtr) pMga;
--
-- MiscCtlReg = inMGAdac(MGA1064_MISC_CTL);
-- /* wrapping OpenLibrary to fix broken registers. MATROX: hint,hint.*/
-- MGAOpenLibrary(pMga->pBoard,pMga->pClientStruct,sizeof(CLIENTDATA));
-- outMGAdac(MGA1064_MISC_CTL,MiscCtlReg);
-- pMga->pMgaHwInfo = xalloc(sizeof(MGAHWINFO));
-- MGAGetHardwareInfo(pMga->pBoard,pMga->pMgaHwInfo);
-- ); /* MGA_HAL */
--#endif
- }
- if (pMga->is_G200SE) {
- pScrn->videoRam = VRTemp;
- pMga->FbMapSize = FBTemp;
- }
--#ifdef USEMGAHAL
-- MGA_HAL(
-- /* There is a problem in the HALlib: set soft reset bit */
-- /* MATROX: hint, hint. */
-- if (!pMga->Primary && !pMga->FBDev &&
-- (SUBSYS_ID(pMga->PciInfo) == PCI_CARD_MILL_G200_SG)) {
-- OUTREG(MGAREG_Reset, 1);
-- usleep(200);
-- OUTREG(MGAREG_Reset, 0);
-- }
-- ); /* MGA_HAL */
--#endif
-
- /* Initialise the MMIO vgahw functions */
- vgaHWSetMmioFuncs(hwp, pMga->IOBase, PORT_OFFSET);
-@@ -3969,66 +3498,8 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- Bool
- MGASwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
- {
--#ifdef USEMGAHAL
-- char sCmdIn[256];
-- char sCmdOut[256];
-- FILE* fdIn;
--# ifdef MATROX_WRITEBACK
-- FILE* fdOut;
--# endif
--#endif
-
- if (mode->Flags & 0x80000000) {
--#ifdef USEMGAHAL
--
--# ifdef MATROX_WRITEBACK
--# define MWB(x) { x; }
--# define MWB_COND(x) x
--# else
--# define MWB(x)
--# define MWB_COND(x) 1
--# endif
-- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
--
-- MGA_HAL(
-- fdIn = fopen("/tmp/mgaDriverIn", "rt");
-- MWB(fdOut = fopen("/tmp/mgaDriverOut", "wt"))
--
-- if(fdIn && MWB_COND(fdOut))
-- {
--
-- fgets(sCmdIn, 255, fdIn);
--
-- if(sCmdIn)
-- {
--
-- MGAExecuteEscCmd(xf86Screens[scrnIndex], sCmdIn, sCmdOut, mode);
--
-- /* Remove file and close file descriptor */
-- remove("/tmp/mgaDriverIn");
-- fclose(fdIn);
-- MWB(
-- /* Write output data to output file for
-- calling application */
-- fputs(sCmdOut, fdOut);
-- fclose(fdOut);
-- )
-- mode->Flags &= 0x7FFFFFFF;
-- return TRUE;
-- }
-- else
-- {
-- mode->Flags &= 0x7FFFFFFF;
-- return FALSE;
-- }
-- }
-- else
-- {
-- mode->Flags &= 0x7FFFFFFF;
-- return FALSE;
-- }
-- )
--#endif
- return FALSE;
- } else
- return MGAModeInit(xf86Screens[scrnIndex], mode);
-@@ -4040,28 +3511,6 @@ MGASwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
- void
- MGAAdjustGranularity(ScrnInfoPtr pScrn, int* x, int* y)
- {
--#ifdef USEMGAHAL
-- MGA_HAL(
-- MGAPtr pMga = MGAPTR(pScrn);
-- MGAPtr pMga2;
-- int xg = 1;
-- int yg = 1;
-- if(pMga->pMgaModeInfo && pMga->pMgaModeInfo->ulPanXGran && pMga->pMgaModeInfo->ulPanYGran) {
-- xg = pMga->pMgaModeInfo->ulPanXGran;
-- yg = pMga->pMgaModeInfo->ulPanYGran;
-- }
-- if(pMga->pScrn2 && (pMga2 = MGAPTR(pMga->pScrn2)) ) {
--
-- if(pMga2->pMgaModeInfo && pMga2->pMgaModeInfo->ulPanXGran && pMga2->pMgaModeInfo->ulPanYGran) {
-- xg = max(xg,pMga2->pMgaModeInfo->ulPanXGran);
-- yg = max(yg,pMga2->pMgaModeInfo->ulPanYGran);
-- }
-- }
-- xg=16; /*ncoder: temporary */
-- *x -= *x % xg;
-- *y -= *y % yg;
-- );
--#endif
- }
-
-
-@@ -4087,16 +3536,6 @@ MGAAdjustFrame(int scrnIndex, int x, int y, int flags)
- /* wanted to improve panning granularity problems without risking
- * compatibility issues. Existing code looked hardware dependent.
- */
--#ifdef USEMGAHAL
-- MGA_HAL(
-- pMga->HALGranularityOffX = x;
-- pMga->HALGranularityOffY = y;
-- MGAAdjustGranularity(pScrn,&x,&y);
-- pMga->HALGranularityOffX = pMga->HALGranularityOffX - x;
-- pMga->HALGranularityOffY = pMga->HALGranularityOffY - y;
-- HALSetDisplayStart(pMga->pBoard,x,y,0);
-- );
--#endif
- MGA_NOT_HAL(
- if(pMga->ShowCache && y && pScrn->vtSema)
- y += pScrn->virtualY - 1;
-@@ -4139,12 +3578,6 @@ MGAAdjustFrameCrtc2(int scrnIndex, int x, int y, int flags)
- pScrn = xf86Screens[scrnIndex];
- pMga = MGAPTR(pScrn);
- pLayout = &pMga->CurrentLayout;
--#ifdef USEMGAHAL
-- MGA_HAL(
-- MGAAdjustGranularity(pScrn,&x,&y);
-- HALSetDisplayStart(pMga->pBoard,x,y,1);
-- );
--#endif
- MGA_NOT_HAL(
- if(pMga->ShowCache && y && pScrn->vtSema)
- y += pScrn->virtualY - 1;
-@@ -4258,9 +3691,6 @@ MGALeaveVT(int scrnIndex, int flags)
- DRILock(pScreen, 0);
- }
- #endif
--#ifdef USEMGAHAL
-- MGA_HAL( RESTORE_TEXTMODE_ON_DVI(pMga); );
--#endif
- }
-
-
-@@ -4280,9 +3710,6 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- MGAPtr pMga = MGAPTR(pScrn);
- MGAEntPtr pMgaEnt = NULL;
-
--#ifdef USEMGAHAL
-- MGA_HAL( RESTORE_TEXTMODE_ON_DVI(pMga); );
--#endif
- if (pMga->MergedFB)
- MGACloseScreenMerged(scrnIndex, pScreen);
-
-@@ -4311,37 +3738,6 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- pMgaEnt->refCount--;
- }
-
--#ifdef USEMGAHAL
-- MGA_HAL(
-- if(pMga->DualHeadEnabled) {
-- if(pMgaEnt->refCount == 0) {
-- /* Both boards have closed there screen */
-- MGACloseLibrary(pMga->pBoard);
--
-- if (pMga->pBoard)
-- xfree(pMga->pBoard);
-- if (pMga->pClientStruct)
-- xfree(pMga->pClientStruct);
-- if (pMga->pMgaModeInfo)
-- xfree(pMga->pMgaModeInfo);
-- if (pMga->pMgaHwInfo)
-- xfree(pMga->pMgaHwInfo);
-- }
-- } else {
-- MGACloseLibrary(pMga->pBoard);
--
-- if (pMga->pBoard)
-- xfree(pMga->pBoard);
-- if (pMga->pClientStruct)
-- xfree(pMga->pClientStruct);
-- if (pMga->pMgaModeInfo)
-- xfree(pMga->pMgaModeInfo);
-- if (pMga->pMgaHwInfo)
-- xfree(pMga->pMgaHwInfo);
-- }
-- ); /* MGA_HAL */
--#endif
--
- #ifdef USE_XAA
- if (pMga->AccelInfoRec)
- XAADestroyInfoRec(pMga->AccelInfoRec);
-diff --git a/src/mga_esc.c b/src/mga_esc.c
-index e811712..41b734a 100644
---- a/src/mga_esc.c
-+++ b/src/mga_esc.c
-@@ -10,782 +10,4 @@
- #include "config.h"
- #endif
-
--#ifdef USEMGAHAL
--
--/* All drivers should typically include these */
--#include "xf86.h"
--#include "xf86_OSproc.h"
--
--/* All drivers need this */
--
--#include "compiler.h"
--
--/* Drivers for PCI hardware need this */
--#include "xf86PciInfo.h"
--
--/* Drivers that need to access the PCI config space directly need this */
--#include "xf86Pci.h"
--
--/* All drivers initialising the SW cursor need this */
--#include "mipointer.h"
--
--/* All drivers implementing backing store need this */
--#include "mibstore.h"
--
--#include "micmap.h"
--
--#include "xf86DDC.h"
--#include "vbe.h"
--
--#include "fb.h"
--#include "dixstruct.h"
--
--#include "mga_reg.h"
--#include "mga.h"
--#include "mga_macros.h"
--
--/* ESC */
--LPMGAMODEINFO pMgaModeInfo[2] = {NULL};
--MGAMODEINFO TmpMgaModeInfo[2] = {{0}};
--
--/* ESC Implementation */
--static void EscHLeft(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscHRight(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscVUp(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscVDown(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscHLarger(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscHSmaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscVTaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscVSmaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscRefresh(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscRestoreVidParm(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscRead(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscWrite(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscHal(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscTest(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--static void EscMerged(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode);
--
--static LPMGAMODEINFO GetModeInfoPtr(ULONG ulScreen);
--static void GetVideoParameterStr(LPMGAMODEINFO pModeInfo, char *sResult);
--static Bool convertNumber(unsigned long *pulNumber, char *sNumber);
--
--
--static MGAEscFuncRec FunctionTable[] = {
-- {"hal", EscHal},
-- {"test", EscTest},
-- {"read", EscRead},
-- {"write", EscWrite},
-- {"left", EscHLeft},
-- {"right", EscHRight},
-- {"down", EscVDown},
-- {"up", EscVUp},
-- {"h+", EscHLarger},
-- {"h-", EscHSmaller},
-- {"v+", EscVTaller},
-- {"v-", EscVSmaller},
-- {"refresh", EscRefresh},
-- {"undo", EscRestoreVidParm},
-- {"merged", EscMerged},
-- {NULL,NULL}
--};
--
--
--void MGAFillDisplayModeStruct(DisplayModePtr pMode, LPMGAMODEINFO pModeInfo)
--{
-- pMode->Clock = pModeInfo->ulPixClock;
--
-- pMode->HDisplay = pModeInfo->ulDispWidth;
-- pMode->HSyncStart = pModeInfo->ulDispWidth
-- + pModeInfo->ulHFPorch;
-- pMode->HSyncEnd = pModeInfo->ulDispWidth
-- + pModeInfo->ulHFPorch
-- + pModeInfo->ulHSync;
-- pMode->HTotal = pModeInfo->ulDispWidth
-- + pModeInfo->ulHFPorch
-- + pModeInfo->ulHSync
-- + pModeInfo->ulHBPorch;
--
-- pMode->VDisplay = pModeInfo->ulDispHeight;
-- pMode->VSyncStart = pModeInfo->ulDispHeight
-- + pModeInfo->ulVFPorch;
-- pMode->VSyncEnd = pModeInfo->ulDispHeight
-- + pModeInfo->ulVFPorch
-- + pModeInfo->ulVSync;
-- pMode->VTotal = pModeInfo->ulDispHeight
-- + pModeInfo->ulVFPorch
-- + pModeInfo->ulVSync
-- + pModeInfo->ulVBPorch;
--
-- pMode->VRefresh = pModeInfo->ulRefreshRate;
--}
--
--static LPMGAMODEINFO GetModeInfoPtr(ULONG ulScreen)
--{
--
-- if ( !TmpMgaModeInfo[ulScreen].ulDispWidth )
-- {
-- TmpMgaModeInfo[ulScreen] = *pMgaModeInfo[ulScreen];
-- }
--
-- return &TmpMgaModeInfo[ulScreen];
--}
--
--
--static void GetVideoParameterStr(LPMGAMODEINFO pModeInfo, char *sResult)
--{
-- sprintf(sResult, "%d %d %d %d %d %d %d %d %d %d %d",
-- pModeInfo->ulDispWidth,
-- pModeInfo->ulDispHeight,
-- pModeInfo->ulBpp,
-- pModeInfo->ulPixClock,
-- pModeInfo->ulHFPorch,
-- pModeInfo->ulHSync,
-- pModeInfo->ulHBPorch,
-- pModeInfo->ulVFPorch,
-- pModeInfo->ulVSync,
-- pModeInfo->ulVBPorch,
-- pModeInfo->flSignalMode);
--}
--
--
--static float GetVRefresh(LPMGAMODEINFO pModeInfo)
--{
-- ULONG ulHTotal;
-- ULONG ulVTotal;
--
-- ulHTotal =
-- pModeInfo->ulDispWidth +
-- pModeInfo->ulHFPorch +
-- pModeInfo->ulHSync +
-- pModeInfo->ulHBPorch;
--
-- ulVTotal =
-- pModeInfo->ulDispHeight +
-- pModeInfo->ulVFPorch +
-- pModeInfo->ulVSync +
-- pModeInfo->ulVBPorch;
--
-- return ((float)pModeInfo->ulPixClock * 1000.0) / (ulHTotal * ulVTotal);
--}
--
--static void EscHal(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMGA = MGAPTR(pScrn);
--
-- if(pMGA->HALLoaded)
-- strcpy(sResult, "YES");
-- else
-- strcpy(sResult, "NO");
--
--}
--
--static void EscTest(ScrnInfoPtr pScrn, unsigned long *param, char
--*sResult, DisplayModePtr pMode)
--{
-- strcpy(sResult, "YES");
--}
--
--static void EscMerged(ScrnInfoPtr pScrn, unsigned long *param, char
--*sResult, DisplayModePtr pMode)
--{
-- strcpy(sResult, "YES");
--}
--
--static void EscRead(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- ULONG ulSource, ulAddr, ulData;
-- UCHAR ucIndex;
--
-- if ( (param[0] & 0xffff) < 2 )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
--
-- ulSource = param[1] >> 16;
-- ulAddr = param[1] & 0xffff;
--
--
-- switch( ulSource )
-- {
-- case 0:
-- ulData = INREG(ulAddr);
-- sprintf(sResult, "MGA[%04X] = 0x%08X", ulAddr, ulData);
-- break;
-- case 1:
-- ucIndex = INREG8(0x3c00);
-- OUTREG8(0x3c00, (UCHAR)ulAddr);
-- ulData = (ULONG)INREG8(0x3c0a);
-- OUTREG8(0x3c00, ucIndex);
-- sprintf(sResult, "DAC[%02X] = 0x%02X", ulAddr, ulData);
-- break;
-- case 2:
-- ucIndex = INREG8(0x1fd4);
-- OUTREG8(0x1fd4, (UCHAR)ulAddr);
-- ulData = (ULONG)INREG8(0x1fd5);
-- OUTREG8(0x1fd4, ucIndex);
-- sprintf(sResult, "CRTC[%02X] = 0x%02X", ulAddr, ulData);
-- break;
-- case 3:
-- ucIndex = INREG8(0x1fde);
-- OUTREG8(0x1fde, (UCHAR)ulAddr);
-- ulData = (ULONG)INREG8(0x1fdf);
-- OUTREG8(0x1fde, ucIndex);
-- sprintf(sResult, "CRTCEXT[%02X] = 0x%02X", ulAddr, ulData);
-- break;
-- default:
-- strcpy(sResult, "ERROR# 2");
-- break;
-- }
--}
--
--static void EscWrite(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- ULONG ulSource, ulAddr, ulData;
-- UCHAR ucIndex;
--
-- if ( (param[0] & 0xffff) < 3 )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- ulSource = param[1] >> 16;
-- ulAddr = param[1] & 0xffff;
-- ulData = param[2];
--
--
-- switch( ulSource )
-- {
-- case 0:
-- OUTREG(ulAddr, ulData);
-- strcpy(sResult, "OK");
-- break;
-- case 1:
-- ucIndex = INREG8(0x3c00);
-- OUTREG8(0x3c00, (UCHAR)ulAddr);
-- OUTREG8(0x3c0a, (UCHAR)ulData);
-- OUTREG8(0x3c00, ucIndex);
-- strcpy(sResult, "OK");
-- break;
-- case 2:
-- ucIndex = INREG8(0x1fd4);
-- OUTREG8(0x1fd4, (UCHAR)ulAddr);
-- OUTREG8(0x1fd5, (UCHAR)ulData);
-- OUTREG8(0x1fd4, ucIndex);
-- strcpy(sResult, "OK");
-- break;
-- case 3:
-- ucIndex = INREG8(0x1fde);
-- OUTREG8(0x1fde, (UCHAR)ulAddr);
-- OUTREG8(0x1fdf, (UCHAR)ulData);
-- OUTREG8(0x1fde, ucIndex);
-- strcpy(sResult, "OK");
-- break;
-- default:
-- strcpy(sResult, "ERROR# 2");
-- break;
-- }
--}
--
--static void EscHLeft(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
--
-- if (pModeInfo->ulHBPorch > (8 * param[1]) )
-- {
-- pModeInfo->ulHBPorch -=8 * param[1];
-- pModeInfo->ulHFPorch +=8 * param[1];
-- MGASetMode(pMga->pBoard, pModeInfo);
-- }
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--static void EscHRight(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if (pModeInfo->ulHFPorch > (8 * param[1]) )
-- {
-- pModeInfo->ulHFPorch -=8 * param[1];
-- pModeInfo->ulHBPorch +=8 * param[1];
-- MGASetMode(pMga->pBoard, pModeInfo);
-- }
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--
--static void EscVUp(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if (pModeInfo->ulVBPorch > (param[1]) )
-- {
-- pModeInfo->ulVBPorch -= param[1];
-- pModeInfo->ulVFPorch += param[1];
-- MGASetMode(pMga->pBoard, pModeInfo);
-- }
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--static void EscVDown(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if (pModeInfo->ulVFPorch >= (param[1]) )
-- {
-- pModeInfo->ulVFPorch -= param[1];
-- pModeInfo->ulVBPorch += param[1];
-- MGASetMode(pMga->pBoard, pModeInfo);
-- }
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--static void EscHLarger(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
-- float fRefresh, fPixelClock;
-- ULONG ulStep;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if ((param[0] & 0xffff) > 1)
-- {
--
-- ulStep = param[1] * 8;
-- }
-- else
-- {
--
-- ulStep = 8;
-- }
--
-- fRefresh = GetVRefresh(pModeInfo);
-- fPixelClock = (float)pModeInfo->ulPixClock;
-- if (pModeInfo->ulHBPorch >= ulStep )
-- {
-- pModeInfo->ulHBPorch -= ulStep;
-- }
-- else
-- {
-- pModeInfo->ulHBPorch = 0;
-- }
-- pModeInfo->ulPixClock = (ULONG)( (fRefresh * fPixelClock) / GetVRefresh(pModeInfo));
-- MGASetMode(pMga->pBoard, pModeInfo);
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--static void EscHSmaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
-- float fRefresh, fPixelClock;
-- ULONG ulStep;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if ((param[0] & 0xffff) > 1)
-- {
--
-- ulStep = param[1] * 8;
-- }
-- else
-- {
--
-- ulStep = 8;
-- }
--
--
-- fRefresh = GetVRefresh(pModeInfo);
-- fPixelClock = (float)pModeInfo->ulPixClock;
-- pModeInfo->ulHBPorch += ulStep;
-- pModeInfo->ulPixClock = (ULONG)( (fRefresh * fPixelClock) / GetVRefresh(pModeInfo));
--
-- MGASetMode(pMga->pBoard, pModeInfo);
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--static void EscVTaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
-- float fRefresh, fPixelClock;
-- ULONG ulStep;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if ((param[0] & 0xffff) > 1)
-- {
--
-- ulStep = param[1];
-- }
-- else
-- {
--
-- ulStep = 1;
-- }
--
-- fRefresh = GetVRefresh(pModeInfo);
-- fPixelClock = (float)pModeInfo->ulPixClock;
--
-- if (pModeInfo->ulVBPorch >= ulStep )
-- {
-- pModeInfo->ulVBPorch -= ulStep;
-- }
-- else
-- {
-- pModeInfo->ulVBPorch = 0;
-- }
--
-- pModeInfo->ulPixClock = (ULONG)( (fRefresh * fPixelClock) / GetVRefresh(pModeInfo));
-- MGASetMode(pMga->pBoard, pModeInfo);
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--static void EscVSmaller(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
-- float fRefresh, fPixelClock;
-- ULONG ulStep;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if ((param[0] & 0xffff) > 1)
-- {
--
-- ulStep = param[1];
-- }
-- else
-- {
--
-- ulStep = 1;
-- }
--
--
-- fRefresh = GetVRefresh(pModeInfo);
-- fPixelClock = (float)pModeInfo->ulPixClock;
-- pModeInfo->ulVFPorch += ulStep;
-- pModeInfo->ulPixClock = (ULONG)( (fRefresh * fPixelClock) / GetVRefresh(pModeInfo));
-- MGASetMode(pMga->pBoard, pModeInfo);
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--
--static void EscRefresh(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
-- LPMGAMODEINFO pModeInfo;
-- float fRefresh, fPixelClock;
--
-- pModeInfo = GetModeInfoPtr(param[0] >> 16);
--
-- if ( !pMgaModeInfo )
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- if ((param[0] & 0xffff) < 2)
-- {
-- strcpy(sResult, "#error 1");
-- return;
-- }
--
-- fRefresh = GetVRefresh(pModeInfo);
--
-- fPixelClock = (float)pModeInfo->ulPixClock;
-- pModeInfo->ulPixClock = (ULONG)( ((float)param[1] * fPixelClock) / fRefresh);
--
-- pModeInfo->ulRefreshRate = param[1];
--
-- MGASetMode(pMga->pBoard, pModeInfo);
--
-- MGAFillDisplayModeStruct(pMode, pModeInfo);
--
-- GetVideoParameterStr(pModeInfo, sResult);
--}
--
--static void EscRestoreVidParm(ScrnInfoPtr pScrn, unsigned long *param, char *sResult, DisplayModePtr pMode)
--{
-- MGAPtr pMga = MGAPTR(pScrn);
--
-- TmpMgaModeInfo[param[0] >> 16].ulDispWidth = 0;
-- MGASetMode(pMga->pBoard, pMgaModeInfo[param[0] >> 16]);
--
-- MGAFillDisplayModeStruct(pMode, pMgaModeInfo[param[0] >> 16]);
--
-- GetVideoParameterStr(pMgaModeInfo[param[0] >> 16], sResult);
--}
--
--static Bool convertNumber(unsigned long *pulNumber, char *sNumber)
--{
-- unsigned long i, ulDigit, shiftHex;
-- Bool bResult = TRUE;
--
-- if (sNumber == NULL)
-- {
-- return FALSE;
-- }
--
--
-- /* Convert number */
-- if ( (sNumber[0] == '0') && (sNumber[1] == 'x') )
-- {
-- shiftHex = 0;
-- *pulNumber = 0;
--
-- for (i = strlen(sNumber) - 1; i > 1; i--)
-- {
-- if (shiftHex > 28)
-- {
-- bResult = FALSE;
-- break;
-- }
--
-- if ( !isxdigit(sNumber[i]) )
-- {
-- bResult = FALSE;
-- break;
-- }
--
-- ulDigit = toupper(sNumber[i]) - '0';
-- if (ulDigit > 9)
-- {
-- ulDigit -= 7;
-- }
-- *pulNumber += ulDigit << shiftHex;
-- shiftHex += 4;
-- }
-- }
-- else
-- {
-- for (i = 0; i < strlen(sNumber); i++)
-- {
-- if ( !isdigit(sNumber[i]) )
-- {
-- bResult = FALSE;
-- break;
-- }
-- }
-- *pulNumber = atoi(sNumber);
-- }
--
-- return bResult;
--}
--
--static Bool GetEscCommand(char *cmdline, EscCmdStruct *escCmd)
--{
-- unsigned long i, paramIndex, ulHI;
-- Bool bResult;
-- char *pParameter, *function;
--
-- bResult = TRUE; /* success */
--
-- function = strtok(cmdline, " \t\n,");
--
--
-- escCmd->parameters[0] = 0;
-- if (function)
-- {
-- /* Find Screen */
-- if (function[1] == ':' )
-- {
-- escCmd->parameters[0] = (unsigned long)(function[0] - '0') << 16;
-- strncpy(escCmd->function, function+2, 32);
-- }
-- else
-- {
-- strncpy(escCmd->function, function, 32);
-- }
--
-- }
-- else
-- {
-- strcpy(escCmd->function, "#ERROR -1");
-- escCmd->parameters[0] = 0;
-- return FALSE;
-- }
--
-- paramIndex = 1;
-- while ( (pParameter = strtok(NULL, " \t\n,")) != NULL )
-- {
-- if (paramIndex > 31)
-- {
-- /* 32 parameters supported */
-- break;
-- }
--
-- i = 0;
-- while(pParameter[i] && pParameter[i] != ':')
-- {
-- i++;
-- }
--
-- if ( pParameter[i] )
-- {
-- pParameter[i] = '\0';
-- bResult = convertNumber(&escCmd->parameters[paramIndex], &pParameter[i+1]);
-- bResult |= convertNumber(&ulHI, pParameter);
-- escCmd->parameters[paramIndex] &= 0xffff;
-- escCmd->parameters[paramIndex] += ulHI << 16;
-- pParameter[i] = ':';
-- }
-- else
-- {
-- bResult = convertNumber(&escCmd->parameters[paramIndex], pParameter);
-- }
--
--
-- if (!bResult)
-- {
-- break;
-- }
-- paramIndex++;
-- }
--
-- escCmd->parameters[0] += paramIndex;
-- return bResult;
--
--}
--
--void MGAExecuteEscCmd(ScrnInfoPtr pScrn, char *cmdline , char *sResult, DisplayModePtr pMode)
--{
-- int i = 0;
-- int ulScreen = 0;
-- MGAPtr pMga = MGAPTR(pScrn);
-- EscCmdStruct EscCmd;
--
-- if (pMga->SecondCrtc)
-- {
-- ulScreen = 1;
-- }
-- else
-- {
-- ulScreen = 0;
-- }
--
--
-- if (FunctionTable[0].function && GetEscCommand(cmdline, &EscCmd) )
-- {
-- i = 0;
--
-- while ( FunctionTable[i].function && strcmp(FunctionTable[i].function, EscCmd.function) )
-- {
-- i++;
-- }
--
-- if (FunctionTable[i].function)
-- {
-- EscCmd.parameters[0] &= 0xffff;
-- EscCmd.parameters[0] |= ulScreen << 16;
--
-- FunctionTable[i].funcptr(pScrn, EscCmd.parameters, sResult, pMode);
-- }
-- else
-- {
-- strcpy(sResult, "error# -1");
-- }
-- }
-- else
-- {
-- strcpy(sResult, "error# -1");
-- }
--}
--#else
- int mga_foo;
--#endif
-diff --git a/src/mga_macros.h b/src/mga_macros.h
-index bffd063..130651d 100644
---- a/src/mga_macros.h
-+++ b/src/mga_macros.h
-@@ -74,18 +74,7 @@ while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
- #define CHECK_DMA_QUIESCENT(pMGA, pScrn)
- #endif
-
--#ifdef USEMGAHAL
--#define MGA_HAL(x) { \
-- MGAPtr pMga = MGAPTR(pScrn); \
-- if (pMga->HALLoaded && pMga->chip_attribs->HAL_chipset) { x; } \
--}
--#define MGA_NOT_HAL(x) { \
-- MGAPtr pMga = MGAPTR(pScrn); \
-- if (!pMga->HALLoaded || !pMga->chip_attribs->HAL_chipset) { x; } \
--}
--#else
- #define MGA_NOT_HAL(x) { x; }
--#endif
-
- #define MGAISGx50(x) ((x)->is_Gx50)
-
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index 1fd0572..2affe3b 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -236,9 +236,6 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- int i;
- char* s;
- ClockRangePtr clockRanges;
--#ifdef USEMGAHAL
-- ULONG status;
--#endif
- MgaScrn2Rel Monitor2Pos;
-
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "==== Start of second screen initialization ====\n");
-@@ -252,9 +249,6 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- }
-
- pMga = MGAPTR(pScrn);
--#ifdef USEMGAHAL
-- pMga->pMgaModeInfo = NULL; /*will be allocated later if NULL*/
--#endif
- pMga1 = MGAPTR(pScrn1);
- pMga1->pScrn2 = pScrn;
-
-@@ -456,10 +450,6 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- clockRanges->clockIndex = -1; /* programmable */
- clockRanges->interlaceAllowed = TRUE;
- clockRanges->doubleScanAllowed = TRUE;
--#ifdef USEMGAHAL
-- MGA_HAL(clockRanges->interlaceAllowed = FALSE);
-- MGA_HAL(clockRanges->doubleScanAllowed = FALSE);
--#endif
- clockRanges->interlaceAllowed = FALSE; /*no interlace on CRTC2 */
-
- clockRanges->ClockMulFactor = 1;
-@@ -562,30 +552,6 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- MGAFreeRec(pScrn);
- return FALSE;
- }
--#ifdef USEMGAHAL
-- MGA_HAL(
--
-- pMga->pBoard = pMga1->pBoard;
-- pMga->pClientStruct = pMga1->pClientStruct;
-- pMga->pMgaHwInfo = pMga1->pMgaHwInfo;
--
--
-- MGAFillModeInfoStruct(pScrn,NULL);
-- /* Fields usually handled by MGAFillModeInfoStruct, but are unavailable
-- * because no mode is given
-- */
-- pMga->pMgaModeInfo->ulDispWidth = pScrn->virtualX;
-- pMga->pMgaModeInfo->ulDispHeight = pScrn->virtualY;
--
-- if((status = MGAValidateMode(pMga->pBoard,pMga->pMgaModeInfo)) != 0) {
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-- "MGAValidateMode from HALlib found the mode to be invalid.\n"
-- "\tError: 0x%lx\n", status);
-- return FALSE;
-- }
-- pScrn->displayWidth = pMga->pMgaModeInfo->ulFBPitch;
-- ); /* MGA_HAL */
--#endif
-
- /*
- * Set the CRTC parameters for all of the modes based on the type
-@@ -595,9 +561,6 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- * driver and if the driver doesn't provide code to set them. They
- * are not pre-initialised at all.
- */
--#ifdef USEMGAHAL
-- MGA_HAL(xf86SetCrtcForModes(pScrn, 0));
--#endif
- MGA_NOT_HAL(xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V));
-
- /* Set the current mode to the first in the list */
---
-cgit v0.9.0.2-2-gbebe
-From ee09a9a340f8946f2d4a71a431b64189dbb5c256 Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Tue, 27 Sep 2011 02:22:09 +0000
-Subject: Remove xalloc/xcalloc/xrealloc/xfree
-
-Reviewed-by: Jamey Sharp <jamey@minilop.net>
-Signed-off-by: Matt Turner <mattst88@gmail.com>
----
-diff --git a/src/mga_dga.c b/src/mga_dga.c
-index d43b96d..224e4ba 100644
---- a/src/mga_dga.c
-+++ b/src/mga_dga.c
-@@ -111,7 +111,7 @@ SECOND_PASS:
- if(secondPitch)
- pitch = secondPitch;
-
-- if(!(newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec))))
-+ if(!(newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec))))
- break;
-
- modes = newmodes;
-diff --git a/src/mga_dri.c b/src/mga_dri.c
-index 14f342f..957c6df 100644
---- a/src/mga_dri.c
-+++ b/src/mga_dri.c
-@@ -91,24 +91,24 @@ static Bool MGAInitVisualConfigs( ScreenPtr pScreen )
- case 16:
- numConfigs = 8;
-
-- pConfigs = (__GLXvisualConfig*)xcalloc( sizeof(__GLXvisualConfig),
-+ pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
- numConfigs );
- if ( !pConfigs ) {
- return FALSE;
- }
-
-- pMGAConfigs = (MGAConfigPrivPtr)xcalloc( sizeof(MGAConfigPrivRec),
-+ pMGAConfigs = (MGAConfigPrivPtr)calloc( sizeof(MGAConfigPrivRec),
- numConfigs );
- if ( !pMGAConfigs ) {
-- xfree( pConfigs );
-+ free(pConfigs);
- return FALSE;
- }
-
-- pMGAConfigPtrs = (MGAConfigPrivPtr*)xcalloc( sizeof(MGAConfigPrivPtr),
-+ pMGAConfigPtrs = (MGAConfigPrivPtr*)calloc( sizeof(MGAConfigPrivPtr),
- numConfigs );
- if ( !pMGAConfigPtrs ) {
-- xfree( pConfigs );
-- xfree( pMGAConfigs );
-+ free(pConfigs);
-+ free(pMGAConfigs);
- return FALSE;
- }
-
-@@ -182,24 +182,24 @@ static Bool MGAInitVisualConfigs( ScreenPtr pScreen )
- case 32:
- numConfigs = 8;
-
-- pConfigs = (__GLXvisualConfig*)xcalloc( sizeof(__GLXvisualConfig),
-+ pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
- numConfigs );
- if ( !pConfigs ) {
- return FALSE;
- }
-
-- pMGAConfigs = (MGAConfigPrivPtr)xcalloc( sizeof(MGAConfigPrivRec),
-+ pMGAConfigs = (MGAConfigPrivPtr)calloc( sizeof(MGAConfigPrivRec),
- numConfigs );
- if ( !pMGAConfigs ) {
-- xfree( pConfigs );
-+ free(pConfigs);
- return FALSE;
- }
-
-- pMGAConfigPtrs = (MGAConfigPrivPtr*)xcalloc( sizeof(MGAConfigPrivPtr),
-+ pMGAConfigPtrs = (MGAConfigPrivPtr*)calloc( sizeof(MGAConfigPrivPtr),
- numConfigs );
- if ( !pMGAConfigPtrs ) {
-- xfree( pConfigs );
-- xfree( pMGAConfigs );
-+ free(pConfigs);
-+ free(pMGAConfigs);
- return FALSE;
- }
-
-@@ -973,11 +973,11 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
-
- if (nbox>1) {
- /* Keep ordering in each band, reverse order of bands */
-- pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox);
-+ pboxNew1 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
- if (!pboxNew1) return;
-- pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox);
-+ pptNew1 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
- if (!pptNew1) {
-- xfree(pboxNew1);
-+ free(pboxNew1);
- return;
- }
- pboxBase = pboxNext = pbox+nbox-1;
-@@ -1008,14 +1008,14 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
-
- if (nbox > 1) {
- /*reverse orderof rects in each band */
-- pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox);
-- pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox);
-+ pboxNew2 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
-+ pptNew2 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
- if (!pboxNew2 || !pptNew2) {
-- if (pptNew2) xfree(pptNew2);
-- if (pboxNew2) xfree(pboxNew2);
-+ if (pptNew2) free(pptNew2);
-+ if (pboxNew2) free(pboxNew2);
- if (pboxNew1) {
-- xfree(pptNew1);
-- xfree(pboxNew1);
-+ free(pptNew1);
-+ free(pboxNew1);
- }
- return;
- }
-@@ -1066,12 +1066,12 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
- MGASelectBuffer(pScrn, MGA_FRONT);
-
- if (pboxNew2) {
-- xfree(pptNew2);
-- xfree(pboxNew2);
-+ free(pptNew2);
-+ free(pboxNew2);
- }
- if (pboxNew1) {
-- xfree(pptNew1);
-- xfree(pboxNew1);
-+ free(pptNew1);
-+ free(pboxNew1);
- }
-
- pMga->AccelInfoRec->NeedToSync = TRUE;
-@@ -1150,7 +1150,7 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
- if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) {
- pDRIInfo->busIdString = DRICreatePCIBusID(pMga->PciInfo);
- } else {
-- pDRIInfo->busIdString = xalloc(64);
-+ pDRIInfo->busIdString = malloc(64);
- sprintf( pDRIInfo->busIdString, "PCI:%d:%d:%d",
- #ifdef XSERVER_LIBPCIACCESS
- ((pMga->PciInfo->domain << 8) | pMga->PciInfo->bus),
-@@ -1198,7 +1198,7 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
-
- pDRIInfo->SAREASize = SAREA_MAX;
-
-- pMGADRI = (MGADRIPtr)xcalloc( sizeof(MGADRIRec), 1 );
-+ pMGADRI = (MGADRIPtr)calloc( sizeof(MGADRIRec), 1 );
- if ( !pMGADRI ) {
- DRIDestroyInfoRec( pMga->pDRIInfo );
- pMga->pDRIInfo = 0;
-@@ -1208,9 +1208,9 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
- }
-
- pMGADRIServer = (MGADRIServerPrivatePtr)
-- xcalloc( sizeof(MGADRIServerPrivateRec), 1 );
-+ calloc( sizeof(MGADRIServerPrivateRec), 1 );
- if ( !pMGADRIServer ) {
-- xfree( pMGADRI );
-+ free( pMGADRI );
- DRIDestroyInfoRec( pMga->pDRIInfo );
- pMga->pDRIInfo = 0;
- xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
-@@ -1249,9 +1249,9 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
- pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
-
- if ( !DRIScreenInit( pScreen, pDRIInfo, &pMga->drmFD ) ) {
-- xfree( pMGADRIServer );
-+ free( pMGADRIServer );
- pMga->DRIServerInfo = 0;
-- xfree( pDRIInfo->devPrivate );
-+ free( pDRIInfo->devPrivate );
- pDRIInfo->devPrivate = 0;
- DRIDestroyInfoRec( pMga->pDRIInfo );
- pMga->pDRIInfo = 0;
-@@ -1495,20 +1495,20 @@ void MGADRICloseScreen( ScreenPtr pScreen )
-
- if ( pMga->pDRIInfo ) {
- if ( pMga->pDRIInfo->devPrivate ) {
-- xfree( pMga->pDRIInfo->devPrivate );
-+ free( pMga->pDRIInfo->devPrivate );
- pMga->pDRIInfo->devPrivate = 0;
- }
- DRIDestroyInfoRec( pMga->pDRIInfo );
- pMga->pDRIInfo = 0;
- }
- if ( pMga->DRIServerInfo ) {
-- xfree( pMga->DRIServerInfo );
-+ free(pMga->DRIServerInfo);
- pMga->DRIServerInfo = 0;
- }
- if ( pMga->pVisualConfigs ) {
-- xfree( pMga->pVisualConfigs );
-+ free(pMga->pVisualConfigs);
- }
- if ( pMga->pVisualConfigsPriv ) {
-- xfree( pMga->pVisualConfigsPriv );
-+ free( pMga->pVisualConfigsPriv );
- }
- }
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index d770031..d4ae346 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -646,7 +646,7 @@ MGAFreeRec(ScrnInfoPtr pScrn)
- {
- if (pScrn->driverPrivate == NULL)
- return;
-- xfree(pScrn->driverPrivate);
-+ free(pScrn->driverPrivate);
- pScrn->driverPrivate = NULL;
- }
-
-@@ -813,7 +813,7 @@ MGAProbe(DriverPtr drv, int flags)
- MGAChipsets, MGAPciChipsets, devSections,
- numDevSections, drv, &usedChips);
- /* Free it since we don't need that list after this */
-- xfree(devSections);
-+ free(devSections);
- if (numUsed <= 0)
- return FALSE;
-
-@@ -971,7 +971,7 @@ MGAProbe(DriverPtr drv, int flags)
- }
- }
- }
-- xfree(usedChips);
-+ free(usedChips);
-
- return foundScreen;
- }
-@@ -1715,7 +1715,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- #endif
- }
-
-- if (!(pMga->Options = xalloc(sizeof(MGAOptions))))
-+ if (!(pMga->Options = malloc(sizeof(MGAOptions))))
- return FALSE;
- memcpy(pMga->Options, MGAOptions, sizeof(MGAOptions));
-
-@@ -2384,7 +2384,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- switch(pMga->Chipset) {
- case PCI_CHIP_MGA2064:
- if (!pMga->NoAccel) {
-- linePitches = xalloc(sizeof(Pitches1));
-+ linePitches = malloc(sizeof(Pitches1));
- memcpy(linePitches, Pitches1, sizeof(Pitches1));
- minPitch = maxPitch = 0;
- }
-@@ -2393,7 +2393,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- case PCI_CHIP_MGA2164_AGP:
- case PCI_CHIP_MGA1064:
- if (!pMga->NoAccel) {
-- linePitches = xalloc(sizeof(Pitches2));
-+ linePitches = malloc(sizeof(Pitches2));
- memcpy(linePitches, Pitches2, sizeof(Pitches2));
- minPitch = maxPitch = 0;
- }
-@@ -2431,7 +2431,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- LOOKUP_BEST_REFRESH);
-
- if (linePitches)
-- xfree(linePitches);
-+ free(linePitches);
- }
-
- if (i < 1 && pMga->FBDev) {
-@@ -3294,7 +3294,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-
- if(pMga->ShadowFB) {
- pMga->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width);
-- pMga->ShadowPtr = xalloc(pMga->ShadowPitch * height);
-+ pMga->ShadowPtr = malloc(pMga->ShadowPitch * height);
- displayWidth = pMga->ShadowPitch / (pScrn->bitsPerPixel >> 3);
- FBStart = pMga->ShadowPtr;
- } else {
-@@ -3745,21 +3745,21 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- #ifdef USE_EXA
- if (pMga->ExaDriver) {
- exaDriverFini(pScreen);
-- xfree(pMga->ExaDriver);
-+ free(pMga->ExaDriver);
- }
- #endif
- if (pMga->CursorInfoRec)
- xf86DestroyCursorInfoRec(pMga->CursorInfoRec);
- if (pMga->ShadowPtr)
-- xfree(pMga->ShadowPtr);
-+ free(pMga->ShadowPtr);
- if (pMga->DGAModes)
-- xfree(pMga->DGAModes);
-+ free(pMga->DGAModes);
- if (pMga->adaptor)
-- xfree(pMga->adaptor);
-+ free(pMga->adaptor);
- if (pMga->portPrivate)
-- xfree(pMga->portPrivate);
-+ free(pMga->portPrivate);
- if (pMga->ScratchBuffer)
-- xfree(pMga->ScratchBuffer);
-+ free(pMga->ScratchBuffer);
-
- pScrn->vtSema = FALSE;
-
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index 2affe3b..e3216c9 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -70,9 +70,9 @@ CopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, DisplayModePtr i, DisplayM
- DisplayModePtr mode;
- int dx = 0,dy = 0;
- /* start with first node */
-- mode = xalloc(sizeof(DisplayModeRec));
-+ mode = malloc(sizeof(DisplayModeRec));
- memcpy(mode,i, sizeof(DisplayModeRec));
-- mode->Private = xalloc(sizeof(MergedDisplayModeRec));
-+ mode->Private = malloc(sizeof(MergedDisplayModeRec));
- ((MergedDisplayModePtr)mode->Private)->Monitor1 = i;
- ((MergedDisplayModePtr)mode->Private)->Monitor2 = j;
- ((MergedDisplayModePtr)mode->Private)->Monitor2Pos = srel;
-@@ -239,7 +239,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- MgaScrn2Rel Monitor2Pos;
-
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "==== Start of second screen initialization ====\n");
-- pScrn = xalloc(sizeof(ScrnInfoRec));
-+ pScrn = malloc(sizeof(ScrnInfoRec));
- memcpy(pScrn,pScrn1,sizeof(ScrnInfoRec));
-
- pScrn->driverPrivate = NULL;
-@@ -270,7 +270,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
-
- /* Set pScrn->monitor */
- {
-- pScrn->monitor = xalloc(sizeof(MonRec));
-+ pScrn->monitor = malloc(sizeof(MonRec));
- /* copy everything we don't care about */
- memcpy(pScrn->monitor,pScrn1->monitor,sizeof(MonRec));
- pScrn->monitor->DDC = NULL; /*FIXME:have to try this */
-@@ -484,7 +484,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- switch(pMga->Chipset) {
- case PCI_CHIP_MGA2064:
- if (!pMga->NoAccel) {
-- linePitches = xalloc(sizeof(Pitches1));
-+ linePitches = malloc(sizeof(Pitches1));
- memcpy(linePitches, Pitches1, sizeof(Pitches1));
- minPitch = maxPitch = 0;
- }
-@@ -493,7 +493,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- case PCI_CHIP_MGA2164_AGP:
- case PCI_CHIP_MGA1064:
- if (!pMga->NoAccel) {
-- linePitches = xalloc(sizeof(Pitches2));
-+ linePitches = malloc(sizeof(Pitches2));
- memcpy(linePitches, Pitches2, sizeof(Pitches2));
- minPitch = maxPitch = 0;
- }
-@@ -529,7 +529,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- LOOKUP_BEST_REFRESH);
-
- if (linePitches)
-- xfree(linePitches);
-+ free(linePitches);
- }
-
-
-@@ -881,10 +881,10 @@ MGACloseScreenMerged(int scrnIndex, ScreenPtr pScreen) {
- ScrnInfoPtr pScrn2 = pMga->pScrn2;
-
- if(pScrn2) {
-- xfree(pScrn2->monitor);
-+ free(pScrn2->monitor);
- pScrn2->monitor = NULL;
-
-- xfree(pScrn2);
-+ free(pScrn2);
- pMga->pScrn2 = NULL;
- }
-
-@@ -893,8 +893,8 @@ MGACloseScreenMerged(int scrnIndex, ScreenPtr pScreen) {
- do {
- DisplayModePtr p = pScrn1->currentMode->next;
- if(pScrn1->currentMode->Private)
-- xfree(pScrn1->currentMode->Private);
-- xfree(pScrn1->currentMode);
-+ free(pScrn1->currentMode->Private);
-+ free(pScrn1->currentMode);
- pScrn1->currentMode = p;
- }while( pScrn1->currentMode != pScrn1->modes);
- }
-diff --git a/src/mga_storm.c b/src/mga_storm.c
-index db7fae7..f0e6194 100644
---- a/src/mga_storm.c
-+++ b/src/mga_storm.c
-@@ -583,7 +583,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
- BoxRec AvailFBArea;
- int i;
-
-- pMga->ScratchBuffer = xalloc(((pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel) + 127) >> 3);
-+ pMga->ScratchBuffer = malloc(((pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel) + 127) >> 3);
- if(!pMga->ScratchBuffer) return FALSE;
-
- pMga->AccelInfoRec = infoPtr = XAACreateInfoRec();
-diff --git a/src/mga_vga.c b/src/mga_vga.c
-index 9f00b3d..0ac8bf7 100644
---- a/src/mga_vga.c
-+++ b/src/mga_vga.c
-@@ -197,17 +197,17 @@ MGAG200SESaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
-- if (hwp->FontInfo1 || (hwp->FontInfo1 = xalloc(FONT_AMOUNT))) {
-+ if (hwp->FontInfo1 || (hwp->FontInfo1 = malloc(FONT_AMOUNT))) {
- hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
- hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
- slowbcopy_frombus(hwp->Base, hwp->FontInfo1, FONT_AMOUNT);
- }
-- if (hwp->FontInfo2 || (hwp->FontInfo2 = xalloc(FONT_AMOUNT))) {
-+ if (hwp->FontInfo2 || (hwp->FontInfo2 = malloc(FONT_AMOUNT))) {
- hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
- hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
- slowbcopy_frombus(hwp->Base, hwp->FontInfo2, FONT_AMOUNT);
- }
-- if (hwp->TextInfo || (hwp->TextInfo = xalloc(2 * TEXT_AMOUNT))) {
-+ if (hwp->TextInfo || (hwp->TextInfo = malloc(2 * TEXT_AMOUNT))) {
- hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
- hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
- slowbcopy_frombus(hwp->Base, hwp->TextInfo, TEXT_AMOUNT);
-diff --git a/src/mga_video.c b/src/mga_video.c
-index a69c973..beb5a3c 100644
---- a/src/mga_video.c
-+++ b/src/mga_video.c
-@@ -131,8 +131,8 @@ void MGAInitVideo(ScreenPtr pScreen)
- num_adaptors = 1;
- adaptors = &newAdaptor;
- } else {
-- newAdaptors = /* need to free this someplace */
-- xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
-+ /* need to free this someplace */
-+ newAdaptors = malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr *));
- if(newAdaptors) {
- memcpy(newAdaptors, adaptors, num_adaptors *
- sizeof(XF86VideoAdaptorPtr));
-@@ -147,7 +147,7 @@ void MGAInitVideo(ScreenPtr pScreen)
- xf86XVScreenInit(pScreen, adaptors, num_adaptors);
-
- if(newAdaptors)
-- xfree(newAdaptors);
-+ free(newAdaptors);
- }
-
- /* client libraries expect an encoding */
-@@ -231,10 +231,10 @@ MGAAllocAdaptor(ScrnInfoPtr pScrn, Bool doublebuffer)
- if(!(adapt = xf86XVAllocateVideoAdaptorRec(pScrn)))
- return NULL;
-
-- if(!(pPriv = xcalloc(1, sizeof(MGAPortPrivRec) +
-+ if(!(pPriv = calloc(1, sizeof(MGAPortPrivRec) +
- (sizeof(DevUnion) * MGA_MAX_PORTS))))
- {
-- xfree(adapt);
-+ free(adapt);
- return NULL;
- }
-
-@@ -1082,18 +1082,18 @@ MGAAllocateSurface(
- surface->width = w;
- surface->height = h;
-
-- if(!(surface->pitches = xalloc(sizeof(int)))) {
-+ if(!(surface->pitches = malloc(sizeof(int)))) {
- MGAFreeMemory(pScrn, surface_memory);
- return BadAlloc;
- }
-- if(!(surface->offsets = xalloc(sizeof(int)))) {
-- xfree(surface->pitches);
-+ if(!(surface->offsets = malloc(sizeof(int)))) {
-+ free(surface->pitches);
- MGAFreeMemory(pScrn, surface_memory);
- return BadAlloc;
- }
-- if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) {
-- xfree(surface->pitches);
-- xfree(surface->offsets);
-+ if(!(pPriv = malloc(sizeof(OffscreenPrivRec)))) {
-+ free(surface->pitches);
-+ free(surface->offsets);
- MGAFreeMemory(pScrn, surface_memory);
- return BadAlloc;
- }
-@@ -1137,9 +1137,9 @@ MGAFreeSurface(
- if(pPriv->isOn)
- MGAStopSurface(surface);
- MGAFreeMemory(pScrn, pPriv->surface_memory);
-- xfree(surface->pitches);
-- xfree(surface->offsets);
-- xfree(surface->devPrivate.ptr);
-+ free(surface->pitches);
-+ free(surface->offsets);
-+ free(surface->devPrivate.ptr);
-
- return Success;
- }
-@@ -1231,7 +1231,7 @@ MGAInitOffscreenImages(ScreenPtr pScreen)
- XF86OffscreenImagePtr offscreenImages;
-
- /* need to free this someplace */
-- if(!(offscreenImages = xalloc(num * sizeof(XF86OffscreenImageRec))))
-+ if(!(offscreenImages = malloc(num * sizeof(XF86OffscreenImageRec))))
- return;
-
- offscreenImages[0].image = &Images[0];
---
-cgit v0.9.0.2-2-gbebe
-From 1036e32e006d496023553ea566cb13ae93933719 Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Tue, 27 Sep 2011 02:35:48 +0000
-Subject: Remove if(E != NULL) checks around free(E)
-
-Reviewed-by: Jamey Sharp <jamey@minilop.net>
-Signed-off-by: Matt Turner <mattst88@gmail.com>
----
-diff --git a/src/mga_dri.c b/src/mga_dri.c
-index 957c6df..1454994 100644
---- a/src/mga_dri.c
-+++ b/src/mga_dri.c
-@@ -1011,8 +1011,8 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
- pboxNew2 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
- pptNew2 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
- if (!pboxNew2 || !pptNew2) {
-- if (pptNew2) free(pptNew2);
-- if (pboxNew2) free(pboxNew2);
-+ free(pptNew2);
-+ free(pboxNew2);
- if (pboxNew1) {
- free(pptNew1);
- free(pboxNew1);
-@@ -1494,21 +1494,13 @@ void MGADRICloseScreen( ScreenPtr pScreen )
- DRICloseScreen( pScreen );
-
- if ( pMga->pDRIInfo ) {
-- if ( pMga->pDRIInfo->devPrivate ) {
-- free( pMga->pDRIInfo->devPrivate );
-- pMga->pDRIInfo->devPrivate = 0;
-- }
-+ free(pMga->pDRIInfo->devPrivate);
-+ pMga->pDRIInfo->devPrivate = 0;
- DRIDestroyInfoRec( pMga->pDRIInfo );
- pMga->pDRIInfo = 0;
- }
-- if ( pMga->DRIServerInfo ) {
-- free(pMga->DRIServerInfo);
-- pMga->DRIServerInfo = 0;
-- }
-- if ( pMga->pVisualConfigs ) {
-- free(pMga->pVisualConfigs);
-- }
-- if ( pMga->pVisualConfigsPriv ) {
-- free( pMga->pVisualConfigsPriv );
-- }
-+ free(pMga->DRIServerInfo);
-+ pMga->DRIServerInfo = 0;
-+ free(pMga->pVisualConfigs);
-+ free(pMga->pVisualConfigsPriv);
- }
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index d4ae346..dcbfabf 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -644,8 +644,6 @@ MGAGetRec(ScrnInfoPtr pScrn)
- void
- MGAFreeRec(ScrnInfoPtr pScrn)
- {
-- if (pScrn->driverPrivate == NULL)
-- return;
- free(pScrn->driverPrivate);
- pScrn->driverPrivate = NULL;
- }
-@@ -2430,8 +2428,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- pMga->FbMapSize,
- LOOKUP_BEST_REFRESH);
-
-- if (linePitches)
-- free(linePitches);
-+ free(linePitches);
- }
-
- if (i < 1 && pMga->FBDev) {
-@@ -3750,16 +3747,11 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- #endif
- if (pMga->CursorInfoRec)
- xf86DestroyCursorInfoRec(pMga->CursorInfoRec);
-- if (pMga->ShadowPtr)
-- free(pMga->ShadowPtr);
-- if (pMga->DGAModes)
-- free(pMga->DGAModes);
-- if (pMga->adaptor)
-- free(pMga->adaptor);
-- if (pMga->portPrivate)
-- free(pMga->portPrivate);
-- if (pMga->ScratchBuffer)
-- free(pMga->ScratchBuffer);
-+ free(pMga->ShadowPtr);
-+ free(pMga->DGAModes);
-+ free(pMga->adaptor);
-+ free(pMga->portPrivate);
-+ free(pMga->ScratchBuffer);
-
- pScrn->vtSema = FALSE;
-
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index e3216c9..c1cf2eb 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -528,8 +528,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- pMga->FbMapSize,
- LOOKUP_BEST_REFRESH);
-
-- if (linePitches)
-- free(linePitches);
-+ free(linePitches);
- }
-
-
-@@ -892,8 +891,7 @@ MGACloseScreenMerged(int scrnIndex, ScreenPtr pScreen) {
- pScrn1->currentMode = pScrn1->modes;
- do {
- DisplayModePtr p = pScrn1->currentMode->next;
-- if(pScrn1->currentMode->Private)
-- free(pScrn1->currentMode->Private);
-+ free(pScrn1->currentMode->Private);
- free(pScrn1->currentMode);
- pScrn1->currentMode = p;
- }while( pScrn1->currentMode != pScrn1->modes);
-diff --git a/src/mga_video.c b/src/mga_video.c
-index beb5a3c..784e7b1 100644
---- a/src/mga_video.c
-+++ b/src/mga_video.c
-@@ -146,8 +146,7 @@ void MGAInitVideo(ScreenPtr pScreen)
- if(num_adaptors)
- xf86XVScreenInit(pScreen, adaptors, num_adaptors);
-
-- if(newAdaptors)
-- free(newAdaptors);
-+ free(newAdaptors);
- }
-
- /* client libraries expect an encoding */
---
-cgit v0.9.0.2-2-gbebe
-From 560967b4ffdb103f95121c43708dd5fc680a5045 Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Tue, 27 Sep 2011 02:37:04 +0000
-Subject: Fix printf format specifier warning
-
-Signed-off-by: Matt Turner <mattst88@gmail.com>
----
-diff --git a/src/mga_exa.c b/src/mga_exa.c
-index f292327..e5eaa92 100644
---- a/src/mga_exa.c
-+++ b/src/mga_exa.c
-@@ -865,7 +865,7 @@ mgaExaInit(ScreenPtr pScreen)
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "X %d Y %d bpp %d\n",
- pScrn->virtualX, pScrn->virtualY, pScrn->bitsPerPixel);
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Start at %p, size %x, osb %x\n",
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Start at %p, size %lx, osb %lx\n",
- pExa->memoryBase, pExa->memorySize, pExa->offScreenBase);
-
- /* In PW24 mode, we need to align to "3 64-bytes" */
---
-cgit v0.9.0.2-2-gbebe
-From 07792ef41f33aa5419168263637e34ee614f26e2 Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Tue, 27 Sep 2011 02:38:17 +0000
-Subject: Remove calls to xf86IsPc98()
-
-Reviewed-by: Jamey Sharp <jamey@minilop.net>
-Signed-off-by: Matt Turner <mattst88@gmail.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index dcbfabf..4af36ca 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -2164,7 +2164,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- /*
- * Reset card if it isn't primary one
- */
-- if ( (!pMga->Primary && !pMga->FBDev) || xf86IsPc98() )
-+ if ( (!pMga->Primary && !pMga->FBDev) )
- MGASoftReset(pScrn);
-
- if (pScrn->videoRam == 0) {
-@@ -2878,13 +2878,6 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- vgaHWProtect(pScrn, FALSE);
- }
-
-- if (xf86IsPc98()) {
-- if (pMga->Chipset == PCI_CHIP_MGA2064)
-- outb(0xfac, 0x01);
-- else
-- outb(0xfac, 0x02);
-- }
--
- /* Reset tagfifo*/
- if (pMga->is_G200ER)
- {
-@@ -3680,8 +3673,6 @@ MGALeaveVT(int scrnIndex, int flags)
- MGARestore(pScrn);
- vgaHWLock(hwp);
-
-- if (xf86IsPc98())
-- outb(0xfac, 0x00);
- #ifdef XF86DRI
- if (pMga->directRenderingEnabled) {
- pScreen = screenInfo.screens[scrnIndex];
-@@ -3755,9 +3746,6 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
-
- pScrn->vtSema = FALSE;
-
-- if (xf86IsPc98())
-- outb(0xfac, 0x00);
--
- xf86ClearPrimInitDone(pScrn->entityList[0]);
-
- if(pMga->BlockHandler)
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index c1cf2eb..aec3443 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -385,7 +385,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- /*
- * Reset card if it isn't primary one
- */
-- if ( (!pMga->Primary && !pMga->FBDev) || xf86IsPc98() )
-+ if ( (!pMga->Primary && !pMga->FBDev) )
- MGASoftReset(pScrn);
-
-
---
-cgit v0.9.0.2-2-gbebe
-From f9acf37be49844bea8165be9786afe37fd999229 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Sat, 29 Oct 2011 23:31:08 +0000
-Subject: Include <unistd.h> for usleep
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
-diff --git a/src/mga_vga.c b/src/mga_vga.c
-index 0ac8bf7..8f52951 100644
---- a/src/mga_vga.c
-+++ b/src/mga_vga.c
-@@ -2,6 +2,8 @@
- #include "config.h"
- #endif
-
-+#include <unistd.h>
-+
- #include "misc.h"
- #include "xf86.h"
- #include "xf86_OSproc.h"
---
-cgit v0.9.0.2-2-gbebe
-From d9cf07a4f424b2beb844ea1b3ec5d468e79a747c Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Sat, 29 Oct 2011 23:34:41 +0000
-Subject: Include "xf86Modes.h" for xf86ModeBandwidth
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 4af36ca..d9f6ea4 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -52,6 +52,10 @@
- #include "xf86.h"
- #include "xf86_OSproc.h"
-
-+#ifdef HAVE_XF86MODEBANDWIDTH
-+#include "xf86Modes.h"
-+#endif
-+
- #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
- #include "xf86Resources.h"
- #include "xf86RAC.h"
---
-cgit v0.9.0.2-2-gbebe
-From 644ba5d11049e63ea61b5cc4fb889b0f840965ff Mon Sep 17 00:00:00 2001
-From: Christian Toutant <ctoutant@matrox.com>
-Date: Wed, 07 Dec 2011 20:42:39 +0000
-Subject: Add support for Video Memory greater then 8M
-
-Expand memory mapping of framebuffer from 8 to 16MB
-
-Fix segfault on redhat distibution
-
-Signed-off-by: Christian Toutant <ctoutant@matrox.com>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index d9f6ea4..ae36378 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -2707,9 +2707,18 @@ MGAMapMem(ScrnInfoPtr pScrn)
- if (pMga->IOBase == NULL)
- return FALSE;
-
-- pMga->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
-- pMga->PciTag, pMga->FbAddress,
-- pMga->FbMapSize);
-+ if (pMga->is_G200ER)
-+ {
-+ pMga->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
-+ pMga->PciTag, pMga->FbAddress,
-+ pMga->FbMapSize);
-+ }
-+ else
-+ {
-+ pMga->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
-+ pMga->PciTag, pMga->FbAddress,
-+ pMga->FbMapSize);
-+ }
- if (pMga->FbBase == NULL)
- return FALSE;
- #endif
-@@ -3139,11 +3148,19 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- pMga = MGAPTR(pScrn);
- MGAdac = &pMga->Dac;
-
-- if (pMga->is_G200SE) {
-- VRTemp = pScrn->videoRam;
-- FBTemp = pMga->FbMapSize;
-- pScrn->videoRam = 8192;
-- pMga->FbMapSize = pScrn->videoRam * 1024;
-+ if (pMga->is_G200SE)
-+ {
-+ VRTemp = pScrn->videoRam;
-+ FBTemp = pMga->FbMapSize;
-+ if (pMga->reg_1e24 >= 0x01)
-+ {
-+ pScrn->videoRam = 16384;
-+ }
-+ else
-+ {
-+ pScrn->videoRam = 8192;
-+ }
-+ pMga->FbMapSize = pScrn->videoRam * 1024;
- }
-
-
-@@ -3701,10 +3718,26 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- vgaHWPtr hwp = VGAHWPTR(pScrn);
- MGAPtr pMga = MGAPTR(pScrn);
- MGAEntPtr pMgaEnt = NULL;
-+ CARD32 VRTemp, FBTemp;
-
- if (pMga->MergedFB)
- MGACloseScreenMerged(scrnIndex, pScreen);
-
-+ if (pMga->is_G200SE)
-+ {
-+ VRTemp = pScrn->videoRam;
-+ FBTemp = pMga->FbMapSize;
-+ if (pMga->reg_1e24 >= 0x01)
-+ {
-+ pScrn->videoRam = 16384;
-+ }
-+ else
-+ {
-+ pScrn->videoRam = 8192;
-+ }
-+ pMga->FbMapSize = pScrn->videoRam * 1024;
-+ }
-+
- if (pScrn->vtSema) {
- if (pMga->FBDev) {
- fbdevHWRestore(pScrn);
-@@ -3716,6 +3749,13 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- vgaHWUnmapMem(pScrn);
- }
- }
-+
-+ if (pMga->is_G200SE)
-+ {
-+ pScrn->videoRam = VRTemp;
-+ pMga->FbMapSize = FBTemp;
-+ }
-+
- #ifdef XF86DRI
- if (pMga->directRenderingEnabled) {
- MGADRICloseScreen(pScreen);
---
-cgit v0.9.0.2-2-gbebe
-From cc9d2e808de20723c9035952242d966455d583b7 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith@oracle.com>
-Date: Thu, 29 Dec 2011 03:44:40 +0000
-Subject: Check MGAAllocAdaptor() for memory allocation failure
-
-If it couldn't allocate memory, don't attempt to write a bunch of values
-to the NULL pointer before returning it, but just pass the NULL along
-right away.
-
-Resolves parfait warnings of the form:
-
-Error: Null pointer dereference (CWE 476)
- Write to null pointer 'adapt'
- at line 322 of src/mga_video.c in function 'MGASetupImageVideoTexture'.
- Function 'MGAAllocAdaptor' may return constant 'NULL' at line 237, called at line 320.
- Null pointer introduced at line 237 in function 'MGAAllocAdaptor'.
-
-repeated for every line writing to the adapt pointer in each function.
-
-[ This bug was found by the Parfait 0.4.2 bug checking tool.
- For more information see http://labs.oracle.com/projects/parfait/ ]
-
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
----
-diff --git a/src/mga_video.c b/src/mga_video.c
-index 784e7b1..abce31f 100644
---- a/src/mga_video.c
-+++ b/src/mga_video.c
-@@ -269,6 +269,8 @@ MGASetupImageVideoOverlay(ScreenPtr pScreen)
- XF86VideoAdaptorPtr adapt;
-
- adapt = MGAAllocAdaptor(pScrn, TRUE);
-+ if (adapt == NULL)
-+ return NULL;
-
- adapt->type = XvWindowMask | XvInputMask | XvImageMask;
- adapt->flags = VIDEO_OVERLAID_IMAGES | VIDEO_CLIP_TO_VIEWPORT;
-@@ -316,6 +318,8 @@ MGASetupImageVideoTexture(ScreenPtr pScreen)
- MGAPtr pMga = MGAPTR(pScrn);
-
- adapt = MGAAllocAdaptor(pScrn, FALSE);
-+ if (adapt == NULL)
-+ return NULL;
-
- adapt->type = XvWindowMask | XvInputMask | XvImageMask;
- adapt->flags = 0;
-@@ -1298,6 +1302,8 @@ MGASetupImageVideoILOAD(ScreenPtr pScreen)
- MGAPtr pMga = MGAPTR(pScrn);
-
- adapt = MGAAllocAdaptor(pScrn, FALSE);
-+ if (adapt == NULL)
-+ return NULL;
-
- adapt->type = XvWindowMask | XvInputMask | XvImageMask;
- adapt->flags = 0;
---
-cgit v0.9.0.2-2-gbebe
-From 9223c44a731f48c66c226eb88dcb6f9d574cb599 Mon Sep 17 00:00:00 2001
-From: Julien Cristau <jcristau@debian.org>
-Date: Tue, 03 Jan 2012 22:35:18 +0000
-Subject: When we can't load the xaa or exa modules, use shadowfb instead
-
-Signed-off-by: Julien Cristau <jcristau@debian.org>
----
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index ae36378..00469e7 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -2101,6 +2101,31 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- }
- }
-
-+ /* Load XAA if needed */
-+ if (!pMga->NoAccel) {
-+#ifdef USE_EXA
-+ if (pMga->Exa) {
-+ if (!xf86LoadSubModule(pScrn, "exa")) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+ "Falling back to shadowfb\n");
-+ pMga->ShadowFB = TRUE;
-+ pMga->NoAccel = TRUE;
-+ }
-+ } else {
-+#endif
-+#ifdef USE_XAA
-+ if (!xf86LoadSubModule(pScrn, "xaa")) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+ "Falling back to shadowfb\n");
-+ pMga->ShadowFB = TRUE;
-+ pMga->NoAccel = TRUE;
-+ }
-+#endif
-+#ifdef USE_EXA
-+ }
-+#endif
-+ }
-+
- switch (pMga->Chipset) {
- case PCI_CHIP_MGA2064:
- case PCI_CHIP_MGA2164:
-@@ -2596,27 +2621,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- return FALSE;
- }
-
-- /* Load XAA if needed */
-- if (!pMga->NoAccel) {
--#ifdef USE_EXA
-- if (pMga->Exa) {
-- if (!xf86LoadSubModule(pScrn, "exa")) {
-- MGAFreeRec(pScrn);
-- return FALSE;
-- }
-- } else {
--#endif
--#ifdef USE_XAA
-- if (!xf86LoadSubModule(pScrn, "xaa")) {
-- MGAFreeRec(pScrn);
-- return FALSE;
-- }
--#endif
--#ifdef USE_EXA
-- }
--#endif
-- }
--
- /* Load ramdac if needed */
- if (pMga->HWCursor) {
- if (!xf86LoadSubModule(pScrn, "ramdac")) {
---
-cgit v0.9.0.2-2-gbebe
-From 4c4beaf628c9c5dd531605e40696ed31db0e97b8 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Wed, 04 Jan 2012 05:15:07 +0000
-Subject: Untangle XF86DRI from the driver-specific DRI define
-
-XF86DRI is defined by xorg-server.h, so --disable-dri in the driver
-itself does exactly nothing other than not fill in the CFLAGS
-and thus stop the driver from compiling.
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
-diff --git a/configure.ac b/configure.ac
-index 540c390..840ff3c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -100,8 +100,8 @@ AC_MSG_RESULT([$DRI])
- AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
- if test "x$DRI" = xyes; then
- PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
-- AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
-- AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
-+ AC_DEFINE(MGADRI,1,[Enable DRI driver support])
-+ AC_DEFINE(MGADRI_DEVEL,1,[Enable developmental DRI driver support])
- fi
-
- save_CFLAGS="$CFLAGS"
-diff --git a/src/mga.h b/src/mga.h
-index fced6aa..77406f1 100644
---- a/src/mga.h
-+++ b/src/mga.h
-@@ -28,7 +28,11 @@
- #include "xf86DDC.h"
- #include "xf86xv.h"
-
--#ifdef XF86DRI
-+#ifndef XF86DRI
-+#undef MGADRI
-+#endif
-+
-+#ifdef MGADRI
- #include "xf86drm.h"
-
- #define _XF86DRI_SERVER_
-@@ -589,7 +593,7 @@ typedef struct {
- int expandRemaining;
- int expandHeight;
- int expandY;
--#ifdef XF86DRI
-+#ifdef MGADRI
- Bool directRenderingEnabled;
- DRIInfoPtr pDRIInfo;
- int drmFD;
-@@ -743,7 +747,7 @@ void MGAPointerMoved(int index, int x, int y);
- void MGAInitVideo(ScreenPtr pScreen);
- void MGAResetVideo(ScrnInfoPtr pScrn);
-
--#ifdef XF86DRI
-+#ifdef MGADRI
-
- #define MGA_FRONT 0x1
- #define MGA_BACK 0x2
-diff --git a/src/mga_driver.c b/src/mga_driver.c
-index 00469e7..af005f1 100644
---- a/src/mga_driver.c
-+++ b/src/mga_driver.c
-@@ -101,7 +101,7 @@
- #include "shadowfb.h"
- #include "fbdevhw.h"
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- #include "dri.h"
- #endif
-
-@@ -1532,7 +1532,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
-
- pMga = MGAPTR(pScrn);
- /* Set here until dri is enabled */
--#ifdef XF86DRI
-+#ifdef MGADRI
- pMga->haveQuiescense = 1;
- #endif
- /* Get the entity, and make sure it is PCI. */
-@@ -1706,13 +1706,13 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- }
-
- if (pMga->DualHeadEnabled) {
--#ifdef XF86DRI
-+#ifdef MGADRI
- pMga->GetQuiescence = MGAGetQuiescenceShared;
- #endif
- } else { /* single-head mode */
- pMga->SecondCrtc = FALSE;
- pMga->HWCursor = TRUE;
--#ifdef XF86DRI
-+#ifdef MGADRI
- pMga->GetQuiescence = MGAGetQuiescence;
- #endif
- }
-@@ -1942,7 +1942,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- if (pScrn->depth == 8)
- pScrn->rgbBits = 8;
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- from = X_DEFAULT;
- pMga->agpMode = MGA_DEFAULT_AGP_MODE;
-
-@@ -2637,7 +2637,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
- }
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- /* Load the dri module if requested. */
- if (xf86ReturnOptValBool(pMga->Options, OPTION_DRI, FALSE)) {
- xf86LoadSubModule(pScrn, "dri");
-@@ -2878,7 +2878,7 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- vgaReg = &hwp->ModeReg;
- mgaReg = &pMga->ModeReg;
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
- }
-@@ -2989,7 +2989,7 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
- pMga->M1currentMode = (DisplayModePtr)mode->Private;
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled)
- DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
- #endif
-@@ -3138,7 +3138,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- MGAEntPtr pMgaEnt = NULL;
- int f;
- CARD32 VRTemp, FBTemp;
--#ifdef XF86DRI
-+#ifdef MGADRI
- MessageType driFrom = X_DEFAULT;
- #endif
- DPMSSetProcPtr mga_dpms_set_proc = NULL;
-@@ -3317,7 +3317,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- FBStart = pMga->FbStart;
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- /*
- * Setup DRI after visuals have been established.
- *
-@@ -3473,7 +3473,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-
- MGAInitVideo(pScreen);
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled) {
- /* Now that mi, drm and others have done their thing,
- * complete the DRI setup.
-@@ -3625,7 +3625,7 @@ MGAEnterVT(int scrnIndex, int flags)
-
- pMga = MGAPTR(pScrn);
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled) {
- if (pMga->irq) {
- /* Need to make sure interrupts are enabled */
-@@ -3651,7 +3651,7 @@ static Bool
- MGAEnterVTFBDev(int scrnIndex, int flags)
- {
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
--#ifdef XF86DRI
-+#ifdef MGADRI
- ScreenPtr pScreen;
- MGAPtr pMga;
-
-@@ -3690,7 +3690,7 @@ MGALeaveVT(int scrnIndex, int flags)
- {
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
- vgaHWPtr hwp = VGAHWPTR(pScrn);
--#ifdef XF86DRI
-+#ifdef MGADRI
- MGAPtr pMga = MGAPTR(pScrn);
- ScreenPtr pScreen;
- #endif
-@@ -3698,7 +3698,7 @@ MGALeaveVT(int scrnIndex, int flags)
- MGARestore(pScrn);
- vgaHWLock(hwp);
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled) {
- pScreen = screenInfo.screens[scrnIndex];
- DRILock(pScreen, 0);
-@@ -3760,7 +3760,7 @@ MGACloseScreen(int scrnIndex, ScreenPtr pScreen)
- pMga->FbMapSize = FBTemp;
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled) {
- MGADRICloseScreen(pScreen);
- pMga->directRenderingEnabled=FALSE;
-diff --git a/src/mga_exa.c b/src/mga_exa.c
-index e5eaa92..ced6452 100644
---- a/src/mga_exa.c
-+++ b/src/mga_exa.c
-@@ -41,7 +41,7 @@
- #include "mga_macros.h"
-
- #include "exa.h"
--#ifdef XF86DRI
-+#ifdef MGADRI
- #include "mga_dri.h"
- #endif
-
-@@ -763,7 +763,7 @@ mgaWaitMarker(ScreenPtr pScreen, int marker)
- while (INREG (MGAREG_Status) & 0x10000);
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- static void
- init_dri(ScrnInfoPtr pScrn)
- {
-@@ -837,7 +837,7 @@ init_dri(ScrnInfoPtr pScrn)
- MGA_BUFFER_ALIGN) & ~MGA_BUFFER_ALIGN;
- dri->backPitch = widthBytes;
- }
--#endif /* XF86DRI */
-+#endif /* MGADRI */
-
- Bool
- mgaExaInit(ScreenPtr pScreen)
-@@ -898,7 +898,7 @@ mgaExaInit(ScreenPtr pScreen)
- pExa->UploadToScreen = mgaUploadToScreen;
- pExa->DownloadFromScreen = mgaDownloadFromScreen;
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if (pMga->directRenderingEnabled)
- init_dri(pScrn);
- #endif
-diff --git a/src/mga_macros.h b/src/mga_macros.h
-index 130651d..d3b0d0e 100644
---- a/src/mga_macros.h
-+++ b/src/mga_macros.h
-@@ -17,7 +17,7 @@
-
- #define RGBEQUAL(c) (!((((c) >> 8) ^ (c)) & 0xffff))
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- #define MGA_SYNC_XTAG 0x275f4200
-
- #define MGABUSYWAIT() do { \
-@@ -64,7 +64,7 @@ while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
- WAITFIFO(1); \
- OUTREG(MGAREG_CXBNDRY, 0xFFFF0000); }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- #define CHECK_DMA_QUIESCENT(pMGA, pScrn) { \
- if (!pMGA->haveQuiescense) { \
- pMGA->GetQuiescence( pScrn ); \
-diff --git a/src/mga_merge.c b/src/mga_merge.c
-index aec3443..f355f76 100644
---- a/src/mga_merge.c
-+++ b/src/mga_merge.c
-@@ -316,7 +316,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
- pMga->Chipset = pMga1->Chipset;
- pMga->ChipRev = pMga1->ChipRev;
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- pMga->agpMode = pMga1->agpMode;
- #endif
-
-diff --git a/src/mga_storm.c b/src/mga_storm.c
-index f0e6194..7ac3ae0 100644
---- a/src/mga_storm.c
-+++ b/src/mga_storm.c
-@@ -24,7 +24,7 @@
- #include "miline.h"
- #include "servermd.h"
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- #include "GL/glxtokens.h"
- #endif
-
-@@ -32,7 +32,7 @@
- #include "mga_reg.h"
- #include "mga_macros.h"
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- #include "mga_dri.h"
- #endif
-
-@@ -797,7 +797,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
- break;
- }
-
--#ifdef XF86DRI
-+#ifdef MGADRI
- if ( pMga->directRenderingEnabled ) {
- MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
- BoxRec MemBox;
-@@ -899,7 +899,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
- pMGADRIServer->textureOffset );
- }
- else
--#endif /* defined(XF86DRI) */
-+#endif /* defined(MGADRI) */
- {
- AvailFBArea.x1 = 0;
- AvailFBArea.x2 = pScrn->displayWidth;
---
-cgit v0.9.0.2-2-gbebe