[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-apm: Changes to 'debian-unstable'



 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 <kibi@debian.org>
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 <kibi@debian.org>  Tue, 01 May 2012 13:52:13 +0200
+ -- Cyril Brulebois <kibi@debian.org>  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 <kibi@debian.org>
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 <ajax@redhat.com>
+Date:   Mon Dec 19 17:44:20 2011 -0500
+
+    Fix for new vgaHW ABI
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit f66da557eb7773856081bda2465973dfabf3eaa0
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Dec 19 16:09:34 2011 -0500
+
+    Fall back to shadowfb if XAA fails to load
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit ca19356b3b979b92535f6f22f79c8bab852093a4
+Merge: 413eee0 967f6f2
+Author: Adam Jackson <ajax@redhat.com>
+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 <ajax@redhat.com>
+Date:   Thu Nov 17 15:50:02 2011 -0500
+
+    Check ABI major not encoded ABI
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 6b195cc0273650d01fc20c26433b929e9683aa5f
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Wed Nov 16 13:02:14 2011 -0500
+
+    Adapt to vgahw changes in videoabi 12
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 9ce6499f013a5b6fdc9440fd3213dbb28b3bf1be
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Wed Nov 16 12:59:00 2011 -0500
+
+    s/IOADDRESS/unsigned long/
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 6f8a776f792c02779a34c911f803fde8c09b93f6
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+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 <alan.coopersmith@oracle.com>
+
 commit 876d8aea6c4c442756c03dd6cd64e14e42658d0b
 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 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 <memsize@videotron.ca>
 
+commit 413eee03287b6e161ce0337df712099b585aa722
+Author: Adam Jackson <ajax@redhat.com>
+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 <ajax@redhat.com>
+
 commit aa26b72a5f76012e8246de1e885f707f29e5fc4c
 Author: Adam Jackson <ajax@redhat.com>
 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 <kibi@debian.org>  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 <ajax@redhat.com>
Date:   Mon Dec 19 17:44:20 2011 -0500

    Fix for new vgaHW ABI
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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 <ajax@redhat.com>
Date:   Mon Dec 19 16:09:34 2011 -0500

    Fall back to shadowfb if XAA fails to load
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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 <ajax@redhat.com>
Date:   Thu Nov 17 15:50:02 2011 -0500

    Check ABI major not encoded ABI
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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 <ajax@redhat.com>
Date:   Wed Nov 16 13:02:14 2011 -0500

    Adapt to vgahw changes in videoabi 12
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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 <ajax@redhat.com>
Date:   Wed Nov 16 12:59:00 2011 -0500

    s/IOADDRESS/unsigned long/
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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 <alan.coopersmith@oracle.com>
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 <alan.coopersmith@oracle.com>

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 <ajax@redhat.com>
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 <ajax@redhat.com>

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)


Reply to: