COPYING          |   24 ++
 ChangeLog        |   65 +++++++
 debian/changelog |    7 
 man/apm.man      |    4 
 src/apm.h        |    3 
 src/apm_accel.c  |  493 ++++++++++++++++---------------------------------------
 src/apm_dga.c    |   16 -
 src/apm_driver.c |  271 +++++++++---------------------
 src/apm_funcs.c  |   38 ----
 src/apm_video.c  |    9 -
 10 files changed, 338 insertions(+), 592 deletions(-)

New commits:
commit 972e743996c1c2e19e1c636461feea52e1c7262f
Author: Cyril Brulebois <[email protected]>
Date:   Tue May 1 13:54:27 2012 +0200

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index 23fba50..f4b3b02 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-apm (1:1.2.3-3) UNRELEASED; urgency=low
+xserver-xorg-video-apm (1:1.2.3-3) unstable; urgency=low
 
   * Merge from upstream master branch up to 21f5f7acf9 to cope with
     the new vgaHW ABI, fixing the FTBFS against X server 1.12.
 
- -- Cyril Brulebois <[email protected]>  Tue, 01 May 2012 13:52:13 +0200
+ -- Cyril Brulebois <[email protected]>  Tue, 01 May 2012 13:54:23 +0200
 
 xserver-xorg-video-apm (1:1.2.3-2) unstable; urgency=low
 

commit c69aa60e38da848f27fd397e061b8885ac16d00d
Author: Cyril Brulebois <[email protected]>
Date:   Tue May 1 13:53:27 2012 +0200

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 915db7d..a714952 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,58 @@
+commit 21f5f7acf9235428ef2bcd5e34d0a44f9e4d838b
+Author: Adam Jackson <[email protected]>
+Date:   Mon Dec 19 17:44:20 2011 -0500
+
+    Fix for new vgaHW ABI
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit f66da557eb7773856081bda2465973dfabf3eaa0
+Author: Adam Jackson <[email protected]>
+Date:   Mon Dec 19 16:09:34 2011 -0500
+
+    Fall back to shadowfb if XAA fails to load
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit ca19356b3b979b92535f6f22f79c8bab852093a4
+Merge: 413eee0 967f6f2
+Author: Adam Jackson <[email protected]>
+Date:   Mon Dec 19 16:06:05 2011 -0500
+
+    Merge branch 'master' of 
git+ssh://git.freedesktop.org/git/xorg/driver/xf86-video-apm
+
+commit 967f6f20670baa33506c3c1b107260a4f909f3d6
+Author: Adam Jackson <[email protected]>
+Date:   Thu Nov 17 15:50:02 2011 -0500
+
+    Check ABI major not encoded ABI
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit 6b195cc0273650d01fc20c26433b929e9683aa5f
+Author: Adam Jackson <[email protected]>
+Date:   Wed Nov 16 13:02:14 2011 -0500
+
+    Adapt to vgahw changes in videoabi 12
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit 9ce6499f013a5b6fdc9440fd3213dbb28b3bf1be
+Author: Adam Jackson <[email protected]>
+Date:   Wed Nov 16 12:59:00 2011 -0500
+
+    s/IOADDRESS/unsigned long/
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit 6f8a776f792c02779a34c911f803fde8c09b93f6
+Author: Alan Coopersmith <[email protected]>
+Date:   Wed Jul 28 07:42:30 2010 -0700
+
+    Add XFree86 Copyright/License to COPYING for all code that came from XF86 
4.4
+    
+    Signed-off-by: Alan Coopersmith <[email protected]>
+
 commit 876d8aea6c4c442756c03dd6cd64e14e42658d0b
 Author: Alan Coopersmith <[email protected]>
 Date:   Fri Jul 23 15:13:02 2010 -0700
@@ -122,6 +177,16 @@ Date:   Sat Jun 12 10:25:31 2010 -0400
     
     Signed-off-by: Gaetan Nadon <[email protected]>
 
+commit 413eee03287b6e161ce0337df712099b585aa722
+Author: Adam Jackson <[email protected]>
+Date:   Fri Jun 4 17:10:07 2010 -0400
+
+    Remove non-linear framebuffer mapping
+    
+    It hasn't worked since the pciaccess conversion anyway.
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
 commit aa26b72a5f76012e8246de1e885f707f29e5fc4c
 Author: Adam Jackson <[email protected]>
 Date:   Tue May 18 12:59:36 2010 -0400
diff --git a/debian/changelog b/debian/changelog
index 7be1353..23fba50 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-apm (1:1.2.3-3) UNRELEASED; urgency=low
+
+  * Merge from upstream master branch up to 21f5f7acf9 to cope with
+    the new vgaHW ABI, fixing the FTBFS against X server 1.12.
+
+ -- Cyril Brulebois <[email protected]>  Tue, 01 May 2012 13:52:13 +0200
+
 xserver-xorg-video-apm (1:1.2.3-2) unstable; urgency=low
 
   * Switch to dh:

