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]

