diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-05-14 15:07:55 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-05-14 15:07:55 -0700 |
commit | 3f312e68c5c3b29dbe81f1f7e83dc20eddfa8d15 (patch) | |
tree | 55a191373ab8efd23b9c528f39c152a8477723d8 | |
parent | 024e1840539c2419f4f961e32b33b87009bd8b08 (diff) |
Raise minimum supported Xserver version to 1.18 (ABI_VIDEODRV_VERSION 20.0)
Already effectively required by use of XNFcallocarray() introduced in
xorg/xserver@b96dc999 - xserver-1.18.0, released in Nov. 2015.
Allows dropping remnants of code for XAA and pre-pciaccess X servers
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-i740/-/merge_requests/7>
-rw-r--r-- | configure.ac | 20 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/i740.h | 8 | ||||
-rw-r--r-- | src/i740_accel.c | 422 | ||||
-rw-r--r-- | src/i740_dga.c | 70 | ||||
-rw-r--r-- | src/i740_driver.c | 23 |
6 files changed, 7 insertions, 537 deletions
diff --git a/configure.ac b/configure.ac index 6dd6327..06a3978 100644 --- a/configure.ac +++ b/configure.ac @@ -58,7 +58,7 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto) XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Obtain compiler/linker options for the driver dependencies -PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) +PKG_CHECK_MODULES(XORG, [xorg-server >= 1.18 xproto fontsproto $REQUIRED_MODULES]) # Checks for libraries. SAVE_CPPFLAGS="$CPPFLAGS" @@ -74,24 +74,6 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then fi AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) -AC_ARG_ENABLE(xaa, - AS_HELP_STRING([--enable-xaa], - [Enable legacy X Acceleration Architecture (XAA) [default=auto]]), - [XAA="$enableval"], - [XAA=auto]) -if test "x$XAA" != xno; then - save_CFLAGS=$CFLAGS - save_CPPFLAGS=$CPPFLAGS - CFLAGS=$XORG_CFLAGS - CPPFLAGS="$XORG_CFLAGS" - AC_CHECK_HEADERS([xaa.h], XAA=yes, XAA=no) - CFLAGS=$save_CFLAGS - CPPFLAGS=$save_CPPFLAGS -fi -AC_MSG_CHECKING([whether to include XAA support]) -AM_CONDITIONAL(XAA, test "x$XAA" = xyes) -AC_MSG_RESULT([$XAA]) - AC_SUBST([moduledir]) DRIVER_NAME=i740 diff --git a/src/Makefile.am b/src/Makefile.am index 0b9f47a..7c0cfa6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,7 +30,6 @@ i740_drv_ladir = @moduledir@/drivers i740_drv_la_SOURCES = \ compat-api.h \ - i740_accel.c \ i740_cursor.c \ i740_dga.c \ i740_dga.h \ @@ -41,9 +41,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "i740_reg.h" #include "i740_macros.h" -#ifdef HAVE_XAA_H -#include "xaa.h" -#endif #include "xf86Cursor.h" #include "compat-api.h" @@ -112,9 +109,6 @@ typedef struct _I740Rec { int HasSGRAM; I740RegRec SavedReg; I740RegRec ModeReg; -#ifdef HAVE_XAA_H - XAAInfoRecPtr AccelInfoRec; -#endif xf86CursorInfoPtr CursorInfoRec; FBAreaPtr CursorData; CloseScreenProcPtr CloseScreen; @@ -154,7 +148,7 @@ typedef struct _I740Rec { #define I740PTR(p) ((I740Ptr)((p)->driverPrivate)) extern Bool I740CursorInit(ScreenPtr pScreen); -extern Bool I740AccelInit(ScreenPtr pScreen); + void I740SetPIOAccess(I740Ptr pI740); void I740SetMMIOAccess(I740Ptr pI740); void I740InitVideo(ScreenPtr pScreen); diff --git a/src/i740_accel.c b/src/i740_accel.c deleted file mode 100644 index b574752..0000000 --- a/src/i740_accel.c +++ /dev/null @@ -1,422 +0,0 @@ - -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -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, sub license, 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 (including the -next paragraph) 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 NON-INFRINGEMENT. -IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. - -**************************************************************************/ - -/* - * Authors: - * Daryll Strauss <daryll@precisioninsight.com> - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "xf86.h" -#include "xf86_OSproc.h" - -#include "compiler.h" - -#include "xf86Pci.h" - -#include "vgaHW.h" - -#include "xf86xv.h" -#include "i740.h" - -#ifdef HAVE_XAA_H -static unsigned int i740Rop[16] = { - 0x00, /* GXclear */ - 0x88, /* GXand */ - 0x44, /* GXandReverse */ - 0xCC, /* GXcopy */ - 0x22, /* GXandInvert */ - 0xAA, /* GXnoop */ - 0x66, /* GXxor */ - 0xEE, /* GXor */ - 0x11, /* GXnor */ - 0x99, /* GXequiv */ - 0x55, /* GXinvert */ - 0xDD, /* GXorReverse */ - 0x33, /* GXcopyInvert */ - 0xBB, /* GXorInverted */ - 0x77, /* GXnand */ - 0xFF /* GXset */ -}; - -static unsigned int i740PatternRop[16] = { - 0x00, /* GXclear */ - 0xA0, /* GXand */ - 0x50, /* GXandReverse */ - 0xF0, /* GXcopy */ - 0x0A, /* GXandInvert */ - 0xAA, /* GXnoop */ - 0x5A, /* GXxor */ - 0xFA, /* GXor */ - 0x05, /* GXnor */ - 0xA5, /* GXequiv */ - 0x55, /* GXinvert */ - 0xF5, /* GXorReverse */ - 0x0F, /* GXcopyInvert */ - 0xAF, /* GXorInverted */ - 0x5F, /* GXnand */ - 0xFF /* GXset */ -}; - -static void I740SyncPIO(ScrnInfoPtr pScrn); -static void I740SyncMMIO(ScrnInfoPtr pScrn); -static void I740SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, - unsigned int planemask); -static void I740SubsequentSolidFillRect(ScrnInfoPtr pScrn, int x, int y, - int w, int h); -static void I740SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, - int ydir, int rop, - unsigned int planemask, - int transparency_color); -static void I740SubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, int y1, - int x2, int y2, int w, int h); -static void I740SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, - int pattx, int patty, - int fg, int bg, int rop, - unsigned int planemask); -static void I740SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, - int pattx, int patty, - int x, int y, int w, int h); -#if 0 -static void I740SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, - int bg, int fg, int rop, - unsigned int planemask); -static void I740SubsequentCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, - int x, int y, int w, int h, - int skipleft); -#endif -#endif -/* - * The following function sets up the supported acceleration. Call it - * from the FbInit() function in the SVGA driver, or before ScreenInit - * in a monolithic server. - */ -Bool -I740AccelInit(ScreenPtr pScreen) -{ -#ifdef HAVE_XAA_H - XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); - I740Ptr pI740 = I740PTR(pScrn); - - pI740->AccelInfoRec = infoPtr = XAACreateInfoRec(); - if (!infoPtr) - return FALSE; - - if (pScrn->bitsPerPixel == 32) { - infoPtr->Flags = 0; /* Disables all acceleration */ - return TRUE;; - } - - infoPtr->Flags = PIXMAP_CACHE | OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER; - - /* Sync */ - if (pI740->usePIO) - infoPtr->Sync = I740SyncPIO; - else - infoPtr->Sync = I740SyncMMIO; - - infoPtr->CachePixelGranularity = 8 / pI740->cpp; - - /* Solid filled rectangles */ - infoPtr->SolidFillFlags = NO_PLANEMASK; - infoPtr->SetupForSolidFill = I740SetupForSolidFill; - infoPtr->SubsequentSolidFillRect = I740SubsequentSolidFillRect; - - /* Screen to screen copy */ - infoPtr->ScreenToScreenCopyFlags = (NO_PLANEMASK | NO_TRANSPARENCY); - infoPtr->SetupForScreenToScreenCopy = I740SetupForScreenToScreenCopy; - infoPtr->SubsequentScreenToScreenCopy = I740SubsequentScreenToScreenCopy; - - /* 8x8 pattern fills */ - infoPtr->SetupForMono8x8PatternFill = I740SetupForMono8x8PatternFill; - infoPtr->SubsequentMono8x8PatternFillRect = - I740SubsequentMono8x8PatternFillRect; - infoPtr->Mono8x8PatternFillFlags = - NO_PLANEMASK | HARDWARE_PATTERN_SCREEN_ORIGIN | - BIT_ORDER_IN_BYTE_MSBFIRST; - - /* CPU to screen color expansion */ - /* Currently XAA is limited to only DWORD padding. The 3.3 driver - * uses NO_PAD scanlines b/c of problems with using the chip in - * DWORD mode. Once other padding modes are available in XAA this - * Code can be turned back on. - */ -#if 0 -#ifndef ALLOW_PCI_COLOR_EXP - if (pI740->Chipset != PCI_CHIP_I740_PCI) { -#endif - /* - * Currently, we are not properly able to read the bitblt engine - * busy bit on the PCI i740 card. When we are able to do so, we - * can re-enable color expansion. - */ - infoPtr->CPUToScreenColorExpandFillFlags = NO_PLANEMASK | -#ifdef USE_DWORD_COLOR_EXP - SCANLINE_PAD_DWORD | -#endif - CPU_TRANSFER_PAD_QWORD | - SYNC_AFTER_COLOR_EXPAND | BIT_ORDER_IN_BYTE_MSBFIRST; - infoPtr->ColorExpandBase = - (unsigned char *) (pI740->MMIOBase + BLTDATA); - infoPtr->ColorExpandRange = 0x10000; - infoPtr->SetupForCPUToScreenColorExpandFill = - I740SetupForCPUToScreenColorExpandFill; - infoPtr->SubsequentCPUToScreenColorExpandFill = - I740SubsequentCPUToScreenColorExpandFill; -#ifndef ALLOW_PCI_COLOR_EXP - } -#endif -#endif - return XAAInit(pScreen, infoPtr); -#else - return FALSE; -#endif -} - -#ifdef HAVE_XAA_H - -static void -I740SyncPIO(ScrnInfoPtr pScrn) -{ - WAIT_ENGINE_IDLE_PIO(); -} - -static void -I740SyncMMIO(ScrnInfoPtr pScrn) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - WAIT_ENGINE_IDLE_MMIO(); -} - -static void -I740SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, - unsigned int planemask) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - - pI740->bltcmd.BR00 = ((pScrn->displayWidth * pI740->cpp) << 16) | - (pScrn->displayWidth * pI740->cpp); - pI740->bltcmd.BR01 = color; - pI740->bltcmd.BR04 = SOLID_PAT_SELECT | PAT_IS_MONO | i740PatternRop[rop]; -} - -static void -I740SubsequentSolidFillRect(ScrnInfoPtr pScrn, int x, int y, int w, int h) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - WAIT_LP_FIFO(12); - OUTREG(LP_FIFO, 0x6000000A); - OUTREG(LP_FIFO, pI740->bltcmd.BR00); - OUTREG(LP_FIFO, pI740->bltcmd.BR01); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, pI740->bltcmd.BR04); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (y * pScrn->displayWidth + x) * pI740->cpp); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (h << 16) | (w * pI740->cpp)); -} - -static void -I740SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, int ydir, int rop, - unsigned int planemask, int transparency_color) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - pI740->bltcmd.BR00 = (((pScrn->displayWidth * pI740->cpp) << 16) | - (pScrn->displayWidth * pI740->cpp)); - - pI740->bltcmd.BR04 = SRC_IS_IN_COLOR | SRC_USE_SRC_ADDR | i740Rop[rop]; - if (xdir == -1) - pI740->bltcmd.BR04 |= BLT_RIGHT_TO_LEFT; - else - pI740->bltcmd.BR04 |= BLT_LEFT_TO_RIGHT; - - if (ydir == -1) - pI740->bltcmd.BR04 |= BLT_BOT_TO_TOP; - else - pI740->bltcmd.BR04 |= BLT_TOP_TO_BOT; - - pI740->bltcmd.BR01 = 0x00000000; - -} - -static void -I740SubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, int y1, - int x2, int y2, int w, int h) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - if (pI740->bltcmd.BR04 & BLT_BOT_TO_TOP) { - pI740->bltcmd.BR06 = (y1 + h - 1) * pScrn->displayWidth * pI740->cpp; - pI740->bltcmd.BR07 = (y2 + h - 1) * pScrn->displayWidth * pI740->cpp; - } - else { - pI740->bltcmd.BR06 = y1 * pScrn->displayWidth * pI740->cpp; - pI740->bltcmd.BR07 = y2 * pScrn->displayWidth * pI740->cpp; - } - - if (pI740->bltcmd.BR04 & BLT_RIGHT_TO_LEFT) { - pI740->bltcmd.BR06 += (x1 + w - 1) * pI740->cpp + pI740->cpp - 1; - pI740->bltcmd.BR07 += (x2 + w - 1) * pI740->cpp + pI740->cpp - 1; - } - else { - pI740->bltcmd.BR06 += x1 * pI740->cpp; - pI740->bltcmd.BR07 += x2 * pI740->cpp; - } - - WAIT_LP_FIFO(12); - OUTREG(LP_FIFO, 0x6000000A); - OUTREG(LP_FIFO, pI740->bltcmd.BR00); - OUTREG(LP_FIFO, pI740->bltcmd.BR01); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, pI740->bltcmd.BR04); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, pI740->bltcmd.BR06); - OUTREG(LP_FIFO, pI740->bltcmd.BR07); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (h << 16) | (w * pI740->cpp)); -} - -static void -I740SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int pattx, int patty, - int fg, int bg, int rop, unsigned int planemask) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - pI740->bltcmd.BR00 = ((pScrn->displayWidth * pI740->cpp) << 16) | - (pScrn->displayWidth * pI740->cpp); - - pI740->bltcmd.BR01 = bg; - pI740->bltcmd.BR02 = fg; - - pI740->bltcmd.BR04 = PAT_IS_MONO | i740PatternRop[rop]; - if (bg == -1) - pI740->bltcmd.BR04 |= MONO_PAT_TRANSP; - - pI740->bltcmd.BR05 = (pattx + patty * pScrn->displayWidth) * pI740->cpp; -} - -static void -I740SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, int pattx, int patty, - int x, int y, int w, int h) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - WAIT_LP_FIFO(12); - OUTREG(LP_FIFO, 0x6000000A); - OUTREG(LP_FIFO, pI740->bltcmd.BR00); - OUTREG(LP_FIFO, pI740->bltcmd.BR01); - OUTREG(LP_FIFO, pI740->bltcmd.BR02); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, pI740->bltcmd.BR04 | ((y << 20) & PAT_VERT_ALIGN)); - OUTREG(LP_FIFO, pI740->bltcmd.BR05); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (y * pScrn->displayWidth + x) * pI740->cpp); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (h << 16) | (w * pI740->cpp)); -} - -#if 0 -static void -I740SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int bg, int fg, - int rop, unsigned int planemask) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - pI740->bltcmd.BR00 = (pScrn->displayWidth * pI740->cpp) << 16; - pI740->bltcmd.BR01 = bg; - pI740->bltcmd.BR02 = fg; -#ifdef USE_DWORD_COLOR_EXP - pI740->bltcmd.BR03 = MONO_DWORD_ALIGN | MONO_USE_COLEXP; -#else - pI740->bltcmd.BR03 = MONO_BIT_ALIGN | MONO_USE_COLEXP; -#endif - pI740->bltcmd.BR04 = SRC_IS_MONO | SRC_USE_BLTDATA | i740Rop[rop]; - if (bg == -1) - pI740->bltcmd.BR04 |= MONO_SRC_TRANSP; -} - -static void -I740SubsequentCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int x, int y, - int w, int h, int skipleft) -{ - I740Ptr pI740; - - pI740 = I740PTR(pScrn); - pI740->AccelInfoRec->Sync(pScrn); - OUTREG(LP_FIFO, 0x6000000A); - OUTREG(LP_FIFO, pI740->bltcmd.BR00); - OUTREG(LP_FIFO, pI740->bltcmd.BR01); - OUTREG(LP_FIFO, pI740->bltcmd.BR02); - OUTREG(LP_FIFO, pI740->bltcmd.BR03 | (skipleft & MONO_SRC_LEFT_CLIP)); - OUTREG(LP_FIFO, pI740->bltcmd.BR04); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, (y * pScrn->displayWidth + x) * pI740->cpp); - OUTREG(LP_FIFO, 0x00000000); - OUTREG(LP_FIFO, 0x00000000); -#ifdef USE_DWORD_COLOR_EXP - /* - * This extra wait is necessary to keep the bitblt engine from - * locking up, but I am not sure why it is needed. If we take it - * out, "x11perf -copyplane10" will lock the bitblt engine. When - * the bitblt engine is locked, it is waiting for mono data to be - * written to the BLTDATA region, which seems to imply that some of - * the data that was written was lost. This might be fixed by - * BLT_SKEW changes. Update: The engine still locks up with this - * extra wait. More investigation (and time) is needed. - */ - WAIT_BLT_IDLE(); -#endif - OUTREG(LP_FIFO, (h << 16) | (w * pI740->cpp)); -} -#endif - -#endif diff --git a/src/i740_dga.c b/src/i740_dga.c index 2ad9188..b019dc6 100644 --- a/src/i740_dga.c +++ b/src/i740_dga.c @@ -32,9 +32,6 @@ #include "vgaHW.h" #include "xf86xv.h" #include "i740.h" -#ifdef HAVE_XAA_H -#include "xaalocal.h" -#endif #include "dgaproc.h" #include "i740_dga.h" @@ -44,34 +41,13 @@ static Bool I740_SetMode(ScrnInfoPtr, DGAModePtr); static int I740_GetViewport(ScrnInfoPtr); static void I740_SetViewport(ScrnInfoPtr, int, int, int); -#ifdef HAVE_XAA_H -static void I740_Sync(ScrnInfoPtr); -static void I740_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long); -static void I740_BlitRect(ScrnInfoPtr, int, int, int, int, int, int); - -#if 0 -static void I740_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, - unsigned long); -#endif -#endif static DGAFunctionRec I740DGAFuncs = { I740_OpenFramebuffer, NULL, I740_SetMode, I740_SetViewport, I740_GetViewport, -#ifdef HAVE_XAA_H - I740_Sync, - I740_FillRect, - I740_BlitRect, -#if 0 - I740_BlitTransRect -#else - NULL -#endif -#else NULL, NULL, NULL, NULL -#endif }; Bool @@ -101,10 +77,6 @@ I740DGAInit(ScreenPtr pScreen) currentMode->mode = pMode; currentMode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE; -#ifdef HAVE_XAA_H - if (pI740->AccelInfoRec) - currentMode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT; -#endif if (pMode->Flags & V_DBLSCAN) currentMode->flags |= DGA_DOUBLESCAN; if (pMode->Flags & V_INTERLACE) @@ -197,48 +169,6 @@ I740_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) pI740->DGAViewportStatus = 0; } -#ifdef HAVE_XAA_H -static void -I740_FillRect(ScrnInfoPtr pScrn, int x, int y, int w, int h, - unsigned long color) -{ - I740Ptr pI740 = I740PTR(pScrn); - - if (pI740->AccelInfoRec) { - (*pI740->AccelInfoRec->SetupForSolidFill) (pScrn, color, GXcopy, ~0); - (*pI740->AccelInfoRec->SubsequentSolidFillRect) (pScrn, x, y, w, h); - SET_SYNC_FLAG(pI740->AccelInfoRec); - } -} - -static void -I740_Sync(ScrnInfoPtr pScrn) -{ - I740Ptr pI740 = I740PTR(pScrn); - - if (pI740->AccelInfoRec) { - (*pI740->AccelInfoRec->Sync) (pScrn); - } -} - -static void -I740_BlitRect(ScrnInfoPtr pScrn, - int srcx, int srcy, int w, int h, int dstx, int dsty) -{ - I740Ptr pI740 = I740PTR(pScrn); - - if (pI740->AccelInfoRec) { - int xdir = ((srcx < dstx) && (srcy == dsty)) ? -1 : 1; - int ydir = (srcy < dsty) ? -1 : 1; - - (*pI740->AccelInfoRec->SetupForScreenToScreenCopy) (pScrn, xdir, ydir, - GXcopy, ~0, -1); - (*pI740->AccelInfoRec->SubsequentScreenToScreenCopy) (pScrn, srcx, srcy, - dstx, dsty, w, h); - SET_SYNC_FLAG(pI740->AccelInfoRec); - } -} -#endif #if 0 static void I740_BlitTransRect(ScrnInfoPtr pScrn, diff --git a/src/i740_driver.c b/src/i740_driver.c index 8c86e03..dc5cdc2 100644 --- a/src/i740_driver.c +++ b/src/i740_driver.c @@ -53,10 +53,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "xf86.h" #include "xf86_OSproc.h" -#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 -#include "xf86Resources.h" -#include "xf86RAC.h" -#endif #include "xf86cmap.h" /* If the driver uses port I/O directly, it needs: */ @@ -770,11 +766,9 @@ I740PreInit(ScrnInfoPtr pScrn, int flags) pI740->NoAccel = xf86ReturnOptValBool(pI740->Options, OPTION_NOACCEL, FALSE); if (!pI740->NoAccel) { - if (!xf86LoadSubModule(pScrn, "xaa")) { - xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "No acceleration available\n"); - pI740->NoAccel = 1; - } + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "No acceleration available\n"); + pI740->NoAccel = 1; } if (!xf86ReturnOptValBool(pI740->Options, OPTION_SW_CURSOR, FALSE)) { @@ -1658,10 +1652,8 @@ I740ScreenInit(SCREEN_INIT_ARGS_DECL) } if (!pI740->NoAccel) { - if (!I740AccelInit(pScreen)) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Hardware acceleration initialization failed\n"); - } + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Hardware acceleration not available\n"); } if (pScrn->bitsPerPixel > 8) { @@ -1813,11 +1805,6 @@ I740CloseScreen(CLOSE_SCREEN_ARGS_DECL) I740UnmapMem(pScrn); vgaHWUnmapMem(pScrn); -#ifdef HAVE_XAA_H - if (pI740->AccelInfoRec) - XAADestroyInfoRec(pI740->AccelInfoRec); - pI740->AccelInfoRec = 0; -#endif if (pI740->CursorInfoRec) xf86DestroyCursorInfoRec(pI740->CursorInfoRec); pI740->CursorInfoRec = 0; |