commit 21f5f7acf9235428ef2bcd5e34d0a44f9e4d838b
Author: Adam Jackson <[email protected]>
Date:   Mon Dec 19 17:44:20 2011 -0500

    Fix for new vgaHW ABI
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/src/apm_driver.c b/src/apm_driver.c
index 2471478..078d443 100644
--- a/src/apm_driver.c
+++ b/src/apm_driver.c
@@ -417,6 +417,7 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
        return FALSE;
 
     hwp = VGAHWPTR(pScrn);
+    vgaHWSetStdFuncs(hwp);
     vgaHWGetIOBase(hwp);
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
 #define PIOOFFSET hwp->PIOOffset

commit f66da557eb7773856081bda2465973dfabf3eaa0
Author: Adam Jackson <[email protected]>
Date:   Mon Dec 19 16:09:34 2011 -0500

    Fall back to shadowfb if XAA fails to load
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/src/apm_driver.c b/src/apm_driver.c
index 4e548a4..2471478 100644
--- a/src/apm_driver.c
+++ b/src/apm_driver.c
@@ -992,8 +992,9 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
     /* Load XAA if needed */
     if (!pApm->NoAccel) {
        if (!xf86LoadSubModule(pScrn, "xaa")) {
-           ApmFreeRec(pScrn);
-           return FALSE;
+           xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Falling back to shadowfb\n");
+           pApm->NoAccel = TRUE;
+           pApm->ShadowFB = TRUE;
        }
     }
 

commit 967f6f20670baa33506c3c1b107260a4f909f3d6
Author: Adam Jackson <[email protected]>
Date:   Thu Nov 17 15:50:02 2011 -0500

    Check ABI major not encoded ABI
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/src/apm_driver.c b/src/apm_driver.c
index f77bb2b..8d6f486 100644
--- a/src/apm_driver.c
+++ b/src/apm_driver.c
@@ -418,7 +418,7 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
 
     hwp = VGAHWPTR(pScrn);
     vgaHWGetIOBase(hwp);
-#if ABI_VIDEODRV_VERSION < 12
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
 #define PIOOFFSET hwp->PIOOffset
 #else
 /* FIXME reintroduce domain support */

commit 6b195cc0273650d01fc20c26433b929e9683aa5f
Author: Adam Jackson <[email protected]>
Date:   Wed Nov 16 13:02:14 2011 -0500

    Adapt to vgahw changes in videoabi 12
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/src/apm_driver.c b/src/apm_driver.c
index f172bab..f77bb2b 100644
--- a/src/apm_driver.c
+++ b/src/apm_driver.c
@@ -418,8 +418,14 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
 
     hwp = VGAHWPTR(pScrn);
     vgaHWGetIOBase(hwp);
-    pApm->iobase = hwp->PIOOffset;
-    pApm->xport = hwp->PIOOffset + 0x3C4;
+#if ABI_VIDEODRV_VERSION < 12
+#define PIOOFFSET hwp->PIOOffset
+#else
+/* FIXME reintroduce domain support */
+#define PIOOFFSET 0
+#endif
+    pApm->iobase = PIOOFFSET;
+    pApm->xport = PIOOFFSET + 0x3C4;
 
     /* Set pScrn->monitor */
     pScrn->monitor = pScrn->confScreen->monitor;

