diff -u -r -N ../xc.old/config/cf/xfree86.cf ./config/cf/xfree86.cf --- ../xc.old/config/cf/xfree86.cf 2003-10-27 16:30:28.000000000 +0100 +++ ./config/cf/xfree86.cf 2003-10-27 16:32:07.000000000 +0100 @@ -467,14 +467,24 @@ # define AgpGartDrivers /**/ -# define DevelDrivers /**/ +/* + * Drivers under development, but not ready for binary releases, or + * drivers included on this platform only for build testing. + */ +# ifndef DevelDrivers +# if XFree86Devel +# define DevelDrivers /**/ +# else +# define DevelDrivers /**/ +# endif +# endif /* Pure PCI drivers should go first */ # ifndef XF86CardDrivers # define XF86CardDrivers mga glint nv tga s3 s3virge sis rendition \ neomagic tdfx savage cirrus tseng trident \ chips apm i128 ati ark cyrix siliconmotion \ - vga dummy fbdev vesa + vga dummy fbdev vesa i810 DevelDrivers # endif /* DRI tdfx driver needs Glide, which is not available for AMD64 */ diff -u -r -N ../xc.old/nls/compose.dir ./nls/compose.dir --- ../xc.old/nls/compose.dir 2003-10-27 16:30:23.000000000 +0100 +++ ./nls/compose.dir 2003-10-27 16:32:16.000000000 +0100 @@ -306,8 +306,10 @@ en_US.UTF-8/Compose: it_CH.UTF-8 en_US.UTF-8/Compose: it_IT.UTF-8 en_US.UTF-8/Compose: iu_CA.UTF-8 +en_US.UTF-8/Compose: ja_JP.UTF-8 en_US.UTF-8/Compose: ka_GE.UTF-8 en_US.UTF-8/Compose: kl_GL.UTF-8 +en_US.UTF-8/Compose: ko_KR.UTF-8 en_US.UTF-8/Compose: kw_GB.UTF-8 en_US.UTF-8/Compose: lo_LA.UTF-8 en_US.UTF-8/Compose: lt_LT.UTF-8 @@ -348,3 +350,4 @@ en_US.UTF-8/Compose: vi_VN.UTF-8 en_US.UTF-8/Compose: wa_BE.UTF-8 en_US.UTF-8/Compose: yi_US.UTF-8 +en_US.UTF-8/Compose: zh_TW.UTF-8 diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/CHANGELOG.suse ./programs/Xserver/hw/xfree86/CHANGELOG.suse --- ../xc.old/programs/Xserver/hw/xfree86/CHANGELOG.suse 1970-01-01 01:00:00.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/CHANGELOG.suse 2003-10-27 16:32:16.000000000 +0100 @@ -0,0 +1,60 @@ + 26. Fixed recognition of Explorer mouse (Egbert Eich). + 25. Add test for vtSema to i8x0Sync() to prevent touching MMIO registers + while switched away (Egbert Eich). + 24. i810 driver: call drmCtlUninstHandler() on CloseScreen() + (David Airlie). + 23. Add missing tests for vtSema to xaa 'Picture' functions. + These missing checks caused strange behavior with some drivers + when RENDER extension requests were made while X was switched away. + (Egbert Eich). + 22. Fixed type in radeon driver which caused display to go into + powersaving mode when Xcursor is disabled (Bugz: 90, Michel Dnzer). + 21. Fixed typo in XKB-Config.sgml (Bugz: 53, Hiroyuki Bessho). + 20. Fixed DPMS problem on C&T 69000 due to incorrect LCD flag (Bugz: 101, + Egbert Eich). + 19. Added xkb symbols layout for BTC 5090 internet keyboard + (Bugz: 57, Jack Angel). + 18. Resetting 'bound' flag for an agp entry after undbind succeeded in + drm_agpsupport.h (Egbert Eich). + 17. Ignoring hw_lock for drm device if lock was set by a different + instance + (ie Xserver) to prevent second server to spin in driver release + function + (currently only relevant for i8xx drm drivers) (David Dawes). + 16. Adding extra delay before doing a slowBcopy in ia64 to prevent a MC + when saving/restoring VGA fonts (Egbert Eich). + 15. Turn off needToSync in LeaveVT() in i830 driver to prevent server + crashes because xaa tries to sync blitter while switched away + (Egbert Eich). + 14. Added the O_SYNC flag when opening /dev/mem to work around a kernel + bug + which causes conflits between WC settings in MTRR registers and + cacheable + attribute in page table (Egbert Eich). + 13. Reduced retry count for mouse configuration to 4. This should speed + up server start for people who use a mouse repeater like gpm + (Egbert Eich). + 12. Fixed xf86cfg to duplicate font names before they get freed when + unloading the module (Egbert Eich). + 11. Added missing functions to xf86cfg (Egbert Eich). + 10. Added missing ROP_NEEDS_SOURCE to Savage driver; + now all 2D accel functions should use this flag (Egbert Eich). + 9. Reduced flicker with video playback in Savage driver (Tim Roberts). + 8. Load vgahw submodule in RENDITION driver before using it + (Egbert Eich). + 7. Magically speed up video playback on Neomagic (Egbert Eich). + 6. Added drmAgpUnbind()/drmAgpBind() functionality on Leave/Enter for + i810 + cards to allow a second Xserver to be started if the first one has + DRI enabled (Egbert Eich). + 5. Set NeedRingBufferLow for i855/i865 to avoid lockups on vt switches + (Egbert Eich). + 4. Check for vtSema before accessing registers in I830BIOSSaveScreen() + (Egbert Eich). + 3. Some sanity fixes for atiprobe to work better with xf86cfg: Handle + situation gracefully if the PCI config pointer doesn't exist + (Egbert Eich). + 2. Changed behavior of fontfile: don't drop the entire directory if some + fonts cannot be rendered (Egbert Eich). + 1. Fixed B&H bdf fonts: AVERAGE_WIDTH is not a string but an int (Mike + Fabian). diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/common/xf86Events.c ./programs/Xserver/hw/xfree86/common/xf86Events.c --- ../xc.old/programs/Xserver/hw/xfree86/common/xf86Events.c 2003-10-27 16:30:47.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/common/xf86Events.c 2003-10-27 16:34:02.000000000 +0100 @@ -628,6 +628,7 @@ } #ifndef __sparc64__ +if (!xf86Info.kbdCustomKeycodes) { /* * PC keyboards generate separate key codes for * Alt+Print and Control+Pause but in the X keyboard model @@ -638,6 +639,7 @@ scanCode = KEY_Print; else if (scanCode == KEY_Break) scanCode = KEY_Pause; +} #endif /* diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/common/xf86pciBus.c ./programs/Xserver/hw/xfree86/common/xf86pciBus.c --- ../xc.old/programs/Xserver/hw/xfree86/common/xf86pciBus.c 2003-10-27 16:30:47.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/common/xf86pciBus.c 2003-10-27 16:32:16.000000000 +0100 @@ -3531,7 +3531,6 @@ pciTagConvertRange2Host(tag, pRange); } - #ifdef INCLUDE_DEPRECATED void xf86EnablePciBusMaster(pciVideoPtr pPci, Bool enable) diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830.h ./programs/Xserver/hw/xfree86/drivers/i810/i830.h --- ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830.h 2003-10-27 16:30:44.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/drivers/i810/i830.h 2003-10-27 16:32:16.000000000 +0100 @@ -296,6 +296,7 @@ Bool starting; Bool closing; Bool suspended; + Bool recalibrateCursor; /* fbOffset converted to (x, y). */ int xoffset; diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c ./programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c --- ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c 2003-10-27 16:30:44.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c 2003-10-27 16:32:16.000000000 +0100 @@ -174,7 +174,7 @@ #ifdef XF86DRI /* VT switching tries to do this. */ - if (!pI830->LockHeld && pI830->directRenderingEnabled) { + if ((!pI830->LockHeld && pI830->directRenderingEnabled) || !pScrn->vtSema) { return; } #endif diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c ./programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c --- ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c 2003-10-27 16:30:44.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c 2003-10-27 16:32:16.000000000 +0100 @@ -221,7 +221,7 @@ I830ShowCursor(ScrnInfoPtr pScrn) { I830Ptr pI830 = I830PTR(pScrn); - CARD32 temp; + CARD32 temp, cursor_pos = 0; DPRINTF(PFX, "I830ShowCursor\n"); DPRINTF(PFX, @@ -230,6 +230,11 @@ pI830->CursorMemARGB->Physical, pI830->CursorMemARGB->Start); pI830->cursorOn = TRUE; + /* for calibration set a slightly negative cursor position */ + if (pI830->recalibrateCursor) { + cursor_pos = INREG(CURSOR_A_POSITION); + OUTREG(CURSOR_A_POSITION, (CURSOR_POS_SIGN | 2) << CURSOR_Y_SHIFT); + } if (IS_MOBILE(pI830) || IS_I915G(pI830)) { temp = INREG(CURSOR_A_CONTROL); temp &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT); @@ -242,6 +247,11 @@ else OUTREG(CURSOR_BASEADDR, pI830->CursorMem->Start); } + if (pI830->recalibrateCursor) { + xf86UDelay(100000); + pI830->recalibrateCursor = FALSE; + OUTREG(CURSOR_A_POSITION, cursor_pos); + } } static void diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c ./programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c --- ../xc.old/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c 2003-10-27 16:30:44.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c 2003-10-27 16:32:16.000000000 +0100 @@ -2502,4 +2502,5 @@ DPRINTF(PFX, "I830VESASetMode\n"); + pI830->recalibrateCursor = TRUE; /* Always Enable Linear Addressing */ diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/os-support/bus/Imakefile ./programs/Xserver/hw/xfree86/os-support/bus/Imakefile --- ../xc.old/programs/Xserver/hw/xfree86/os-support/bus/Imakefile 2003-10-27 16:30:47.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/os-support/bus/Imakefile 2003-10-27 16:32:17.000000000 +0100 @@ -18,8 +18,8 @@ XCOMM Sparc SBUS driver and generic Linux PCI driver -PCIDRVRSRC = linuxPci.c -PCIDRVROBJ = linuxPci.o +PCIDRVRSRC = linuxPci.c sparcPci.c +PCIDRVROBJ = linuxPci.o sparcPci.o SBUSDRVSRC = Sbus.c SBUSDRVOBJ = Sbus.o diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h ./programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h --- ../xc.old/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h 2003-10-27 16:30:47.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h 2003-10-27 16:32:17.000000000 +0100 @@ -27,6 +27,7 @@ #if defined(linux) #include +#include #include #include #elif defined(SVR4) diff -u -r -N ../xc.old/programs/Xserver/hw/xfree86/xaa/xaaImage.c ./programs/Xserver/hw/xfree86/xaa/xaaImage.c --- ../xc.old/programs/Xserver/hw/xfree86/xaa/xaaImage.c 2003-10-27 16:30:43.000000000 +0100 +++ ./programs/Xserver/hw/xfree86/xaa/xaaImage.c 2003-10-27 16:32:18.000000000 +0100 @@ -236,12 +236,16 @@ (*infoRec->SetupForImageWrite)(pScrn, rop, planemask, trans, bpp, depth); (*infoRec->SubsequentImageWriteRect)(pScrn, x, y, w, h, skipleft); +#if 0 if(beCareful) { /* in cases with bad alignment we have to be careful not to read beyond the end of the source */ if(((x * Bpp) + (dwords << 2)) > srcwidth) h--; else beCareful = FALSE; } +#endif + if (beCareful) + h--; if(dwords > infoRec->ImageWriteRange) { while(h--) { diff -u -r -N ../xc.old/programs/xkbcomp/rules/xorg.xml ./programs/xkbcomp/rules/xorg.xml --- ../xc.old/programs/xkbcomp/rules/xorg.xml 2003-10-27 16:30:36.000000000 +0100 +++ ./programs/xkbcomp/rules/xorg.xml 2003-10-27 16:32:18.000000000 +0100 @@ -2080,7 +2080,32 @@ Syriac Сирийская - + + + + TSCII + A Tamil typewrite-style keymap; TSCII encoding + + + + + TAB + A Tamil typewrite-style keymap; TAB encoding + + + + + UNI + A Tamil typewrite-style keymap; Unicode encoding + + + + + INSCRIPT + INSCRIPT layout + + + diff -u -r -N ../xc.old/programs/xkbcomp/symbols/inet ./programs/xkbcomp/symbols/inet --- ../xc.old/programs/xkbcomp/symbols/inet 2003-10-27 16:30:36.000000000 +0100 +++ ./programs/xkbcomp/symbols/inet 2003-10-27 16:32:18.000000000 +0100 @@ -38,6 +38,8 @@ key { [ XF86PowerOff ] }; }; +// All keyboards listed here should be also mentioned in +// xc/programs/xkbcomp/rules/xfree86, xfree86.lst and xfree86.xml. // ACPI Standard diff -u -r -N ../xc.old/programs/xkbcomp/symbols/pc/us ./programs/xkbcomp/symbols/pc/us --- ../xc.old/programs/xkbcomp/symbols/pc/us 2003-10-27 16:30:36.000000000 +0100 +++ ./programs/xkbcomp/symbols/pc/us 2003-10-27 16:32:18.000000000 +0100 @@ -48,6 +48,7 @@ key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; + key { [ backslash, bar ] }; key { [ z, Z ] }; key { [ x, X ] }; @@ -61,6 +62,8 @@ key { [ slash, question ] }; // End alphanumeric section + + key { [ KP_Delete, KP_Decimal ] }; }; diff -u -r -N ../xc.old/programs/xterm/main.c ./programs/xterm/main.c --- ../xc.old/programs/xterm/main.c 2003-10-27 16:30:38.000000000 +0100 +++ ./programs/xterm/main.c 2003-10-27 16:32:18.000000000 +0100 @@ -2976,7 +2976,7 @@ added_utmp_entry = False; #if defined(USE_UTEMPTER) -#undef UTMP +#undef HAVE_UTMP if (!resource.utmpInhibit) { addToUtmp(ttydev, NULL, screen->respond); added_utmp_entry = True; diff -u -r programs/Xserver/hw/xfree86.old/drivers/ati/atiprobe.c programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c --- programs/Xserver/hw/xfree86.old/drivers/ati/atiprobe.c 2003-10-28 11:30:22.000000000 +0100 +++ programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c 2003-10-28 11:30:55.000000000 +0100 @@ -1566,6 +1566,8 @@ continue; pPCI = pVideo->thisCard; + if (pPCI == NULL) + continue; PciReg = pciReadLong(pPCI->tag, PCI_REG_USERCONFIG); j = PciReg & 0x03U; if (j == 0x03U) @@ -2060,6 +2062,8 @@ { pATI = ATIPtrs[j]; + if (pPCI == NULL) + continue; /* * First check the Chipset specification. The placement of * "break" and "continue" statements here is carefully chosen --- programs/xkbcomp/rules/Imakefile.old 2004-04-15 02:05:24.162324017 +0000 +++ programs/xkbcomp/rules/Imakefile 2004-04-15 02:08:28.885085701 +0000 @@ -10,4 +10,6 @@ InstallMultiple($(LISTFILES),$(LIBDIR)/xkb/rules) InstallCreateLink($(LIBDIR)/xkb/rules,xorg,xfree86) InstallCreateLink($(LIBDIR)/xkb/rules,xorg.lst,xfree86.lst) +InstallCreateLink($(LIBDIR)/xkb/rules,xorg-it.lst,xfree86-it.lst) +InstallCreateLink($(LIBDIR)/xkb/rules,xorg.xml,xfree86.xml) DependTarget() --- programs/xterm/main.h.orig 2004-08-15 11:04:36.139302948 +0000 +++ programs/xterm/main.h 2004-08-15 11:05:25.696950729 +0000 @@ -73,15 +73,7 @@ #define PROJECTROOT "/usr/X11R6" #endif -/* - * The configure script quotes PROJECTROOT's value. - * imake does not quote PROJECTROOT's value. - */ -#ifdef HAVE_CONFIG_H -#define DEFLOCALEFILTER2(x) x -#else #define DEFLOCALEFILTER2(x) #x -#endif #define DEFLOCALEFILTER1(x) DEFLOCALEFILTER2(x) #define DEFLOCALEFILTER DEFLOCALEFILTER1(PROJECTROOT) "/bin/luit" diff -c -r3.45 -r3.46 *** programs/Xserver/os/WaitFor.c 2004/03/17 23:53:033.45 --- programs/Xserver/os/WaitFor.c 2004/04/07 02:36:263.46 --- 697,716 ---- if (DPMSStandbyTime > 0) { DPMSStandbyTimer = TimerSet(DPMSStandbyTimer, 0, DPMSStandbyTime, DPMSStandbyTimerExpire, NULL); + } else if (DPMSStandbyTimer) { + TimerCancel(DPMSStandbyTimer); } if (DPMSSuspendTime > 0) { DPMSSuspendTimer = TimerSet(DPMSSuspendTimer, 0, DPMSSuspendTime, DPMSSuspendTimerExpire, NULL); + } else if (DPMSSuspendTimer) { + TimerCancel(DPMSSuspendTimer); } if (DPMSOffTime > 0) { DPMSOffTimer = TimerSet(DPMSOffTimer, 0, DPMSOffTime, DPMSOffTimerExpire, NULL); + } else if (DPMSOffTimer) { + TimerCancel(DPMSOffTimer); } } #endif --- programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_video.c 4 Mar 2004 17:47:46 -0000 1.1.4.2.6.1 +++ programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_video.c 18 Mar 2004 08:31:49 -0000 @@ -243,7 +243,6 @@ pGeode = GEODEPTR(pScreenInfo); - if (!pGeode->NoAccel) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL; XF86VideoAdaptorPtr newAdaptor = NULL; @@ -278,7 +277,6 @@ if (newAdaptors) xfree(newAdaptors); - } } /* client libraries expect an encoding */ @@ -413,17 +411,15 @@ void GX1ResetVideo(ScrnInfoPtr pScrn) { - GeodePtr pGeode = GEODEPTR(pScrn); + GeodePtr pGeode = GEODEPTR(pScrn); - if (!pGeode->NoAccel) { - GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr; + GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr; - DEBUGMSG(0, (0, X_NONE, "ResetVideo\n")); - GX1AccelSync(pScrn); - GFX(set_video_palette(NULL)); - GX1SetColorkey(pScrn, pPriv); - GFX(set_video_filter(pPriv->filter, pPriv->filter)); - } + DEBUGMSG(0, (0, X_NONE, "ResetVideo\n")); + if (!pGeode->NoAccel) GX1AccelSync(pScrn); + GFX(set_video_palette(NULL)); + GX1SetColorkey(pScrn, pPriv); + GFX(set_video_filter(pPriv->filter, pPriv->filter)); } /*---------------------------------------------------------------------------- @@ -537,7 +533,7 @@ DEBUGMSG(0, (0, X_NONE, "StopVideo\n")); REGION_EMPTY(pScrn->pScreen, &pPriv->clip); - GX1AccelSync(pScrn); + if (!pGeode->NoAccel) GX1AccelSync(pScrn); if (exit) { if (pPriv->videoStatus & CLIENT_VIDEO_ON) { GFX(set_video_enable(0)); @@ -580,8 +576,9 @@ Atom attribute, INT32 value, pointer data) { GeodePortPrivPtr pPriv = (GeodePortPrivPtr) data; + GeodePtr pGeode = GEODEPTR(pScrn); - GX1AccelSync(pScrn); + if (!pGeode->NoAccel) GX1AccelSync(pScrn); if (attribute == xvColorKey) { pPriv->colorKey = value; GX1SetColorkey(pScrn, pPriv); @@ -1002,7 +999,7 @@ GeodePtr pGeode = GEODEPTR(pScrn); /* DisplayModePtr mode = pScrn->currentMode; */ - GX1AccelSync(pScrn); + if (!pGeode->NoAccel) GX1AccelSync(pScrn); GFX(set_video_enable(1)); @@ -1353,7 +1350,7 @@ (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); pScreen->BlockHandler = GX1BlockHandler; - GX1AccelSync(pScrn); + if (!pGeode->NoAccel) GX1AccelSync(pScrn); if (pPriv->videoStatus & TIMER_MASK) { UpdateCurrentTime(); if (pPriv->videoStatus & OFF_TIMER) { --- programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_video.c 4 Mar 2004 17:47:46 -0000 1.1.4.2.6.1 +++ programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_video.c 18 Mar 2004 08:31:49 -0000 @@ -233,46 +233,44 @@ void GX2InitVideo(ScreenPtr pScreen) { - GeodePtr pGeode; - ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum]; + GeodePtr pGeode; + ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum]; - pGeode = GEODEPTR(pScreenInfo); + pGeode = GEODEPTR(pScreenInfo); - if (!pGeode->NoAccel) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL; - XF86VideoAdaptorPtr newAdaptor = NULL; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL; + XF86VideoAdaptorPtr newAdaptor = NULL; - int num_adaptors; + int num_adaptors; - newAdaptor = GX2SetupImageVideo(pScreen); - GX2InitOffscreenImages(pScreen); + newAdaptor = GX2SetupImageVideo(pScreen); + GX2InitOffscreenImages(pScreen); - num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors); + num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors); - if (newAdaptor) { - if (!num_adaptors) { + if (newAdaptor) { + if (!num_adaptors) { num_adaptors = 1; adaptors = &newAdaptor; - } else { + } else { newAdaptors = /* need to free this someplace */ - xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr *)); + xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr *)); if (newAdaptors) { - memcpy(newAdaptors, adaptors, num_adaptors * - sizeof(XF86VideoAdaptorPtr)); - newAdaptors[num_adaptors] = newAdaptor; - adaptors = newAdaptors; - num_adaptors++; + memcpy(newAdaptors, adaptors, num_adaptors * + sizeof(XF86VideoAdaptorPtr)); + newAdaptors[num_adaptors] = newAdaptor; + adaptors = newAdaptors; + num_adaptors++; } - } - } + } + } - if (num_adaptors) - xf86XVScreenInit(pScreen, adaptors, num_adaptors); + if (num_adaptors) + xf86XVScreenInit(pScreen, adaptors, num_adaptors); - if (newAdaptors) - xfree(newAdaptors); - } + if (newAdaptors) + xfree(newAdaptors); } /* client libraries expect an encoding */ @@ -416,16 +414,14 @@ void GX2ResetVideo(ScrnInfoPtr pScrn) { - GeodePtr pGeode = GEODEPTR(pScrn); + GeodePtr pGeode = GEODEPTR(pScrn); - if (!pGeode->NoAccel) { - GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr; + GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr; - GX2AccelSync(pScrn); - GFX(set_video_palette(NULL)); - GX2SetColorkey(pScrn, pPriv); - GFX(set_video_filter(pPriv->filter, pPriv->filter)); - } + if (!pGeode->NoAccel) GX2AccelSync(pScrn); + GFX(set_video_palette(NULL)); + GX2SetColorkey(pScrn, pPriv); + GFX(set_video_filter(pPriv->filter, pPriv->filter)); } /*---------------------------------------------------------------------------- @@ -537,7 +533,7 @@ REGION_EMPTY(pScrn->pScreen, &pPriv->clip); - GX2AccelSync(pScrn); + if (!pGeode->NoAccel) GX2AccelSync(pScrn); if (exit) { if (pPriv->videoStatus & CLIENT_VIDEO_ON) { GFX(set_video_enable(0)); @@ -580,8 +576,9 @@ Atom attribute, INT32 value, pointer data) { GeodePortPrivPtr pPriv = (GeodePortPrivPtr) data; + GeodePtr pGeode = GEODEPTR(pScrn); - GX2AccelSync(pScrn); + if (!pGeode->NoAccel) GX2AccelSync(pScrn); if (attribute == xvColorKey) { pPriv->colorKey = value; GX2SetColorkey(pScrn, pPriv); @@ -941,7 +938,7 @@ { GeodePtr pGeode = GEODEPTR(pScrn); - GX2AccelSync(pScrn); + if (!pGeode->NoAccel) GX2AccelSync(pScrn); GFX(set_video_enable(1)); @@ -1298,7 +1295,7 @@ (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); pScreen->BlockHandler = GX2BlockHandler; - GX2AccelSync(pScrn); + if (!pGeode->NoAccel) GX2AccelSync(pScrn); if (pPriv->videoStatus & TIMER_MASK) { UpdateCurrentTime(); if (pPriv->videoStatus & OFF_TIMER) {