commit 9ce6499f013a5b6fdc9440fd3213dbb28b3bf1be
Author: Adam Jackson <[email protected]>
Date:   Wed Nov 16 12:59:00 2011 -0500

    s/IOADDRESS/unsigned long/
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/src/apm.h b/src/apm.h
index bc66714..86c7663 100644
--- a/src/apm.h
+++ b/src/apm.h
@@ -109,7 +109,7 @@ typedef struct {
     char               *MemMap;
     pointer            BltMap;
     Bool               UnlockCalled;
-    IOADDRESS          iobase, xport, xbase;
+    unsigned long      iobase, xport, xbase;
     unsigned char      savedSR10;
     CARD8              MiscOut;
     CARD8              c9, d9, db, Rush;

commit 6f8a776f792c02779a34c911f803fde8c09b93f6
Author: Alan Coopersmith <[email protected]>
Date:   Wed Jul 28 07:42:30 2010 -0700

    Add XFree86 Copyright/License to COPYING for all code that came from XF86 
4.4
    
    Signed-off-by: Alan Coopersmith <[email protected]>

diff --git a/COPYING b/COPYING
index 340a7ec..65af997 100644
--- a/COPYING
+++ b/COPYING
@@ -1,3 +1,27 @@
+Copyright (C) 1994-2003 The XFree86 Project, Inc. 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"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 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.
+
+Except as contained in this notice, the name of the XFree86 Project shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from the
+XFree86 Project.
+
 Copyright 2007 George Sapountzis
 
 Permission is hereby granted, free of charge, to any person obtaining a

commit 413eee03287b6e161ce0337df712099b585aa722
Author: Adam Jackson <[email protected]>
Date:   Fri Jun 4 17:10:07 2010 -0400

    Remove non-linear framebuffer mapping
    
    It hasn't worked since the pciaccess conversion anyway.
    
    Signed-off-by: Adam Jackson <[email protected]>

diff --git a/man/apm.man b/man/apm.man
index 62535fc..15e501d 100644
--- a/man/apm.man
+++ b/man/apm.man
@@ -67,10 +67,6 @@ Enable or disable the hardware cursor.  Default: on.
 .BI "Option \*qNoAccel\*q \*q" boolean \*q
 Disable or enable acceleration.  Default: acceleration is enabled.
 .TP
-.BI "Option \*qNoLinear\*q \*q" boolean \*q
-Disable or enable use of linear frame buffer. Default: on.
-Note: it may or may not work. Tell me if you need it.
-.TP
 .BI "Option \*qPciRetry\*q \*q" boolean \*q
 Enable or disable PCI retries.  Default: off.
 .TP
diff --git a/src/apm.h b/src/apm.h
index bc66714..c51c258 100644
--- a/src/apm.h
+++ b/src/apm.h
@@ -116,7 +116,6 @@ typedef struct {
     unsigned int       saveCmd;
     pointer            FontInfo;
     Bool               hwCursor;
-    Bool               noLinear;
     ApmRegStr          ModeReg, SavedReg;
     CloseScreenProcPtr CloseScreen;
     Bool               UsePCIRetry;  /* Do we use PCI-retry or busy-waiting */
diff --git a/src/apm_accel.c b/src/apm_accel.c
index 4526097..ed73d8d 100644
--- a/src/apm_accel.c
+++ b/src/apm_accel.c
@@ -32,14 +32,7 @@ static unsigned char apmROP[] = {
 
 #include "apm_funcs.c"
 
-#define IOP_ACCESS
-#include "apm_funcs.c"
-
-#define PSZ    24
-#include "apm_funcs.c"
-
 #define PSZ    24
-#define IOP_ACCESS
 #include "apm_funcs.c"
 
 static void
@@ -279,21 +272,11 @@ ApmAccelInit(ScreenPtr pScreen)
        i = 4;
     else
        i = 8;
-    if (pApm->noLinear) {
-       stat = RDXL_IOP(0x1FC);
-       while ((stat & (STATUS_HOSTBLTBUSY | STATUS_ENGINEBUSY)) ||
-               ((stat & STATUS_FIFO) < i)) {
-           WRXB_IOP(0x1FC, 0);
-           stat = RDXL_IOP(0x1FC);
-       }
-    }
-    else {
+    stat = RDXL_M(0x1FC);
+    while ((stat & (STATUS_HOSTBLTBUSY | STATUS_ENGINEBUSY)) ||
+           ((stat & STATUS_FIFO) < i)) {
+       WRXB_M(0x1FC, 0);
        stat = RDXL_M(0x1FC);
-       while ((stat & (STATUS_HOSTBLTBUSY | STATUS_ENGINEBUSY)) ||
-               ((stat & STATUS_FIFO) < i)) {
-           WRXB_M(0x1FC, 0);
-           stat = RDXL_M(0x1FC);
-       }
     }
 
     /* Setup current register values */
@@ -316,26 +299,14 @@ ApmAccelInit(ScreenPtr pScreen)
 
     ApmSetupXAAInfo(pApm, pXAAinfo);
 
-    if (!pApm->noLinear) {
-       pApm->SetupForSolidFill                 = ApmSetupForSolidFill;
-       pApm->SubsequentSolidFillRect           = ApmSubsequentSolidFillRect;
-       pApm->SetupForSolidFill24               = ApmSetupForSolidFill24;
-       pApm->SubsequentSolidFillRect24         = ApmSubsequentSolidFillRect24;
-       pApm->SetupForScreenToScreenCopy        = ApmSetupForScreenToScreenCopy;
-       pApm->SubsequentScreenToScreenCopy      = 
ApmSubsequentScreenToScreenCopy;
-       pApm->SetupForScreenToScreenCopy24      = 
ApmSetupForScreenToScreenCopy24;
-       pApm->SubsequentScreenToScreenCopy24    = 
ApmSubsequentScreenToScreenCopy24;
-    }
-    else {
-       pApm->SetupForSolidFill                 = ApmSetupForSolidFill_IOP;
-       pApm->SubsequentSolidFillRect           = 
ApmSubsequentSolidFillRect_IOP;
-       pApm->SetupForSolidFill24               = ApmSetupForSolidFill24_IOP;
-       pApm->SubsequentSolidFillRect24         = 
ApmSubsequentSolidFillRect24_IOP;
-       pApm->SetupForScreenToScreenCopy        = 
ApmSetupForScreenToScreenCopy_IOP;
-       pApm->SubsequentScreenToScreenCopy      = 
ApmSubsequentScreenToScreenCopy_IOP;
-       pApm->SetupForScreenToScreenCopy24      = 
ApmSetupForScreenToScreenCopy24_IOP;
-       pApm->SubsequentScreenToScreenCopy24    = 
ApmSubsequentScreenToScreenCopy24_IOP;
-    }
+    pApm->SetupForSolidFill            = ApmSetupForSolidFill;
+    pApm->SubsequentSolidFillRect      = ApmSubsequentSolidFillRect;
+    pApm->SetupForSolidFill24          = ApmSetupForSolidFill24;
+    pApm->SubsequentSolidFillRect24    = ApmSubsequentSolidFillRect24;
+    pApm->SetupForScreenToScreenCopy   = ApmSetupForScreenToScreenCopy;
+    pApm->SubsequentScreenToScreenCopy = ApmSubsequentScreenToScreenCopy;
+    pApm->SetupForScreenToScreenCopy24 = ApmSetupForScreenToScreenCopy24;
+    pApm->SubsequentScreenToScreenCopy24= ApmSubsequentScreenToScreenCopy24;
 
     /*
      * Init Rush extension.
@@ -427,334 +398,168 @@ void ApmSetupXAAInfo(ApmPtr pApm, XAAInfoRecPtr 
pXAAinfo)
     pXAAinfo->CacheMonoStipple = ApmCacheMonoStipple;
 
     if (pApm->CurrentLayout.bitsPerPixel != 24) {
-       if (!pApm->noLinear) {
 #define        XAA(s)          pXAAinfo->s = Apm##s
-           if (pApm->Chipset < AT24)
-               pXAAinfo->Sync = ApmSync6422;
-           else
-               XAA(Sync);
-
-           /* Accelerated filled rectangles */
-           pXAAinfo->SolidFillFlags = NO_PLANEMASK;
-           XAA(SetupForSolidFill);
-           XAA(SubsequentSolidFillRect);
-
-           /* Accelerated screen to screen color expansion */
-           pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenColorExpandFill);
-           XAA(SubsequentScreenToScreenColorExpandFill);
-
-#if 0
-           The constraints of the transfer range are incompatible with the
-           XAA architecture. I rewrote the XAA functions using ImageWrite
-           /* Accelerated CPU to screen color expansion */
-           if ((pApm->Chipset == AT24 && pApm->ChipRev >= 4) ||
-                   pApm->Chipset == AT3D) {
-               pXAAinfo->CPUToScreenColorExpandFillFlags =
-                 NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
-                 | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
-                 LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
-               XAA(SetupForCPUToScreenColorExpandFill);
-               XAA(SubsequentCPUToScreenColorExpandFill);
-               pXAAinfo->ColorExpandBase       = pApm->BltMap;
-               pXAAinfo->ColorExpandRange      = (pApm->Chipset >= AT3D) ? 
32*1024 : 30*1024;
-           }
-
-           /* Accelerated image transfers */
-           pXAAinfo->ImageWriteFlags   =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X |
-                           SYNC_AFTER_IMAGE_WRITE;
-           pXAAinfo->ImageWriteBase    = pApm->BltMap;
-           pXAAinfo->ImageWriteRange   = (pApm->Chipset >= AT3D) ? 32*1024 : 
30*1024;
-           XAA(SetupForImageWrite);
-           XAA(SubsequentImageWriteRect);
-#endif
-           pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(WritePixmap);
-           pXAAinfo->FillImageWriteRectsFlags  =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(FillImageWriteRects);
-           pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X |
-                           BIT_ORDER_IN_BYTE_LSBFIRST;
-           XAA(WriteBitmap);
-           pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(TEGlyphRenderer);
-
-           /* Accelerated screen-screen bitblts */
-           pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenCopy);
-           XAA(SubsequentScreenToScreenCopy);
-
-           /* Accelerated Line drawing */
-           pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
-           XAA(SetClippingRectangle);
-           pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
-
-           if (pApm->Chipset >= AT24) {
-               XAA(SubsequentSolidBresenhamLine);
-
-               /* Pattern fill */
-               pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK |
-                               HARDWARE_PATTERN_PROGRAMMED_BITS |
-                               HARDWARE_PATTERN_SCREEN_ORIGIN;
-               XAA(SetupForMono8x8PatternFill);
-               XAA(SubsequentMono8x8PatternFillRect);
-               if (pApm->CurrentLayout.bitsPerPixel == 8) {
-                   pXAAinfo->Color8x8PatternFillFlags = NO_PLANEMASK |
-                                   HARDWARE_PATTERN_SCREEN_ORIGIN;
-                   XAA(SetupForColor8x8PatternFill);
-                   XAA(SubsequentColor8x8PatternFillRect);
-               }
-           }
-           else
-               pXAAinfo->SubsequentSolidBresenhamLine =
-                   ApmSubsequentSolidBresenhamLine6422;
-#undef XAA
-       }
-       else {
-#define        XAA(s)          pXAAinfo->s = Apm##s##_IOP
-           if (pApm->Chipset < AT24)
-               pXAAinfo->Sync = ApmSync6422_IOP;
-           else
-               XAA(Sync);
-
-           /* Accelerated filled rectangles */
-           pXAAinfo->SolidFillFlags = NO_PLANEMASK;
-           XAA(SetupForSolidFill);
-           XAA(SubsequentSolidFillRect);
-
-           /* Accelerated screen to screen color expansion */
-           pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenColorExpandFill);
-           XAA(SubsequentScreenToScreenColorExpandFill);
-
-#if 0
-           The constraints of the transfer range are incompatible with the
-           XAA architecture. I rewrote the XAA functions using ImageWrite
-           /* Accelerated CPU to screen color expansion */
-           if ((pApm->Chipset == AT24 && pApm->ChipRev >= 4) ||
-                   pApm->Chipset == AT3D) {
-               pXAAinfo->CPUToScreenColorExpandFillFlags =
-                 NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
-                 | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
-                 LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
-               XAA(SetupForCPUToScreenColorExpandFill);
-               XAA(SubsequentCPUToScreenColorExpandFill);
-               pXAAinfo->ColorExpandBase       = pApm->BltMap;
-               pXAAinfo->ColorExpandRange      = (pApm->Chipset >= AT3D) ? 
32*1024 : 30*1024;
-           }
-
-           /* Accelerated image transfers */
-           pXAAinfo->ImageWriteFlags   =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD;
-           pXAAinfo->ImageWriteBase    = pApm->BltMap;
-           pXAAinfo->ImageWriteRange   = (pApm->Chipset >= AT3D) ? 32*1024 : 
30*1024;
-           XAA(SetupForImageWrite);
-           XAA(SubsequentImageWriteRect);
-#endif
-           pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(WritePixmap);
-           pXAAinfo->FillImageWriteRectsFlags  =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(FillImageWriteRects);
-           pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X |
-                           BIT_ORDER_IN_BYTE_LSBFIRST;
-           XAA(WriteBitmap);
-           pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(TEGlyphRenderer);
-
-           /* Accelerated screen-screen bitblts */
-           pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenCopy);
-           XAA(SubsequentScreenToScreenCopy);
-
-           /* Accelerated Line drawing */
-           pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
-           XAA(SetClippingRectangle);
-           pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
-
-           if (pApm->Chipset >= AT24) {
-               XAA(SubsequentSolidBresenhamLine);
-
-               /* Pattern fill */
-               pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK |
-                               HARDWARE_PATTERN_PROGRAMMED_BITS |
-                               HARDWARE_PATTERN_SCREEN_ORIGIN;
-               XAA(SetupForMono8x8PatternFill);
-               XAA(SubsequentMono8x8PatternFillRect);
-               if (pApm->CurrentLayout.bitsPerPixel == 8) {
-                   pXAAinfo->Color8x8PatternFillFlags = NO_PLANEMASK |
-                                   HARDWARE_PATTERN_SCREEN_ORIGIN;
-                   XAA(SetupForColor8x8PatternFill);
-                   XAA(SubsequentColor8x8PatternFillRect);
-               }
-           }
-           else
-               pXAAinfo->SubsequentSolidBresenhamLine =
-                   ApmSubsequentSolidBresenhamLine6422_IOP;
-#undef XAA
-       }
-    }
-    else {
-       if (!pApm->noLinear) {
-#define        XAA(s)          pXAAinfo->s = Apm##s##24
+       if (pApm->Chipset < AT24)
+           pXAAinfo->Sync = ApmSync6422;
+       else
            XAA(Sync);
 
-           /* Accelerated filled rectangles */
-           pXAAinfo->SolidFillFlags = NO_PLANEMASK;
-           XAA(SetupForSolidFill);
-           XAA(SubsequentSolidFillRect);
+       /* Accelerated filled rectangles */
+       pXAAinfo->SolidFillFlags = NO_PLANEMASK;
+       XAA(SetupForSolidFill);
+       XAA(SubsequentSolidFillRect);
 
-#if 0
-           /* Accelerated screen to screen color expansion */
-           pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenColorExpandFill);
-           XAA(SubsequentScreenToScreenColorExpandFill);
+       /* Accelerated screen to screen color expansion */
+       pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
+       XAA(SetupForScreenToScreenColorExpandFill);
+       XAA(SubsequentScreenToScreenColorExpandFill);
 
 #if 0
-           The constraints of the transfer range are incompatible with the
-           XAA architecture. I rewrote the XAA functions using ImageWrite
-           /* Accelerated CPU to screen color expansion */
-           if (pApm->Chipset == AT3D && pApm->ChipRev >= 4) {
-               pXAAinfo->CPUToScreenColorExpandFillFlags =
-                 NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
-                 | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
-                 LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
-               XAA(SetupForCPUToScreenColorExpandFill);
-               XAA(SubsequentCPUToScreenColorExpandFill);
-               pXAAinfo->ColorExpandBase       = pApm->BltMap;
-               pXAAinfo->ColorExpandRange      = 32*1024;
-           }
+       The constraints of the transfer range are incompatible with the
+       XAA architecture. I rewrote the XAA functions using ImageWrite
+       /* Accelerated CPU to screen color expansion */
+       if ((pApm->Chipset == AT24 && pApm->ChipRev >= 4) ||
+               pApm->Chipset == AT3D) {
+           pXAAinfo->CPUToScreenColorExpandFillFlags =
+             NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
+             | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
+             LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
+           XAA(SetupForCPUToScreenColorExpandFill);
+           XAA(SubsequentCPUToScreenColorExpandFill);
+           pXAAinfo->ColorExpandBase   = pApm->BltMap;
+           pXAAinfo->ColorExpandRange  = (pApm->Chipset >= AT3D) ? 32*1024 : 
30*1024;
+       }
 
-           /* Accelerated image transfers */
-           pXAAinfo->ImageWriteFlags   =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD |
-                           SYNC_AFTER_IMAGE_WRITE;
-           pXAAinfo->ImageWriteBase    = pApm->BltMap;
-           pXAAinfo->ImageWriteRange   = 32*1024;
-           XAA(SetupForImageWrite);
-           XAA(SubsequentImageWriteRect);
+       /* Accelerated image transfers */
+       pXAAinfo->ImageWriteFlags       =
+                       LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X |
+                       SYNC_AFTER_IMAGE_WRITE;
+       pXAAinfo->ImageWriteBase        = pApm->BltMap;
+       pXAAinfo->ImageWriteRange       = (pApm->Chipset >= AT3D) ? 32*1024 : 
30*1024;
+       XAA(SetupForImageWrite);
+       XAA(SubsequentImageWriteRect);
 #endif
-           pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(WritePixmap);
-           pXAAinfo->FillImageWriteRectsFlags  =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(FillImageWriteRects);
-           pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X |
-                           BIT_ORDER_IN_BYTE_LSBFIRST;
-           XAA(WriteBitmap);
-           pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(TEGlyphRenderer);
-
-           /* Accelerated Line drawing */
-           pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
+       pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(WritePixmap);
+       pXAAinfo->FillImageWriteRectsFlags      =
+                       LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(FillImageWriteRects);
+       pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X |
+                       BIT_ORDER_IN_BYTE_LSBFIRST;
+       XAA(WriteBitmap);
+       pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(TEGlyphRenderer);
+
+       /* Accelerated screen-screen bitblts */
+       pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK;
+       XAA(SetupForScreenToScreenCopy);
+       XAA(SubsequentScreenToScreenCopy);
+
+       /* Accelerated Line drawing */
+       pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
+       XAA(SetClippingRectangle);
+       pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
+
+       if (pApm->Chipset >= AT24) {
            XAA(SubsequentSolidBresenhamLine);
-           XAA(SetClippingRectangle);
-           pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
 
            /* Pattern fill */
-           pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK | NO_TRANSPARENCY |
+           pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK |
                            HARDWARE_PATTERN_PROGRAMMED_BITS |
                            HARDWARE_PATTERN_SCREEN_ORIGIN;
            XAA(SetupForMono8x8PatternFill);
            XAA(SubsequentMono8x8PatternFillRect);
-#endif
-
-           /* Accelerated screen-screen bitblts */
-           pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK | NO_TRANSPARENCY;
-           XAA(SetupForScreenToScreenCopy);
-           XAA(SubsequentScreenToScreenCopy);
-#undef XAA
+           if (pApm->CurrentLayout.bitsPerPixel == 8) {
+               pXAAinfo->Color8x8PatternFillFlags = NO_PLANEMASK |
+                               HARDWARE_PATTERN_SCREEN_ORIGIN;
+               XAA(SetupForColor8x8PatternFill);
+               XAA(SubsequentColor8x8PatternFillRect);
+           }
        }
-       else {
-#define        XAA(s)          pXAAinfo->s = Apm##s##24##_IOP
-           XAA(Sync);
+       else
+           pXAAinfo->SubsequentSolidBresenhamLine =
+               ApmSubsequentSolidBresenhamLine6422;
+#undef XAA
+    }
+    else {
+#define        XAA(s)          pXAAinfo->s = Apm##s##24
+       XAA(Sync);
 
-           /* Accelerated filled rectangles */
-           pXAAinfo->SolidFillFlags = NO_PLANEMASK;
-           XAA(SetupForSolidFill);
-           XAA(SubsequentSolidFillRect);
+       /* Accelerated filled rectangles */
+       pXAAinfo->SolidFillFlags = NO_PLANEMASK;
+       XAA(SetupForSolidFill);
+       XAA(SubsequentSolidFillRect);
 
 #if 0
-           /* Accelerated screen to screen color expansion */
-           pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
-           XAA(SetupForScreenToScreenColorExpandFill);
-           XAA(SubsequentScreenToScreenColorExpandFill);
+       /* Accelerated screen to screen color expansion */
+       pXAAinfo->ScreenToScreenColorExpandFillFlags = NO_PLANEMASK;
+       XAA(SetupForScreenToScreenColorExpandFill);
+       XAA(SubsequentScreenToScreenColorExpandFill);
 
 #if 0
-           The constraints of the transfer range are incompatible with the
-           XAA architecture. I rewrote the XAA functions using ImageWrite
-           /* Accelerated CPU to screen color expansion */
-           if (pApm->Chipset == AT3D && pApm->ChipRev >= 4) {
-               pXAAinfo->CPUToScreenColorExpandFillFlags =
-                 NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
-                 | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
-                 LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
-               XAA(SetupForCPUToScreenColorExpandFill);
-               XAA(SubsequentCPUToScreenColorExpandFill);
-               pXAAinfo->ColorExpandBase       = pApm->BltMap;
-               pXAAinfo->ColorExpandRange      = 32*1024;
-           }
+       The constraints of the transfer range are incompatible with the
+       XAA architecture. I rewrote the XAA functions using ImageWrite
+       /* Accelerated CPU to screen color expansion */
+       if (pApm->Chipset == AT3D && pApm->ChipRev >= 4) {
+           pXAAinfo->CPUToScreenColorExpandFillFlags =
+             NO_PLANEMASK | SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD
+             | BIT_ORDER_IN_BYTE_MSBFIRST | LEFT_EDGE_CLIPPING |
+             LEFT_EDGE_CLIPPING_NEGATIVE_X | SYNC_AFTER_COLOR_EXPAND;
+           XAA(SetupForCPUToScreenColorExpandFill);
+           XAA(SubsequentCPUToScreenColorExpandFill);
+           pXAAinfo->ColorExpandBase   = pApm->BltMap;
+           pXAAinfo->ColorExpandRange  = 32*1024;
+       }
 
-           /* Accelerated image transfers */
-           pXAAinfo->ImageWriteFlags   =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD;
-           pXAAinfo->ImageWriteBase    = pApm->BltMap;
-           pXAAinfo->ImageWriteRange   = 32*1024;
-           XAA(SetupForImageWrite);
-           XAA(SubsequentImageWriteRect);
+       /* Accelerated image transfers */
+       pXAAinfo->ImageWriteFlags       =
+                       LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       SCANLINE_PAD_DWORD | CPU_TRANSFER_PAD_QWORD |
+                       SYNC_AFTER_IMAGE_WRITE;
+       pXAAinfo->ImageWriteBase        = pApm->BltMap;
+       pXAAinfo->ImageWriteRange       = 32*1024;
+       XAA(SetupForImageWrite);
+       XAA(SubsequentImageWriteRect);
 #endif
-           pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(WritePixmap);
-           pXAAinfo->FillImageWriteRectsFlags  =
-                           LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(FillImageWriteRects);
-           pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X |
-                           BIT_ORDER_IN_BYTE_LSBFIRST;
-           XAA(WriteBitmap);
-           pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
-                           LEFT_EDGE_CLIPPING_NEGATIVE_X;
-           XAA(TEGlyphRenderer);
-
-           /* Accelerated Line drawing */
-           pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
-           XAA(SubsequentSolidBresenhamLine);
-           XAA(SetClippingRectangle);
-           pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
-
-           /* Pattern fill */
-           pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK | NO_TRANSPARENCY |
-                           HARDWARE_PATTERN_PROGRAMMED_BITS |
-                           HARDWARE_PATTERN_SCREEN_ORIGIN;
-           XAA(SetupForMono8x8PatternFill);
-           XAA(SubsequentMono8x8PatternFillRect);
+       pXAAinfo->WritePixmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(WritePixmap);
+       pXAAinfo->FillImageWriteRectsFlags      =
+                       LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(FillImageWriteRects);
+       pXAAinfo->WriteBitmapFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X |
+                       BIT_ORDER_IN_BYTE_LSBFIRST;
+       XAA(WriteBitmap);
+       pXAAinfo->TEGlyphRendererFlags = LEFT_EDGE_CLIPPING | NO_PLANEMASK |
+                       LEFT_EDGE_CLIPPING_NEGATIVE_X;
+       XAA(TEGlyphRenderer);
+
+       /* Accelerated Line drawing */
+       pXAAinfo->SolidLineFlags = NO_PLANEMASK | HARDWARE_CLIP_LINE;
+       XAA(SubsequentSolidBresenhamLine);
+       XAA(SetClippingRectangle);
+       pXAAinfo->SolidBresenhamLineErrorTermBits = 15;
+
+       /* Pattern fill */
+       pXAAinfo->Mono8x8PatternFillFlags = NO_PLANEMASK | NO_TRANSPARENCY |
+                       HARDWARE_PATTERN_PROGRAMMED_BITS |
+                       HARDWARE_PATTERN_SCREEN_ORIGIN;
+       XAA(SetupForMono8x8PatternFill);
+       XAA(SubsequentMono8x8PatternFillRect);
 #endif
 
-           /* Accelerated screen-screen bitblts */
-           pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK | NO_TRANSPARENCY;
-           XAA(SetupForScreenToScreenCopy);
-           XAA(SubsequentScreenToScreenCopy);
+       /* Accelerated screen-screen bitblts */
+       pXAAinfo->ScreenToScreenCopyFlags = NO_PLANEMASK | NO_TRANSPARENCY;
+       XAA(SetupForScreenToScreenCopy);
+       XAA(SubsequentScreenToScreenCopy);
 #undef XAA
-       }
     }
 }
diff --git a/src/apm_dga.c b/src/apm_dga.c
index 313d03b..30079e2 100644
--- a/src/apm_dga.c
+++ b/src/apm_dga.c
@@ -316,18 +316,10 @@ ApmSetViewport(
         * This is just an attempt, because Daryll is tampering with MY
         * registers.
         */
-       if (!pApm->noLinear) {
-           tmp = (RDXB(0xDB) & 0xF4) |  0x0A;
-           WRXB(0xDB, tmp);
-           ApmWriteSeq(0x1B, 0x20);
-           ApmWriteSeq(0x1C, 0x2F);
-       }
-       else {
-           tmp = (RDXB_IOP(0xDB) & 0xF4) |  0x0A;
-           WRXB_IOP(0xDB, tmp);
-           wrinx(pApm->xport, 0x1B, 0x20);
-           wrinx(pApm->xport, 0x1C, 0x2F);
-       }
+       tmp = (RDXB(0xDB) & 0xF4) |  0x0A;
+       WRXB(0xDB, tmp);
+       ApmWriteSeq(0x1B, 0x20);
+       ApmWriteSeq(0x1C, 0x2F);
        pApm->apmLock = FALSE;
     }
     pScrn->AdjustFrame(pScrn->pScreen->myNum, x, y, flags);
diff --git a/src/apm_driver.c b/src/apm_driver.c
index f172bab..8ee708f 100644
--- a/src/apm_driver.c
+++ b/src/apm_driver.c
@@ -200,7 +200,7 @@ ApmFreeRec(ScrnInfoPtr pScrn)
 static void
 ApmUnlock(ApmPtr pApm)
 {
-    if (pApm->Chipset >= AT3D && !pApm->noLinear)
+    if (pApm->Chipset >= AT3D)
        ApmWriteSeq(0x10, 0x12);
     else
        wrinx(pApm->xport, 0x10, 0x12);
@@ -210,7 +210,7 @@ ApmUnlock(ApmPtr pApm)
 static void
 ApmLock(ApmPtr pApm)
 {
-    if (pApm->Chipset >= AT3D && !pApm->noLinear)
+    if (pApm->Chipset >= AT3D)
        ApmWriteSeq(0x10, pApm->savedSR10 ? 0 : 0x12);
     else
        wrinx(pApm->xport, 0x10, pApm->savedSR10 ? 0 : 0x12);
@@ -494,21 +494,11 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
        /* Default to 8 */
        pScrn->rgbBits = 8;
     }
-#ifndef XSERVER_LIBPCIACCESS
-    /* you're getting a linear framebuffer with pciaccess */
-    if (xf86ReturnOptValBool(pApm->Options, OPTION_NOLINEAR, FALSE)) {
-       pApm->noLinear = TRUE;
-       xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "No linear framebuffer\n");
-    }
-#else
-    pApm->noLinear = FALSE;
-#endif
     from = X_DEFAULT;
     pApm->hwCursor = FALSE;
     if (xf86GetOptValBool(pApm->Options, OPTION_HW_CURSOR, &pApm->hwCursor))
        from = X_CONFIG;
-    if (pApm->noLinear ||
-       xf86ReturnOptValBool(pApm->Options, OPTION_SW_CURSOR, FALSE)) {
+    if (xf86ReturnOptValBool(pApm->Options, OPTION_SW_CURSOR, FALSE)) {
        from = X_CONFIG;
        pApm->hwCursor = FALSE;
     }
@@ -683,23 +673,11 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
        }
     }
 
-    if (pApm->noLinear) {
-       /*
-        * TODO not AT3D.
-        * XXX ICI XXX
-        */
-       pApm->LinMapSize      =  4 * 1024 * 1024 /* 0x10000 */;
-       pApm->FbMapSize       =  4 * 1024 * 1024 /* 0x10000 */;
-       if (pApm->Chipset >= AT3D)
-           pApm->LinAddress +=  8 * 1024 * 1024 /* 0xA0000 */;
-    }
-    else {
-       if (pApm->Chipset >= AT3D)
-           pApm->LinMapSize  = 16 * 1024 * 1024;
-       else
-           pApm->LinMapSize  =  6 * 1024 * 1024;
-       pApm->FbMapSize   =  4 * 1024 * 1024;
-    }
+    if (pApm->Chipset >= AT3D)
+       pApm->LinMapSize  = 16 * 1024 * 1024;
+    else
+       pApm->LinMapSize  =  6 * 1024 * 1024;
+    pApm->FbMapSize   =  4 * 1024 * 1024;
 
     if (xf86LoadSubModule(pScrn, "int10")) {
        void    *ptr;
@@ -722,7 +700,7 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
     if (pEnt->device->videoRam != 0) {
        pScrn->videoRam = pEnt->device->videoRam;
        from = X_CONFIG;
-    } else if (!pApm->noLinear && pApm->Chipset >= AT3D) {
+    } else if (pApm->Chipset >= AT3D) {
        unsigned char           d9, db, uc;
        /*unsigned long         save;*/
        volatile unsigned char  *LinMap;
@@ -1077,55 +1055,42 @@ ApmMapMem(ScrnInfoPtr pScrn)
     if (pApm->LinMap == NULL)


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to