summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Langasek <vorlon@debian.org>2006-09-18 10:21:11 +0000
committerSteve Langasek <vorlon@debian.org>2006-09-18 10:21:11 +0000
commit44916edfdcfa98d710c6571da3d53beaf047bad2 (patch)
tree1ce0a7bf27b6d76bed1ba274f8f0931978da8322
parent83ff1dfe48a862fade55c74fd8d52c6957b0e11a (diff)
downloadxf86-video-ati-frc-44916edfdcfa98d710c6571da3d53beaf047bad2.tar.gz
xf86-video-ati-frc-44916edfdcfa98d710c6571da3d53beaf047bad2.tar.bz2
merge ati 7.1 to trunk for upload to unstable
-rw-r--r--ChangeLog3448
-rw-r--r--Makefile.am9
-rw-r--r--Makefile.in275
-rw-r--r--README.ati2
-rw-r--r--README.ati.sgml2
-rw-r--r--aclocal.m41932
-rwxr-xr-xcompile153
-rwxr-xr-xconfig.guess617
-rw-r--r--config.h.in9
-rwxr-xr-xconfig.sub185
-rwxr-xr-xconfigure828
-rw-r--r--configure.ac63
-rw-r--r--debian/changelog41
-rw-r--r--debian/compat2
-rw-r--r--debian/control10
-rw-r--r--debian/copyright2
-rwxr-xr-xdebian/rules7
-rw-r--r--debian/xserver-xorg-video-ati.install2
-rw-r--r--debian/xserver-xorg-video-ati.manpages1
-rwxr-xr-xdepcomp103
-rwxr-xr-xinstall-sh477
-rw-r--r--ltmain.sh12
-rw-r--r--man/Makefile.am2
-rw-r--r--man/Makefile.in127
-rw-r--r--man/radeon.man24
-rwxr-xr-xmissing142
-rw-r--r--src/Makefile.am14
-rw-r--r--src/Makefile.in608
-rw-r--r--src/ati.h2
-rw-r--r--src/atiaccel.c31
-rw-r--r--src/atiadapter.h2
-rw-r--r--src/atiaudio.h2
-rw-r--r--src/atibus.c2
-rw-r--r--src/aticlock.c1
-rw-r--r--src/aticonfig.c31
-rw-r--r--src/aticonsole.c3
-rw-r--r--src/aticrtc.h2
-rw-r--r--src/atidac.c2
-rw-r--r--src/atidecoder.h2
-rw-r--r--src/atidga.c17
-rw-r--r--src/atidri.c95
-rw-r--r--src/atii2c.c31
-rw-r--r--src/atiio.h2
-rw-r--r--src/atiload.c71
-rw-r--r--src/atiload.h15
-rw-r--r--src/atimach64.c93
-rw-r--r--src/atimach64accel.c308
-rw-r--r--src/atimach64accel.h10
-rw-r--r--src/atimach64exa.c706
-rw-r--r--src/atimach64io.h70
-rw-r--r--src/atimach64render.c891
-rw-r--r--src/atimach64xv.c144
-rw-r--r--src/atimisc.c12
-rw-r--r--src/atimode.c4
-rw-r--r--src/atimodule.h2
-rw-r--r--src/atimono.h2
-rw-r--r--src/atioption.c14
-rw-r--r--src/atioption.h4
-rw-r--r--src/atipciids.h2
-rw-r--r--src/atipreinit.c3
-rw-r--r--src/atiprint.c3
-rw-r--r--src/atipriv.h2
-rw-r--r--src/atiprobe.c15
-rw-r--r--src/atiregs.h141
-rw-r--r--src/atiscreen.c444
-rw-r--r--src/atistruct.h84
-rw-r--r--src/atituner.h2
-rw-r--r--src/ativersion.h7
-rw-r--r--src/ativga.c2
-rw-r--r--src/r128.h13
-rw-r--r--src/r128_accel.c5
-rw-r--r--src/r128_dga.c2
-rw-r--r--src/r128_dri.c33
-rw-r--r--src/r128_dripriv.h2
-rw-r--r--src/r128_driver.c6
-rw-r--r--src/r128_probe.c3
-rw-r--r--src/r128_reg.h3
-rw-r--r--src/r128_version.h4
-rw-r--r--src/r128_video.c7
-rw-r--r--src/radeon.h126
-rw-r--r--src/radeon_accel.c90
-rw-r--r--src/radeon_bios.c13
-rw-r--r--src/radeon_common.h2
-rw-r--r--src/radeon_commonfuncs.c2
-rw-r--r--src/radeon_cursor.c68
-rw-r--r--src/radeon_dga.c8
-rw-r--r--src/radeon_dri.c121
-rw-r--r--src/radeon_driver.c432
-rw-r--r--src/radeon_exa.c106
-rw-r--r--src/radeon_exa_funcs.c215
-rw-r--r--src/radeon_exa_render.c133
-rw-r--r--src/radeon_macros.h3
-rw-r--r--src/radeon_mergedfb.c285
-rw-r--r--src/radeon_mergedfb.h2
-rw-r--r--src/radeon_mm_i2c.c7
-rw-r--r--src/radeon_probe.c3
-rw-r--r--src/radeon_reg.h1
-rw-r--r--src/radeon_render.c31
-rw-r--r--src/radeon_version.h4
-rw-r--r--src/radeon_video.c85
-rw-r--r--src/radeon_vip.c2
-rw-r--r--src/theatre.c19
-rw-r--r--src/theatre200.c129
-rw-r--r--src/theatre200.h23
-rw-r--r--src/theatre_detect.c25
-rw-r--r--src/theatre_detect.h7
106 files changed, 10171 insertions, 4222 deletions
diff --git a/ChangeLog b/ChangeLog
index c408ba4..de25959 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,438 +1,3078 @@
-2006-04-24 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONInitCrtcRegisters),
- (RADEONInitCrtc2Registers):
- Fix enabling of external VGA output on some cards with dual entity
- setup instead of MergedFB. This was broken due to bogus manipulations
- of a register between the 2 entities. This fix is a big "violent" in
- that it always enables the analog output regardless of what is
- plugged. It should work though (at the expense of some additional
- power consumption). A proper fix should be easy to do once Alex gets
- his output mapping rework in.
-
-2006-04-21 Dave Airlie <airlied@linux.ie>
-
- * src/radeon_driver.c: (RADEONRestoreMode):
- Bugzilla 6672: fix interrupts on radeon since memmap changes
-
-2006-04-21 Dave Airlie <airlied@linux.ie>
-
- * src/radeon.h:
- * src/radeon_dri.c: (RADEONDRICloseScreen),
- (RADEONDRIAllocatePCIGARTTable):
- * src/radeon_driver.c: (RADEONEnterVT), (RADEONLeaveVT):
- Add support for backing up the PCIE GART table on VT switch.
- This makes suspend/resume work a lot better on PCIE cards.
-
-
-2006-04-04 Eric Anholt <anholt@FreeBSD.org>
-
- * man/ati.man:
- * man/radeon.man:
- Bug #5632: Fix up ati.4 to explain that it is a wrapper driver for the
- other three. While here, touch up radeon.4, and add an authors list
- gleaned from checking copyright headers.
-
-2006-04-01 Alex Deucher <agd5f@yahoo.com>
-
- * src/radeon.h:
- * src/radeon_driver.c: (RADEONPreInitModes), (RADEONPreInit),
- (RADEONResetDPI), (RADEONSwitchMode):
- * src/radeon_mergedfb.c: (RADEONMergedFBCalcDPI),
- (RADEONMergedFBSetDpi), (RADEONMergedFBResetDpi):
- * src/radeon_mergedfb.h:
- - Fix dpi when switching from clone to dualhead with MergedFB.
- - Add ConstantDPI option to force a particlar dpi across mode changes
- Both based on Thomas Winischhofer's sis code.
-
-2006-03-27 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONRestoreMemMapRegisters),
- (RADEONInit):
- Fix a regression of my latest fix that broke color tiling on some
- setups. RADEONRestoreMemMapRegisters() must not clear CRTC_OFFSET_CNTL
- and friends unconditionally but only when there is a map change or it
- will clear them after the DRI updates the AGP location, thus turning
- tiling back off on the CRTC.
- Also remove a duplicate call to RADEONInitCommonRegisters().
-
-2006-03-23 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
- * src/radeon_reg.h:
- * src/radeon_video.c: (RADEONResetVideo), (RADEONDisplayVideo),
- (RADEONPutImage): Use programmable tap coefficients for (hopefully)
- better video image quality when downscaling. Remove unnecessary code
- programming the tap coefficients twice. Disable some code which is
- supposed to improve filtering quality but causes very visible image
- quality problems at least with rv250 when upscaling. Fix potentially
- broken FOURCC_RGB16T format (untested if it was broken, untested if it
- works now...). Change some magic numbers to (new) macro defines.
-
-2006-03-23 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONRestoreMode),
- (RADEONInitCrtcRegisters), (RADEONInitCrtc2Registers):
- Call RADEONRestoreCommonRegisters() before
- RADEONRestoreCrtc2Registers() instead of after. I can't find any good
- reason why we did it backward until now and it definitely causes
- problems as the workaround for VT switch in
- RADEONRestoreCommonRegisters() will break output to the secondary head
- in various situations. Also does an unrelated minor update to a
- comment.
-
-2006-03-18 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONRestoreMemMapRegisters),
- (RADEONRestoreCrtcRegisters), (RADEONRestoreCrtc2Registers):
- * src/radeon_reg.h:
- Clear the offsets when updating the memory map instead of when
- enabling the CRTCs and try to make that code more reliable. Doesn't
- disable the CRTCs beforehand.
-
-2006-03-18 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
- * src/radeon_dri.c: (RADEONDRIGetVersion)
- * src/radeon_driver.c: (RADEONGetAccessibleVRAM):
- * man/radeon_reg.h:
- * src/radeon_video.c:
- Fix various small cosmetic issues. Change a driver message, get the order
- right for requesting drm versions, replace the use of some numbers with
- the respective macro defines in radeon_video.c, and add some more macro
- defines. None of that really matters.
-
-2006-03-17 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONGetAccessibleVRAM),
- (RADEONPreInitVRAM):
- Add missing return statement (the driver would not start randomly),
- add RV410 to the list of new generation cards for the memory map
- setup and fix a bogus message.
-
-2006-03-16 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONInitCrtcRegisters),
- (RADEONInitCrtc2Registers), (RADEONDoAdjustFrame):
- Fix incorrect CRTC2_OFFSET values when using old-style dual head (not
- MergedFB). Fixes Xinerama for me.
-
-2006-03-16 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONWaitForVerticalSync),
- (RADEONWaitForVerticalSync2), (RADEONLoadPalette),
- (RADEONScreenInit), (RADEONRestoreMemMapRegisters),
- (RADEONRestoreCrtcRegisters), (RADEONRestoreCrtc2Registers),
- (RADEONDoAdjustFrame), (RADEONCloseScreen):
- * src/radeon_reg.h:
- Add various workarounds that seem to fix some remaning lockup
- scenarios I'm experiencing with the driver when setting the memory
- map. Some of the magic delays are a bit dodgy but they seem to work, I
- suppose I can't do better now without help from ATI. Also removed some
- really too noisy debug messages.
-
-2006-03-15 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon.h:
- * src/radeon_dri.c: (RADEONDRIScreenInit),
- (RADEONDRIDoCloseScreen), (RADEONDRIFinishScreenInit),
- (RADEONDRIStop), (RADEONDRICloseScreen):
- * src/radeon_driver.c: (RADEONCloseScreen):
- Fix various issues with DRI & server recycle by putting DRICloseSreen
- in the normal CloseScreen callback chain at a spot that matches the
- call to DRIFinishScreenInit in order to unwrap at the right time.
-
-2006-03-13 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_video.c: (RADEONSetTransform):
- Fix typo in the function setting the color space transformation
- factors for old radeon
-
-2006-03-13 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONPreInitVRAM),
- (RADEONPreInitChipType), (RADEONPreInit):
- Earliest fix introduced a bug due to another chicken & egg problem in
- card detection. Now split PreInitConfig into PreInitChipType and
- PreInitVRAM so that PreInitDRI can be done just in between. Restores
- proper AGPx4 functionality (when enabled)
-
-2006-03-12 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/ati.h:
- * src/r128_dri.c:
- * src/r128_driver.c:
- * src/r128_probe.c:
- * src/radeon_driver.c:
- * src/radeon_mm_i2c.c:
- * src/radeon_probe.c:
- * src/radeon_video.c:
- * src/radeon_vip.c:
- * src/atipciids.h:
- Stop using xf86PciInfo.h, instead use a local copy of the PCI IDs
- we need in atipciids.h so we can update the ATI driver independently
- of the server when new chips are added
-
-2006-03-10 Alan Coopersmith <alan.coopersmith@sun.com>
-
- * src/radeon_driver.c:
- Add #ifdef XF86DRI guards around references to info->allowPageFlip
- and info->depthMoves, since they are only defined if building with
- DRI.
-
-2006-03-10 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
- * man/radeon.man:
- * src/radeon_driver.c: (RADEONSetupMemXAA_DRI), (RADEONScreenInit):
- Use "FBTexPercent" option for XAA too (only for increasing
- memory reserved for textures).
-
-2006-03-10 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon.h:
- * src/radeon_dri.c: (RADEONDRIGartHeapInit), (RADEONDRIGetVersion),
- (RADEONDRIScreenInit), (RADEONDRIInitPageFlip), (RADEONDRIResume),
- (RADEONDRIAllocatePCIGARTTable):
- * src/radeon_driver.c: (RADEONInitMemoryMap),
- (RADEONGetAccessibleVRAM), (RADEONPreInitConfig),
- (RADEONPreInitDRI), (RADEONPreInitColorTiling), (RADEONPreInit),
- (RADEONScreenInit), (RADEONRestoreMode):
- More memory map fixes !!! This time, we add a way to get the DRM
- kernel module version early, in order to properly limit the
- framebuffer size when a module that doesn't support the new map is
- loaded. That will improve backward compatibility. I also made the
- minimum required kernel module version 1.3 which hopefully shouldn't
- be a problem for anybody, and cleaned up the ordering in which we test
- for DRM version to enable features
-
-2006-03-09 Michel Dänzer <michel@daenzer.net>
-
- * src/radeon_driver.c: (RADEONGetClockInfo), (RADEONGetVRamType),
- (RADEONPreInitConfig):
- Bugzilla #5766 <https://bugs.freedesktop.org/show_bug.cgi?id=5766>
- Patch #4636 <https://bugs.freedesktop.org/attachment.cgi?id=4636>
- - Acknowledge that RN50 only has one CRTC, and use this to distinguish
- it from RV100.
- - Fix detection of RN50 memory type and bus width.
- - Model RN50 memory bandwidth limits by capping the pixel clock range
- based on memory clock, bpp and memory bus width.
- (ATI Technologies Inc.)
-
-2006-03-03 Michel Dänzer <michel@daenzer.net>
-
- * man/radeon.man:
- * src/radeon_driver.c: (RADEONScreenInit):
- * src/radeon_exa.c: (RADEONSetupMemEXA):
- Add Option "FBTexPercent" to override the amount of video RAM reserved
- for OpenGL textures with EXA.
-
-2006-03-02 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONPreInitConfig):
- Fix the fix ... I didn't interpret PciInfo->size properly and forgot
- that the function works in Kb not bytes... Ooops.
-
-2006-03-02 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONInitMemoryMap),
- (RADEONPreInitConfig):
- Extend the alignement workaround to post-rv280 chips as well (thanks
- Hui) and also limit the CPU accessible memory to the size of the PCI
- BAR size (yeah, it was passed to the driver, I just got blind for a
- while it seems)
-
-2006-03-01 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_driver.c: (RADEONInitMemoryMap),
- (RADEONPreInitConfig):
- Workaround for rv280 bug which needs the framebuffer memory mapping
- to be aligned to its own size. Also add back limit of 128Mb of mapped
- fb space for now until I fully sort out what's up with dual function
- cards. I would really need to access the PCI BAR sizes here but that
- information seem to be missing from the PCI info passed to the driver.
-
-2006-02-27 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
- * src/atichip.h:
- * src/atichip.c:
- * src/radeon_chipset.h:
- Add the newly added (and tons of previously forgotten ones) pci ids
- to the ati wrapper too (probably not required for it to work as
- everything should default to radeon anyway there).
-
-2006-02-26 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon.h:
- * src/radeon_dri.c: (RADEONDRIFinishScreenInit),
- (RADEONDRIInitPageFlip):
- * src/radeon_driver.c: (RADEONScreenInit):
- Fix page flipping with XAA. The new code ended up calling
- ShadowFBInit() before XAAInit(), which breaks ShadowFB.
-
-2006-02-24 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
- * src/radeon.h:
- * src/radeon_chipset.h:
- * src/radeon_driver.c:
- * src/radeon_probe.c:
- Add pci ids known to exist (see #4284 for instance). There are still
- entries which probably don't really exist (cancelled cards and such),
- leave them as-is. Fix the name of some entries, mostly based on the
- .inf file of the newest catalyst driver. Use own family id for rv410
- and rs400, though there is no different code (yet?).
-
-2006-02-17 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon.h:
- * src/radeon_common.h:
- * src/radeon_commonfuncs.c: (RADEONWaitForIdle):
- * src/radeon_cursor.c: (RADEONCursorAllocEXA),
- (RADEONSetCursorColors), (RADEONSetCursorPosition),
- (RADEONLoadCursorImage), (RADEONHideCursor), (RADEONShowCursor),
- (RADEONLoadCursorARGB), (RADEONCursorInit):
- * src/radeon_dri.c: (RADEONDRIScreenInit),
- (RADEONDRIFinishScreenInit), (RADEONDRICloseScreen),
- (RADEONDRIRefreshArea):
- * src/radeon_driver.c: (RADEONMapFB), (RADEONInitMemMapRegisters),
- (RADEONInitMemoryMap), (RADEONGetAccessibleVRAM),
- (RADEONPreInitConfig), (RADEONLoadPalette), (RADEONBlockHandler),
- (RADEONScreenInit), (RADEONRestoreMemMapRegisters),
- (RADEONAdjustMemMapRegisters), (RADEONRestoreSurfaces),
- (RADEONSaveSurfaces), (RADEONChangeSurfaces), (RADEONRestoreMode),
- (RADEONSaveMemMapRegisters), (RADEONSaveMode), (RADEONSave),
- (RADEONInitDispBandwidth), (RADEONInitPLLRegisters),
- (RADEONInitPLL2Registers), (RADEONInit), (RADEONModeInit),
- (RADEONSaveScreen), (RADEONSwitchMode), (RADEONDoAdjustFrame),
- (RADEONAdjustFrame), (RADEONEnterVT), (RADEONLeaveVT),
- (RADEONCloseScreen), (RADEONDisplayPowerManagementSet):
- * src/radeon_reg.h:
- * src/radeon_render.c: (RADEONSetupRenderByteswap):
- Memory map and misc fixes. This completely reworks the way the driver
- detects available & accessible video memory and initializes the card
- internal memory map. Along the way, I re-ordered some of the stuffs
- in pre-init in order to remove some dodgy codepath, fixed various
- init, exit and vt switch issues, and overall made the driver more
- robust. The full memory map fix requires an updated DRM. The X driver
- no longer tries to position the AGP aperture, this becomes entirely
- DRM responsibility.
-
-2006-02-16 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_accel.c: (RADEONEngineRestore):
- The engine setup would trigger a bogus line write before the proper
- addresses are setup, thus causing the card to try to bus master over
- the system bus to some stale location (usually 0 but could depend on
- whatever was used before X). Remove that useless init bit, and always
- setup some good enough engine source & destination pointers in case we
- have some other spurrious engine activity going on.
-
-2006-02-13 Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- * src/radeon_exa_render.c: (R100TextureSetup), (R200TextureSetup):
- Fix EXA acceleration of textures with byteswap or tiling
- From John Clemens <john@deater.net>
-
-2006-02-06 Eric Anholt <anholt@FreeBSD.org>
-
- * src/radeon_exa_render.c:
- Fix a copy'n'paste-o in the EXA render implementation that resulted in
- [ax]8b8g8r8 pict formats not being supported on r200, but no other
- issues.
-
-2006-01-19 Daniel Stone <daniel@freedesktop.org>
+commit 6d2028b84ff2b82c849b74776258f8e52c952e36
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Aug 25 10:05:44 2006 +1000
+
+ and of course it takes two commits to do a simple commit
+
+commit e90c6feddbcd719fda3bbc3d48fd55045e9d5adc
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Aug 25 09:59:58 2006 +1000
+
+ add changelog hook from nv driver
+
+commit 1e06212f792d1ed1f7545e16824b86fbd34fa284
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Thu Aug 24 19:52:30 2006 -0400
+
+ Enable CPIO in the atimisc driver on ia64 platforms.
+
+ This fixes many mach64s, but potentially breaks mach32. Mach64 is widespread
+ on ia64 machines but PCI mach32's are quite rare on any platform.
+
+commit dfa47b09b5b8d7eeaa3f8ae629ebb3c7efb51511
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Thu Aug 24 19:50:46 2006 -0400
+
+ Disable DRI on xpress 200{,m} since we know it's broken.
- * src/radeon_driver.c:
- Bug #5656: Set all Radeon XPRESS 200 R[CS]4xx-based chips to
- have IsIGP = 1, fixing modesetting issues.
+commit 1dcd9b1f75ba2307beb42556aa7f2f945171d5fb
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Thu Aug 24 19:42:26 2006 -0400
-2006-01-12 Alan Coopersmith <alan.coopersmith@sun.com>
-
- * src/theatre200_module.c (theatre200VersRec):
- * src/theatre_detect_module.c (theatre_detectVersRec):
- XF86_VERSION_CURRENT -> XORG_VERSION_CURRENT
+ Disable DRI on RN50 in a more pleasant way.
+
+ Rather than publish a non-existant driver name for RN50, just don't bother
+ initializing it in the first place.
-2006-01-12 Alan Coopersmith <alan.coopersmith@sun.com>
+commit 64b18e246586b1043a12f381a9d4c834464ed9b5
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Aug 25 09:40:04 2006 +1000
- * src/radeon_driver.c (RADEONPreInitModes):
- When failing to parse MetaModes, reset CRT2pScrn to NULL after
- free'ing it so we don't crash when trying to use it later
- (such as in RADEONFreeRec).
+ update version numbers for release
-2006-01-08 Adam Jackson <ajax@freedesktop.org>
+commit be229d97e1f0282f2099c7ace7cb257a2738a58f
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Aug 25 09:39:46 2006 +1000
- * src/radeon.h:
- Bug #5523: Make radeon compile without USE_XAA. (Tilman Sauerbeck)
+ make colortiling default to on all cards
-2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 750ed51bc3d5119e2d2a91a05ae5a971dcd3b88a
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Mon Aug 7 17:09:02 2006 +0300
+
+ [mach64] RENDER support: drop caching DP_WRITE_MASK.
+
+ Caching DP_WRITE_MASK causes artifacts, e.g. with evas_xrender_x11_test.
+
+commit b2beea2fa8949874d3d57fb9b43fe85cc08a8bff
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 5 18:36:24 2006 +0300
+
+ [mach64] RENDER support: save/restore, cache texture registers.
- * configure.ac:
- Update package version for X11R7 release.
+commit 43aaed99950640c3695b3c2b91faabf00c6338a7
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 12 22:12:07 2006 +0300
-2005-12-19 Alan Coopersmith <alan.coopersmith@sun.com>
+ [mach64] RENDER support (bug #6877).
+
+ RENDER accleration is disabled by default. It is strongly recommended that the
+ patch from bug #6772 and the 'exa-damagetrack branch' are merged in the xserver
+ before enabling RENDER acceleration. To enable RENDER acceleration, add the
+ following in xorg.conf:
+
+ Section "Device"
+ [...]
+
+ Option "AccelMethod" "exa"
+ Option "RenderAccel" "true"
+ EndSection
+
+commit d113f40fd97408661193895ff3aa82262f100143
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sat Aug 12 17:16:33 2006 +1000
+
+ radeon: make some local data static
+
+ This is inspired by a patch in XFree86 from David Dawes, it isn't the
+ same as we have different gamma curves.
- * README.ati.sgml:
- * man/radeon.man:
- Typo fixes, mailing list & url updates, and other changes
- to prepare for X11R6.9 & 7.0 releases.
+commit a1da2b5e0a38feae01107676a76bdc5c185ad34b
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 5 03:18:34 2006 +0300
-2005-12-15 Alan Coopersmith <alan.coopersmith@sun.com>
+ [mach64] Halve max w/h for hardware-accelerated operations.
+
+ EXA hits these limits for some operations on offscreen pixmaps and GTPRO seems
+ to support the reduced limits.
- * man/r128.man:
- Bugzilla #5238 <https://bugs.freedesktop.org/show_bug.cgi?id=5238>
- Patch #3978 <https://bugs.freedesktop.org/attachment.cgi?id=3978>
- r128 man page dualhead note update (Alex Deucher)
+commit a66c8d2f9855caa10142b39f155dd8232b1f2389
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 5 03:16:56 2006 +0300
-2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
+ [mach64] EXA: add memcpy-based UTS/DFS.
+
+ EXA hits more optimized paths when it does not have to fallback because of
+ missing UTS/DFS.
+
+commit 0fb8503d60cf646c91a806f9ed322f9ceff18baa
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 5 03:16:15 2006 +0300
+
+ [mach64] XAA: minor refactoring of memory manager setup.
+
+ - DRI: factor out to separate function and add comments on layout
+ - no DRI: factor out to separate function, maxScanlines is always equal to
+ ATIMach64MaxY
+
+commit e203d86643d5d70bf18248712d05b72b79aee705
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Aug 5 03:15:42 2006 +0300
- * configure.ac:
- * src/r128_version.h:
- * src/radeon_version.h:
- Update package version number for final X11R7 release candidate.
- Bump driver version number.
+ [mach64] EXA support.
+
+commit dc1e289a611a17090e6dc7ae8a8d3f26d20df4eb
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sat Jul 29 01:05:35 2006 +0300
+
+ Bug #6623: Fix I2C bus Mach64 initialisation failure.
+
+commit b377f403e0cd5253402ef3945e5944d1a2763a94
+Author: Marc Aurele La France <tsi@xfree86.org>
+Date: Sat Jul 29 01:03:34 2006 +0300
+
+ Fix warnings for Option:1 bit fields.
+
+commit 91b8b0ca41ad0b9659f0982a05148cab8558e9d5
+Author: Marc Aurele La France <tsi@xfree86.org>
+Date: Sat Jul 29 01:02:48 2006 +0300
+
+ Bug #807: copy throttling.
+
+ Fix corruption associated with the engine randomly not waiting for a copy
+ operation to commit its results.
+
+commit 7800407a2db4b7307192bf3b43fffb9c4748b9c0
+Author: Marc Aurele La France <tsi@xfree86.org>
+Date: Sat Jul 29 01:00:56 2006 +0300
+
+ Bug #807: invalidate read-back cache.
+
+ Fix corruption when scaling 1-pixel wide pixmaps, in which case the first CPU
+ read of the framebuffer will return stale data.
+
+ This bug always manifests itself in mach64 EXA (to be committed soon), with
+ this patch mach64 EXA passes rendercheck.
+
+commit 49b11c540d37152eee4907ab30353ede01e4fb56
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Jul 29 00:52:28 2006 +0300
+
+ Bug #807: split out TestRegisterCaching block for DP regs.
+
+commit 290c5aaa580428bc4748a47e4b9bcc22b90fc8d4
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date: Sat Jul 29 00:51:53 2006 +0300
+
+ Bug #807: split out TestRegisterCaching block for DP regs.
+
+commit fba8c839b47e2c8d6a6d65950c3431ff5b870aa0
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jul 23 18:51:47 2006 +0200
+
+ Bug #6819: Fix broken rendering with *8b8g8r8 source formats.
+
+ Use the corresponding texture formats with R200 family.
+
+ Unfortunately, it looks like the R100 family can't accelerate these source
+ formats, so we have to fall back for them.
-2005-12-14 Adam Jackson <ajax@freedesktop.org>
+commit 60ebe97e2d5d27c2bf4213e201cef74503809cb6
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Mon Jul 3 19:37:28 2006 +0200
- * src/r128_accel.c:
- * src/r128_driver.c:
- * src/radeon_driver.c:
- * src/radeon_probe.c:
- Bug #1760: Fix ati wrapper multihead to be dlloader friendly.
+ Move variable declarations before statements to be C89 compatible
-2005-12-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 6900ff3c5e574881b1470e2363b200e99ab8bf3e
+Author: Alex Williamson <alex.williamson@hp.com>
+Date: Mon Jul 3 13:09:47 2006 +0200
- * src/Makefile.am:
- Add configure options to allow hard-coded paths to be changed.
+ Bug #6872: Disable digital output while reading ROM with Radeon 7000.
+
+ This is a workaround for ATI Radeon 7000 erratum F1.
-2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 920ac1f56fad6f48a30e65836ce054815f270738
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Mon Jul 3 01:21:18 2006 +0200
- * man/Makefile.am:
- Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
+ Do even less cache flushing when the previous engine mode is known.
+
+ OTOH, flush everything when the previous engine mode is unknown, and mark the
+ engine mode as unknown in a couple more cases.
-2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit dd0dd4bab76907b4b1b6d814f24e73e57d71f587
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Mon Jul 3 01:10:10 2006 +0200
- * configure.ac:
- Update package version number for X11R7 RC3 release.
+ Bug #6762: Remove gratuitous cache flushing.
-2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 22f165f290f57e638d198f24a37f62fc16b72bae
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Mon Jul 3 00:39:45 2006 +0200
- * configure.ac:
- Remove extraneous AC_MSG_RESULT.
+ Build and warning fixes for !defined(USE_XAA).
-2005-11-20 Adam Jackson <ajax@freedesktop.org>
+commit ea5105230c7c3519730b8d3c250e9ba9a4e4374a
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Mon Jul 3 00:03:22 2006 +0200
- * configure.ac:
- Bump libdrm dep to 2.0.
+ Reserve HW cursor memory statically instead of from EXA offscreen.
+
+ As a result, quite a bit of code can be removed that attempted to deal with the
+ EXA offscreen memory disappearing, with varying success. Because the HW cursor
+ memory is now always immediately after the front buffer and before the back
+ buffer, this also fixes bug #6808.
+
+ As the HW cursor memory is now reserved statically with EXA and XAA, change
+ RADEONUseHWCursor() to check info->cursor instead of info->cursor_offset, for
+ which 0 might become valid with HW cursor enabled in the future.
+
+ Change info->cursor_offset from unsigned long to CARD32 as the corresponding
+ register is 32 bits wide, and to avoid issues with printf.
-2005-11-29 Adam Jackson <ajax@freedesktop.org>
+commit 66586f905857ea5bf37cb5d34949cd450a9ed067
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jul 2 23:38:20 2006 +0200
- * configure.ac:
- Only build dlloader modules by default.
+ Clean up some redundant code.
-2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 1159c85861dc507ebf323aca82e32fcc67726420
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jul 2 18:24:28 2006 +0200
- * configure.ac:
- Update package version number for X11R7 RC2 release.
+ Bug #6548: Fix playback of interlaced video with more than 1023 lines.
+
+ This will still break with 2048 lines...
-2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit 11bedb7c845fc6074383890d5525315aebe05f2c
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jul 2 17:03:23 2006 +0200
- * configure.ac:
- Update pkgcheck depedencies to work with separate build roots.
+ Bug #6939: Disable RENDER acceleration by default on RN50.
+
+ Based on patch from Weixing Zhang, but still allows enabling it with Option
+ "RenderAccel".
-2005-10-20 Donnie Berkholz <spyderous@gentoo.org>
+commit 4a0c22e32901a510c7aad070be25c31519c284e3
+Author: Weixing Zhang <anzhang@ati.com>
+Date: Sun Jul 2 16:55:25 2006 +0200
- * configure.ac: Bug #4831
- <https://bugs.freedesktop.org/show_bug.cgi?id=4831>. Check for x86_64 in
- addition to amd64 in host_cpu.
+ Bug #6939: Disable 3D acceleration on RN50 by setting invalid ClientDriverName.
+
+commit 9c4a1e3300d30b23806988aa9328fc6ef92e2663
+Author: Frank Gevaerts <frank@gevaerts.be>
+Date: Thu Jun 29 18:21:22 2006 +0200
+
+ Fix build for !defined(USE_EXA).
+
+commit ee0544b670567491b7770f469a64a6cd85519ba1
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 29 18:19:58 2006 +0200
+
+ Remove unused variables.
+
+commit 15c556f5a8c9069d3dd00ce139d46c39b7298951
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 29 18:18:21 2006 +0200
+
+ Don't declare unused variables on __powerpc__ and __alpha__.
+
+commit 055ac2836ec0afd51cf554d043a59068c36a07d3
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 29 18:14:45 2006 +0200
+
+ Fix strict aliasing violation flagged by gcc -Wall.
+
+commit 4b1904017caa976c138594a86e75feaf470e72b5
+Author: Dave Airlie <airlied@linux.ie>
+Date: Mon Jun 26 20:34:34 2006 +1000
+
+ radeon: force CP and VIP clocks on some r300 and rv100 chips.
+
+ fglrx appears to do this on r300 and Jerome Glisse has spent most of his
+ life tracking down what caused the 9800 to lockup. This is my attempt to
+ fix this. Please report if it works for you.
+
+ Signed-off-by: Dave Airlie <airlied@linux.ie>
+
+commit c5d8c8db3e75976687bfb364f0a7b235c7ae8793
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sat Jun 24 16:01:19 2006 +0200
+
+ Bug #7274: Fix corruption with 'small' accelerated DownloadFromScreen transfers.
+
+commit f25ba3dc0e7850f0b1b78f54c0e7211bf2e81b3a
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Fri Jun 16 11:38:18 2006 +0200
+
+ Remove obsolete FIXME.
+
+commit 764013ec61b9043f1487513658e374569f7154a9
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Fri Jun 16 10:56:02 2006 +0200
+
+ Use AC_CHECK_HEADER() to check for exa.h
+
+commit 3c701d49b3eb7adb82267cec53163e475913aca3
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Fri Jun 16 09:59:29 2006 +0200
+
+ Use AC_MSG_RESULT() instead of echo for check results.
+
+commit dbef62615f38aebf4cdc579e3b26a7e7c719abc4
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Fri Jun 16 08:50:49 2006 +0200
+
+ conditionally declare pPCI and PciReg, too
+
+commit a01c01787cfbe3706ae7747cde1657abd79ecdaa
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Wed Jun 21 09:38:47 2006 +0200
+
+ Bug #7283: Build fixes for !defined(XF86DRI).
+
+ Thanks to Matthieu Herrb for pointing out some of these.
+
+commit 79d1c573133e64ddf4446b6bb0eaab4a5a6c73ab
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jun 18 17:39:09 2006 +0200
+
+ Implement accelerated EXA DownloadFromScreen hook.
+
+ x11perf -getimage numbers only increase by about 20-30% on my PowerBook with an
+ M9, but by about 100 times(!) with a PCIe X550. I suspect the former could
+ perform better with PCI as opposed to AGP transfers, which would also remove
+ the need to disable this by default with AGP.
+
+commit 2bcdc7cfd013bd457d35f927390e5cc3544f30f1
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jun 18 16:01:00 2006 +0200
+
+ Remove #include <fbdevhw.h>, not used here.
+
+commit 25a5ccb63a9e3074b4c8eaf48844877d84ff76bb
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jun 18 15:26:55 2006 +0200
+
+ Prefer visuals with stencil when it's hardware acclerated.
+
+ Also make the formatting of the if statements consistent.
+
+commit 8fcc436f19f9c1371295af2d0c45608fb43c584b
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jun 18 15:16:08 2006 +0200
+
+ Take part of the blame for the radeon driver.
+
+commit c8366d7b457565a06acdf6b40c5448c7f13f1641
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Sun Jun 18 14:24:14 2006 +0200
+
+ Add Option "DepthBits".
+
+ This allows getting higher depth buffer precision and stencil hardware
+ acceleration in depth 16 or saving some video RAM at the cost of these features
+ in depth 24.
+
+commit 23a21d00db6f3b88b54c44648f968018a03677d3
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Fri Jun 16 16:37:07 2006 +1000
+
+ [PATCH] move the declaration of pMach64 into the correct ifndef statement
+ Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
+ Signed-off-by: Dave Airlie <airlied@linux.ie>
+
+commit c6b33db9d2c751e34c2152b0bb7e0e84a812589f
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Jun 16 16:22:03 2006 +1000
+
+ ati: prepare for release
+
+ Update some versions for release
+
+commit 9c534b5330534fc6cf392936a9b200a5128c787c
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 16:09:55 2006 +0200
+
+ Some more ignores.
+
+commit 3d68698647fb17a6f5ae9a225f552cb0130fa946
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 16:07:15 2006 +0200
+
+ Fix semantic glitches pointed out by gcc -Wall.
+
+ The radeon driver builds warning-free with gcc -Wall here now.
+
+commit ab2b48e0df328fd08a2412911126b3184a601aea
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 16:06:13 2006 +0200
+
+ Remove another unused variable.
+
+commit 56bd5a370472663af5607cd327f757367b238db0
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 15:35:05 2006 +0200
+
+ Fix some more cosmetic warnings.
+
+commit ec93e08b24f7c0e583970d08bfe18ad142e6b047
+Merge: 051c49d... 6ca9862...
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 15:03:27 2006 +0200
+
+ Merge branch 'master' of ssh+git://git.freedesktop.org/git/xorg/driver/xf86-video-ati
+
+commit 6ca986242c80bcfe7ca2d435a772bbdf034892c4
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 21:24:46 2006 +1000
+
+ remove unused variable
+
+commit 9a5f5bc0d3f5e62b79355993ca6246382394daee
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 21:24:16 2006 +1000
+
+ remove all printf specifier warnings on Linux
+
+commit 051c49d0f002c72d1d8f15f6df264d8b093d4e95
+Merge: a840afc... dfac819...
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 13:10:44 2006 +0200
+
+ Merge branch 'master' of ssh+git://git.freedesktop.org/git/xorg/driver/xf86-video-ati
+
+commit dfac8191dbda29ef7f6ce33d7356fee89c17d59b
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 21:05:16 2006 +1000
+
+ fix last ati*.[ch] format specifiers
+
+commit 33525540f3a9d6760c6edcfe765d2a004a6b894f
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 21:03:01 2006 +1000
+
+ fix more printf formats
+
+commit 6bcf6f29af24b6725e097dd72af8e8b9f6d0676c
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 20:59:33 2006 +1000
+
+ some more unused variable cleanups
+
+commit a840afc75a0453b4694e3f987ebdbddc6844a169
+Merge: c90c49d... d511ef4...
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 12:46:58 2006 +0200
+
+ Merge branch 'master' of ssh+git://git.freedesktop.org/git/xorg/driver/xf86-video-ati
+
+commit d511ef486a15b582e5d1708a17a00701f5cf1ccd
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 20:39:22 2006 +1000
+
+ ati/r128: add includes to get C function decls
+
+ Also fix a void pointer cast
+
+commit f46c3bebe821ee0031770d98d04bd406d1abb9ed
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 20:34:56 2006 +1000
+
+ fix some more unused variables and bad parameter passing
+
+commit 6c3f81683abab8ff6b8f2fcaf01a2a1a63af5ef6
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 20:25:00 2006 +1000
+
+ ati: fix -Wall in atidri.c
+
+ atidri.c has some parameter passing bugs, fixed those and cleaned other
+ warnings.
+
+commit 58c6aac0669101481ef6b8217e5cede4573ece42
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 19:58:11 2006 +1000
+
+ theatre: fix all -Wall warnings in theatre*
+
+ This fixes all the warnings, it doesn't clean up the horrible mess that is
+ theatre*.[ch].
+
+commit c90c49da3844f93d2d29070b15bb7def72b98b0f
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 10:29:46 2006 +0200
+
+ Collapse .gitignore files into single toplevel file, sorted with LC_ALL=C.
+
+ Suggested by Keith Packard.
+
+commit b7a3e4c9b33f72ae447f99c0c765f24fce988142
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 09:45:12 2006 +0200
+
+ Fix some implicit function declarations.
+
+commit 556ddc9c41020271e92389a3900d097ec443c625
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date: Thu Jun 15 09:30:43 2006 +0200
+
+ .cvsignore -> .gitignore
+
+commit 4708327969a21fc171dcd80a1b506028cc8e4f90
+Author: Dave Airlie <airlied@linux.ie>
+Date: Thu Jun 15 07:37:03 2006 +1000
+
+ ati: remove Changelog from ATI driver.
+
+commit ecbec8379c24bd6c16ced674d5e6affcd3985e46
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Thu Jun 8 17:29:12 2006 +0000
+
+ Bug #5678: Fix setting of transfer mode for AGPv3 devices (Tilman
+ Sauerbeck).
+
+commit 874ff105bc63c4fc242fbabaec04fde2cb81fdd4
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Jun 3 10:50:33 2006 +0000
+
+ Bug #1889: Stop the CCE before an engine reset. (Conn)
+
+commit f9db5595fe4d62c54b3a501b2af64b4e2b7035cd
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Sun May 21 14:33:34 2006 +0000
+
+ Derive ATI_VERSION_{MAJOR,MINOR,PATCH} from package version in order to
+ hopefully confuse bug triagers a little less.
+
+commit 25ba85cab8b3d831da646fef19f01769410fc958
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Wed May 10 02:46:37 2006 +0000
+
+ - remove obsolete option "OverlayOnCRT2" (bug 6488)
+
+commit ede75fe2b1850a4d9f03c724b7c1d1ed65e60f2f
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue May 9 14:40:23 2006 +0000
+
+ Drop support for radeon DRM <= 1.7. The 2.4 kernel has version 1.7, and
+ various problems up to system hangs on X server startup have been
+ reported with that and DRI enabled.
+
+commit bc93a46c4fe499f23b9c0ff52e2e36b4c587f7d6
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Mon May 8 09:29:34 2006 +0000
+
+ Bugzilla #4640 <https://bugs.freedesktop.org/show_bug.cgi?id=4640> Patch
+ #5273 <https://bugs.freedesktop.org/attachment.cgi?id=5273>:
+ Add cases for FOURCC_RGBA32 and FOURCC_RGB24. This prevents clients from
+ receiving incorrect data sizes with these formats. (Jan Schmidt)
+
+commit 2b0cdd9448a24ea067b0d78f319b99c1041df2e0
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Wed May 3 04:25:27 2006 +0000
+
+ Enable decoding of version 4 TMDS PLL config tables, they actually work,
+ the problem in the comment only concerned pre-production cards that Hui
+ tested apparently. Also set back the default value to what it was
+ initially, fixes some more cards that don't have a proper table (Mac
+ Mini for example)
+
+commit 36c04b88416905b9ae305583e8e34fefdbfafc50
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Mon May 1 17:49:41 2006 +0000
+
+ Bugzilla #6755 <https://bugs.freedesktop.org/show_bug.cgi?id=6755> Patch
+ #5536 <https://bugs.freedesktop.org/attachment.cgi?id=5536>:
+ Change HostDataBlit interface to take dst_offset_pitch and coordinates
+ instead of just a destination pointer, as the latter is not sufficient
+ with tiling. Also, use HW clipping to avoid overwriting destination
+ data outside of the specified width.
+ Adapt to new HostDataBlit interface. This fixes corruption with
+ UploadToScreen to the front buffer (from exaPutImage).
+
+commit b90d3710e67caad0686efab491c2b76ae877920c
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Sat Apr 29 21:30:23 2006 +0000
+
+ Bugzilla #1992 <https://bugs.freedesktop.org/show_bug.cgi?id=1992> Patch
+ #4988 <https://bugs.freedesktop.org/attachment.cgi?id=4988>: Fix Option
+ "DisplayPriority" "HIGH" for R300 family.
+
+commit 30f3ce5c5ba205a23748def11de019ee727897f3
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Sat Apr 29 20:34:57 2006 +0000
+
+ Properly de-initialize EXA driver data, so EXA can be initialized again in
+ the next generation.
+
+commit d705429c230c9cc1645ae540a51dba62cae9f23e
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Sat Apr 29 20:18:48 2006 +0000
+
+ Fix tests for (un)forcing HW cursor. The broken tests caused problems when
+ switching to console with 3D clients running.
+
+commit 6142cb079d4a5844e4863c800baf4ae19c636af5
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Sat Apr 29 20:12:38 2006 +0000
+
+ Prefer double-buffered visuals. As a consequence, the root window's visual
+ is double-buffered by default, which is desirable in a number of
+ situations, in particular when running a GLX compositing manager with
+ AIGLX.
+
+commit eb841974d041b19461b7fb726687df8938b2e39b
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Apr 28 02:55:08 2006 +0000
+
+ Bug #6761: Fix font rendering in non-DRI mode by replacing RB2D_DSTCACHE_*
+ with RB3D_DSTCACHE_*. The RB2D versions are read-only mirrors of the
+ RB3D. This is masked when DRI is enabled because the DRM uses the right
+ registers in its flushing.
+
+commit 85e2ee6de6fd347aad66785ec7119f92013cd994
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed Apr 26 08:38:47 2006 +0000
+
+ Make the ATI driver use the PCI BAR size to determine the MMIO register
+ aperture size. Otherwise it tries to overmap things if they are up near
+ the end of memory.
+
+commit 13b19edf5accb7427436d3f0b1c9a9efb4fe98fa
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Apr 26 07:26:15 2006 +0000
+
+ Add support for some component-alpha operations (InReverse, OutReverse)
+ necessary for testing upcoming general component alpha acceleration
+ assistance in EXA. Tested with rendercheck on an r100.
+
+commit 44a45bcb82d49349f4fdfae3e4b8f24f98d99b46
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Apr 25 23:31:56 2006 +0000
+
+ Use a CPPFLAGS with XORG_CFLAGS so that the exa test can actually find its
+ headers and not fail. Also correct some nearby spelling.
+
+commit cc1825b503ce7e785cbb4611fd177477a1081b6e
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon Apr 24 07:44:52 2006 +0000
+
+ Fix enabling of external VGA output on some cards with dual entity setup
+ instead of MergedFB. This was broken due to bogus manipulations of a
+ register between the 2 entities. This fix is a big "violent" in that it
+ always enables the analog output regardless of what is plugged. It
+ should work though (at the expense of some additional power
+ consumption). A proper fix should be easy to do once Alex gets his
+ output mapping rework in.
+
+commit a66145bc9d487f7e19237cf292f12750cb959f61
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Apr 21 00:38:44 2006 +0000
+
+ Bugzilla 6672: fix interrupts on radeon since memmap changes
+
+commit f1f057df9aaba42986d9e20afe6f609a90318333
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Apr 21 00:34:43 2006 +0000
+
+ Add support for backing up the PCIE GART table on VT switch. This makes
+ suspend/resume work a lot better on PCIE cards.
+
+commit 31396df3b0101571bb85a4a66b67f5a8b0c992a9
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sat Apr 8 01:19:17 2006 +0000
+
+ Bump to 6.6.0 and release. This module's versioning is completely screwed,
+ so until we split out mach64/r128/radeon please just increment the
+ package number whenever you make significant changes.
+
+commit d706f494ed22afd369991e8c75a2d4f5aed15305
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Fri Apr 7 23:06:02 2006 +0000
+
+ Add a DrawablePtr argument to the XV functions to pave the way for
+ redirected video.
+
+commit f94685aec26b65f60c00a4b1bcd8f26bd80eb6e4
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Apr 4 07:42:36 2006 +0000
+
+ Bug #5632: Fix up ati.4 to explain that it is a wrapper driver for the
+ other three. While here, touch up radeon.4, and add an authors list
+ gleaned from checking copyright headers.
+
+commit 58c9b1d84f514755945e7a0d25fd5530af34ce95
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Apr 2 21:45:12 2006 +0000
+
+ Add missing .cvsignore lines.
+
+commit f1ce6170ef21e1f9769337c3138cd8d65c33e40a
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sat Apr 1 23:02:40 2006 +0000
+
+ - Fix dpi when switching from clone to dualhead with MergedFB.
+ - Add ConstantDPI option to force a particlar dpi across mode changes Both
+ based on Thomas Winischhofer's sis code.
+
+commit 607f18cfbfc2a7b5509f8b567bf510fce31b361e
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon Mar 27 06:12:57 2006 +0000
+
+ Fix a regression of my latest fix that broke color tiling on some setups.
+ RADEONRestoreMemMapRegisters() must not clear CRTC_OFFSET_CNTL and
+ friends unconditionally but only when there is a map change or it will
+ clear them after the DRI updates the AGP location, thus turning tiling
+ back off on the CRTC. Also remove a duplicate call to
+ RADEONInitCommonRegisters().
+
+commit bf1c4471137f10b7de9d79519ca2240058997e18
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Thu Mar 23 18:04:17 2006 +0000
+
+ commit the actual changes instead of just the Changelog...
+
+commit aa5fff9bae4818bbf99e8d9caa8f2ce9905294ca
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Thu Mar 23 17:59:25 2006 +0000
+
+ Use programmable tap coefficients for (hopefully) better video image
+ quality when downscaling. Remove unnecessary code programming the tap
+ coefficients twice. Disable some code which is supposed to improve
+ filtering quality but causes very visible image quality problems at
+ least with rv250 when upscaling. Fix potentially broken FOURCC_RGB16T
+ format (untested if it was broken, untested if it works now...). Change
+ some magic numbers to (new) macro defines.
+
+commit 17c52ff15ebe2cf220d5988ee13b599c41799886
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 23 01:37:15 2006 +0000
+
+ Call RADEONRestoreCommonRegisters() before RADEONRestoreCrtc2Registers()
+ instead of after. I can't find any good reason why we did it backward
+ until now and it definitely causes problems as the workaround for VT
+ switch in RADEONRestoreCommonRegisters() will break output to the
+ secondary head in various situations. Also does an unrelated minor
+ update to a comment.
+
+commit 673e4d7501861066fdd0874919a4524b820b944b
+Author: Kristian Høgsberg <krh@redhat.com>
+Date: Thu Mar 23 00:06:56 2006 +0000
+
+ Add atipciids.h.
+
+commit 5dcb4152dca6ac1fe9342f44eb48c0198b15772e
+Author: Kristian Høgsberg <krh@redhat.com>
+Date: Wed Mar 22 22:30:14 2006 +0000
+
+ Convert use of xf86fopen() and other xf86 wrapped libc symbols to use libc
+ symbols directly. The xf86* versions aren't supposed to be used
+ directly.
+ Drop libc wrapper; don't include xf86_ansic.h and add includes now missing.
+
+commit 21acdf371e3cf913c5affbd3e86641cfb115311c
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sat Mar 18 00:08:24 2006 +0000
+
+ Clear the offsets when updating the memory map instead of when enabling the
+ CRTCs and try to make that code more reliable. Doesn't disable the
+ CRTCs beforehand.
+
+commit 323ecb92e40d71c5ef994b41b6d8dedba6dd6203
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Fri Mar 17 03:00:53 2006 +0000
+
+ Fix various small cosmetic issues. Change a driver message, get the order
+ right for requesting drm versions, replace the use of some numbers with
+ the respective macro defines in radeon_video.c, and add some more macro
+ defines. None of that really matters.
+
+commit dc552edf191e14249421f8b27146874f16b80c1a
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 16 21:53:58 2006 +0000
+
+ Add missing return statement (the driver would not start randomly), add
+ RV410 to the list of new generation cards for the memory map setup and
+ fix a bogus message.
+
+commit 901409f47cc990721c1648b1c08e23450e6a4452
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 16 04:32:22 2006 +0000
+
+ Fix incorrect CRTC2_OFFSET values when using old-style dual head (not
+ MergedFB). Fixes Xinerama for me.
+
+commit 4d6656062129da0489eb4bc898871379ba891d8f
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 16 03:09:34 2006 +0000
+
+ Add various workarounds that seem to fix some remaning lockup scenarios I'm
+ experiencing with the driver when setting the memory map. Some of the
+ magic delays are a bit dodgy but they seem to work, I suppose I can't
+ do better now without help from ATI. Also removed some really too noisy
+ debug messages.
+
+commit 36799e3ea7ddde5fce528e8bc17ea942933a9111
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Wed Mar 15 04:03:37 2006 +0000
+
+ Fix various issues with DRI & server recycle by putting DRICloseSreen in
+ the normal CloseScreen callback chain at a spot that matches the call
+ to DRIFinishScreenInit in order to unwrap at the right time.
+
+commit 50923b6a9325592edc8b02b17646f96b9b8c4a01
+Author: Luc Verhaegen <libv@skynet.be>
+Date: Wed Mar 15 00:46:33 2006 +0000
+
+ Add some autoconf to keep this driver from building EXA when a slightly
+ older server with older exa is installed.
+ The way in which this problem was treated by the actually related
+ developers explains a lot about this driver.
+
+commit 74f4ed4275866475b3c182fae962df2fc0946b85
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon Mar 13 02:57:17 2006 +0000
+
+ Fix typo in the function setting the color space transformation factors for
+ old radeon
+
+commit 65625c6c2053792cd14b54c904bf46f360ef1565
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon Mar 13 00:09:44 2006 +0000
+
+ Earliest fix introduced a bug due to another chicken & egg problem in card
+ detection. Now split PreInitConfig into PreInitChipType and PreInitVRAM
+ so that PreInitDRI can be done just in between. Restores proper AGPx4
+ functionality (when enabled)
+
+commit 3a290115af41b0ecb94eb201d7e7abb42ebbfec6
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sun Mar 12 06:53:27 2006 +0000
+
+ Stop using xf86PciInfo.h, instead use a local copy of the PCI IDs we need
+ in atipciids.h so we can update the ATI driver independently of the
+ server when new chips are added
+
+commit d6b8f0a5eeb332563ec3ec7082f03be1797d26d8
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sat Mar 11 04:19:47 2006 +0000
+
+ Add #ifdef XF86DRI guards around references to info->allowPageFlip and
+ info->depthMoves, since they are only defined if building with DRI.
+
+commit 69fe90bc501df9bd9e74b894bfca79a4025725bd
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Fri Mar 10 13:00:49 2006 +0000
+
+ Use "FBTexPercent" option for XAA too (only for increasing memory reserved
+ for textures).
+
+commit 8033d7423267fc1b3725df6a077dd910b586daaf
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 9 23:26:27 2006 +0000
+
+ More memory map fixes !!! This time, we add a way to get the DRM kernel
+ module version early, in order to properly limit the framebuffer size
+ when a module that doesn't support the new map is loaded. That will
+ improve backward compatibility. I also made the minimum required kernel
+ module version 1.3 which hopefully shouldn't be a problem for anybody,
+ and cleaned up the ordering in which we test for DRM version to enable
+ features
+
+commit c637939d3c4ce5cdddbc5200d5ffbca4c3927050
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Thu Mar 9 15:41:16 2006 +0000
+
+ RN50: Skip modes that exceed memory bandwidth.
+ Bugzilla #5766 <https://bugs.freedesktop.org/show_bug.cgi?id=5766> Patch
+ #4636 <https://bugs.freedesktop.org/attachment.cgi?id=4636>
+ - Acknowledge that RN50 only has one CRTC, and use this to distinguish it
+ from RV100.
+ - Fix detection of RN50 memory type and bus width.
+ - Model RN50 memory bandwidth limits by capping the pixel clock range based
+ on memory clock, bpp and memory bus width. (ATI Technologies Inc.)
+
+commit 890b95a3ddad7634f3aea635cb236b221e902acc
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Thu Mar 9 06:06:25 2006 +0000
+
+ Update drivers that support EXA for the new EXA ABI. This consists of
+ moving all the accel and card members into the driver ptr, filling in
+ the exa_major/ exa_minor fields, and always using LoadSubModule so we
+ can check the module version up front. Only tested on ATI.
+
+commit e19ccfa18fee046c54d7a9401e4e0098b2300598
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Fri Mar 3 16:41:41 2006 +0000
+
+ Add Option "FBTexPercent" to override the amount of video RAM reserved for
+ OpenGL textures with EXA.
+
+commit ca00035eccb6e3495b27f8e64f2d016d8d2a9ce2
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Mar 2 02:05:17 2006 +0000
+
+ Fix the fix ... I didn't interpret PciInfo->size properly and forgot that
+ the function works in Kb not bytes... Ooops.
+
+commit b2145aea36bb035bff048366c607b967d70fff49
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Wed Mar 1 21:35:14 2006 +0000
+
+ Extend the alignement workaround to post-rv280 chips as well (thanks Hui)
+ and also limit the CPU accessible memory to the size of the PCI BAR
+ size (yeah, it was passed to the driver, I just got blind for a while
+ it seems)
+
+commit 163581a82fe9395672c31b41cd67aa44158f5201
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Tue Feb 28 23:34:03 2006 +0000
+
+ Workaround for rv280 bug which needs the framebuffer memory mapping to be
+ aligned to its own size. Also add back limit of 128Mb of mapped fb
+ space for now until I fully sort out what's up with dual function
+ cards. I would really need to access the PCI BAR sizes here but that
+ information seem to be missing from the PCI info passed to the driver.
+
+commit 5ff8fb2bea1fe7d14db53c19ff3a3a56668ec417
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Tue Feb 28 00:52:53 2006 +0000
+
+ Add the newly added (and tons of previously forgotten ones) pci ids to the
+ ati wrapper too (probably not required for it to work as everything
+ should default to radeon anyway there).
+
+commit 1574b41a0f894f9b6e30d3ee94e596695a4c64f0
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sun Feb 26 10:01:32 2006 +0000
+
+ Fix page flipping with XAA. The new code ended up calling ShadowFBInit()
+ before XAAInit(), which breaks ShadowFB.
+
+commit 1f43a584a684af8078631425886cce236500e0e6
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Sat Feb 25 01:57:05 2006 +0000
+
+ Add pci ids known to exist (see #4284 for instance). There are still
+ entries which probably don't really exist (cancelled cards and such),
+ leave them as-is. Fix the name of some entries, mostly based on the
+ .inf file of the newest catalyst driver. Use own family id for rv410
+ and rs400, though there is no different code (yet?).
+
+commit 5c141bb15d1163e04c012a0cdf0699d534f0be37
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Thu Feb 16 23:27:44 2006 +0000
+
+ Memory map and misc fixes. This completely reworks the way the driver
+ detects available & accessible video memory and initializes the card
+ internal memory map. Along the way, I re-ordered some of the stuffs in
+ pre-init in order to remove some dodgy codepath, fixed various init,
+ exit and vt switch issues, and overall made the driver more robust. The
+ full memory map fix requires an updated DRM. The X driver no longer
+ tries to position the AGP aperture, this becomes entirely DRM
+ responsibility.
+
+commit 8c6e5a6eb50d371fd4ec700c26aa628cb5f45731
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Wed Feb 15 23:36:55 2006 +0000
+
+ The engine setup would trigger a bogus line write before the proper
+ addresses are setup, thus causing the card to try to bus master over
+ the system bus to some stale location (usually 0 but could depend on
+ whatever was used before X). Remove that useless init bit, and always
+ setup some good enough engine source & destination pointers in case we
+ have some other spurrious engine activity going on.
+
+commit d4ec0223029d8fe03a836a5a6e9a7cc8897b4c90
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon Feb 13 05:30:13 2006 +0000
+
+ Fix EXA acceleration of textures with byteswap or tiling From John Clemens
+ <john@deater.net>
+
+commit 79c60ebbc34aaf0ac0b0723898d5b63015547178
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Feb 7 04:39:59 2006 +0000
+
+ Fix a copy'n'paste-o in the EXA render implementation that resulted in
+ [ax]8b8g8r8 pict formats not being supported on r200, but no other
+ issues.
+
+commit 8d74f3d49e73626f5d658ba6586a7c1487dae141
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Thu Jan 19 14:20:37 2006 +0000
+
+ Bug #5656: Set all Radeon XPRESS 200 R[CS]4xx-based chips to have IsIGP =
+ 1, fixing modesetting issues.
+
+commit e490f4b86e6bba70f7c884fca3cf41d159323689
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Fri Jan 13 01:37:43 2006 +0000
+
+ XF86_VERSION_CURRENT -> XORG_VERSION_CURRENT
+
+commit ac296d9137b02753bc79a9930d168855adea9c95
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Fri Jan 13 01:02:01 2006 +0000
+
+ When failing to parse MetaModes, reset CRT2pScrn to NULL after free'ing it
+ so we don't crash when trying to use it later (such as in
+ RADEONFreeRec).
+
+commit dd98ce78407c9eddd7adaad1d73d6910e6949b87
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Jan 8 19:02:16 2006 +0000
+
+ Bug #5523: Make radeon compile without USE_XAA. (Tilman Sauerbeck)
+
+commit a99429b2bc6407ff2a094e6ee30ce2032f734966
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Dec 21 02:29:59 2005 +0000
+
+ Update package version for X11R7 release.
+
+commit 96e225b950c74e64f3f788be8a8489c5075ea55a
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Dec 19 16:25:52 2005 +0000
+
+ Stub COPYING files
+
+commit 6bea785ea0bdf01673a6ddc45765ae7372fdd371
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Dec 19 09:07:50 2005 +0000
+
+ Typo fixes, mailing list & url updates, and other changes to prepare for
+ X11R6.9 & 7.0 releases.
+
+commit 07d5cf8fc37eb72dbb344081ff07d59dbf568e9c
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Thu Dec 15 23:15:37 2005 +0000
+
+ Bugzilla #5238 <https://bugs.freedesktop.org/show_bug.cgi?id=5238> Patch
+ #3978 <https://bugs.freedesktop.org/attachment.cgi?id=3978> r128 man
+ page dualhead note update (Alex Deucher)
+
+commit 6db5cbfbf6d405d9871892d1255dd7442e4539e9
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Dec 15 00:21:32 2005 +0000
+
+ Update package version number for final X11R7 release candidate. Bump
+ driver version number.
+
+commit 726fd3a81dfbd1b0c8e4ede104a48523daecab92
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Dec 14 19:41:28 2005 +0000
+
+ Bug #1760: Fix ati wrapper multihead to be dlloader friendly.
+
+commit 328a2d74dabe32ce35e879799412666feedb0eef
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Dec 9 18:25:02 2005 +0000
+
+ Bug #3869: Don\'t walk off the end of an array in connector detection.
+ (Eric Anholt)
+
+commit 03961a05438e916b6725f4e547f23a84ead13c5e
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Dec 9 18:15:31 2005 +0000
+
+ Bug #1106: Fix memory allocation for Render. (Michel Daenzer)
+
+commit 091e5c584124f9b849c0f46802b2f0d8b0cc2388
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Dec 8 17:55:18 2005 +0000
+
+ Add configure options to allow hard-coded paths to be changed.
+
+commit e38e2df15c9a4b08dee6386a225e98827bb35aad
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Dec 8 17:54:40 2005 +0000
+
+ Allow hard-coded paths to be configurable.
+
+commit b8203604bf9bd3813668313a1c8c17040b9d93ce
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Dec 6 22:48:33 2005 +0000
+
+ Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
+
+commit a86920e812bfd40ec9facfc234220e83066dd263
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 05:49:32 2005 +0000
+
+ Update package version number for X11R7 RC3 release.
+
+commit 010adc8988846e6f76f111a9fd32eca021d12fbc
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 05:45:17 2005 +0000
+
+ Bump version numbers for X11R6.9/X11R7 RC3.
+
+commit a5efa6724e7fd8318e262060b084630632dfcb44
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Dec 2 02:16:07 2005 +0000
+
+ Remove extraneous AC_MSG_RESULT.
+
+commit feeef3cba1f4736a96daf3002ec902ced2874198
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Nov 30 18:51:22 2005 +0000
+
+ Bump libdrm dep to 2.0.
+
+commit 7ca2b3fa30fedd07951f7c6e73ed4d2a6f6606ea
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Tue Nov 29 23:29:58 2005 +0000
+
+ Only build dlloader modules by default.
+
+commit e167e5151e32d54919e96cbfdcf932e16b1cab2a
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Nov 28 22:04:08 2005 +0000
+
+ Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
+ update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
+
+commit 0015b1a007bed61aaf389f8f927e4ae0568d7da7
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Mon Nov 21 10:49:09 2005 +0000
+
+ Add .cvsignores for drivers.
+
+commit 00b8f6ccfbb5163c47e9def0e4ecc6ac7be7e8af
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Nov 11 11:05:42 2005 +0000
+
+ Bug #1028: Don't (incorrectly) mark the 24/8 z/stencil case as slow, which
+ resulted in whining at runtime about the visual not being supported.
+
+commit 33326847ccc9cf4cd6a23a257e5392e348e6dd22
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Nov 9 21:31:20 2005 +0000
+
+ Bump version numbers for X11R6.9/X11R7 RC2.
+
+commit 68e11246bd6f6a641807230834dce4e7fd6911af
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Nov 9 21:15:14 2005 +0000
+
+ Update package version number for X11R7 RC2 release.
+
+commit 1582d3b34643babcbb794d2df8d7c9a755d569c9
+Author: Matthias Hopf <mhopf@suse.de>
+Date: Wed Nov 9 17:42:57 2005 +0000
+
+ Bug #4998: Add ';' and ',' as valid separators for MetaModes as well.
+
+commit 2d22d78d157e07e6ec6a3e2d03fc17f102f6e00e
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Nov 9 07:30:03 2005 +0000
+
+ Fix DoLoadableServer NO build.
+
+commit 999f67763a5ea9fef7b7b576262f0da079efcfee
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue Nov 8 16:30:48 2005 +0000
+
+ bugzilla #988 (https://bugs.freedesktop.org/show_bug.cgi?id=988) Fix typo
+ which may or may not have had a negative impact on stability with R300
+ class cards.
+
+commit 5aa401efa0b8d81da418eafeb857142a33f85da9
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue Nov 8 14:05:00 2005 +0000
+
+ bugzilla #4494 (https://bugs.freedesktop.org/show_bug.cgi?id=4494) Call
+ RADEONDGAInit() even if EXA is enabled; the problematic DGA
+ acceleration hooks are already disabled in that case.
+ This fixes DGA issues such as DGA mouse (typically used by games in
+ fullscreen mode) not working.
+ Fix suggested by Eric Anholt.
+
+commit 345180131a7b2752773dc2a3ee1221ad1e05c815
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue Nov 8 13:35:23 2005 +0000
+
+ bugzilla #4916 (https://bugs.freedesktop.org/show_bug.cgi?id=4916) Fix
+ segfault with MergedFB and EXA enabled and HW cursor temporarily
+ disabled.
+
+commit 23911421ffa7bdd2e191a72c41bf1f26c92c1a67
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue Nov 8 09:44:41 2005 +0000
+
+ bugzilla #4951 (https://bugs.freedesktop.org/show_bug.cgi?id=4951)
+ attachment #3689 (http://bugs.freedesktop.org/attachment.cgi?id=3689)
+ Fix HW cursor getting silently disabled with EXA.
+
+commit e1259c0117a190cf4c6e7be07d5aa83e03afb3a0
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Mon Nov 7 19:28:40 2005 +0000
+
+ Replaced the variadic macros(gcc) by macros according to C99 standard
+
+commit 67bdaae04ab37f38a6d0c8dc4b6328c3ba3b3393
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sun Nov 6 07:41:29 2005 +0000
+
+ Sun bug #6325220: Xorg dumps core in dual monitor configuration with radeon
+ driver if CRT2Position not specified in xorg.conf
+ <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6325220>
+ (Stuart Krietman - Sun Microsystems)
+
+commit 733ebf6e4a7c7b2f1a861077d43da2a853e4c0d7
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Nov 1 15:08:52 2005 +0000
+
+ Update pkgcheck depedencies to work with separate build roots.
+
+commit dd0eb76337bfdaec8f456380a6ced9e0487e190f
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Oct 21 18:40:18 2005 +0000
+
+ Bug #4829: Remove some useless DRI symbol checks.
+
+commit e6c1859e3a7c84b882e0c30d0783255ed1258d9e
+Author: Donnie Berkholz <spyderous@gentoo.org>
+Date: Thu Oct 20 23:01:58 2005 +0000
+
+ Bug #4831 <https://bugs.freedesktop.org/show_bug.cgi?id=4831>. Check for
+ x86_64 in addition to amd64 in host_cpu.
+
+commit 33460fb393c9591babcc43b30a73eef3971765c2
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Oct 19 02:48:02 2005 +0000
+
+ Update package version number for RC1 release.
+
+commit 77d5c3549db4f6a7ff9f969f885d7a4e58ab2b16
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Oct 18 15:46:37 2005 +0000
+
+ Do the following to make the drivers pass distcheck:
+ - Only define EXTRA_DIST when there are actually man pages to be processed
+ - Add missing man pages to keyboard and ati drivers EXTRA_DIST
+
+commit 35e717078c840414b0d6a0e37b3ffed0a7b102aa
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Oct 18 00:01:52 2005 +0000
+
+ Use @DRIVER_MAN_SUFFIX@ instead of $(DRIVER_MAN_SUFFIX) in macro
+ substitutions to work better with BSD make
+
+commit ff6e5b0412fe347575992c83bb7cb47b6f96f390
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Oct 17 22:57:32 2005 +0000
+
+ More 1.7 braindamage: define EXTRA_DIST in terms of @DRIVER_NAME@ instead
+ of indirectly
+
+commit a2e7c55850d383e3af948d445b1645d8a47811cf
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Oct 17 00:09:01 2005 +0000
+
+ Use sed & cpp to substitute variables in driver man pages
+
+commit 524fb1440760a14c53fb3f238aad6c3cdb7e6a08
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sun Oct 9 10:36:50 2005 +0000
+
+ Secure the Radeon PCIE GART tables in framebuffer memory by not allowing
+ the clients to get access to a secure area of framebuffer.
+
+commit e526211b86ec5343002978debfcf78f74a10c69e
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Tue Oct 4 20:01:03 2005 +0000
+
+ Check in generated README files
+
+commit 431d0e144ae4c294e1f6110fc3db497ce9bd9cfd
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Mon Oct 3 21:22:07 2005 +0000
+
+ - For all drivers that have a <driver>.sgml file, add code in their build
+ system to build the README file at make dist time
+ - in util/macros/xorg-macros.m4, add a new XORG_CHECK_LINUXDOC macro that
+ will check if the required tools and files exist, and if so set a
+ conditional.
+ - util/modular/symlink.sh
+ - Link all the <driver>.sgml to xf86-video-<driver>/README.sgml
+ - Add all the README.<driver> to the list of excluded files
+ - xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml: Various changes to make
+ it spew less warnings when the text file is built.
+
+commit 9147c20e5ff662ac511a19e7623b406dffee2242
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Oct 3 06:14:58 2005 +0000
+
+ Bug #4001: Don't crash when PanelSize is unset. (Alan Coopersmith)
+
+commit 7e2090e3ebf0bd699d66d336353c097d658a86ae
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sat Oct 1 20:42:06 2005 +0000
+
+ missed one missing return value.
+
+commit a843e4281134de1545d538cb8970179b1d6977f6
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sat Oct 1 17:09:48 2005 +0000
+
+ add missing return value on success in RADEONSetupMemXAA().
+
+commit 98f7d043f894c73fecaf14440c1a24b6c2fc4b06
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Wed Sep 28 15:10:38 2005 +0000
+
+ Make ati driver distcheck
+ radeon_commonfuncs.c \
+ radeon_exa_render.c \
+ radeon_exa_funcs.c \
+
+commit e7b1af5d1677e53820dd1c0926cc8b5a4284901e
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Tue Sep 27 23:55:15 2005 +0000
+
+ Move the RADEONEnablePageFlip/RADEONChangeSurfaces calls back to the end of
+ the function (the code above will cause pixmap cache to be freed and
+ copied around, and these functions must be called after that otherwise
+ pixmap damage will occur). May be related to #4440, #4456 (unclear if
+ these setups involve 3d apps)
+
+commit bc3c26fe365347c427e04385c1df95a5eec14f28
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Sep 27 23:34:11 2005 +0000
+
+ Fix Radeon MMIO Render acceleration with EXA by writing out floating- point
+ coordinates rather than integers.
+
+commit 58dfb95c446b73fbc34784f0894cf89152dab043
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sat Sep 24 18:45:45 2005 +0000
+
+ Disable the {Open,Close}FullScreen DRI protocol. Remove empty FullScreen
+ stubs from drivers, comment the non-empty ones.
+
+commit 65b5f0017e29903565aff0b7527d955ed016c9a6
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Sep 20 16:53:34 2005 +0000
+
+ Only include radeon_dri.h & radeon_sarea.h if XF86DRI is defined.
+ Include "compiler.h" to define __inline__ on non-gcc compilers
+
+commit 0b7441b19a1a5df91aca6b1a02944afb636bc523
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Sep 18 02:32:23 2005 +0000
+
+ Break EXA ABI while we still can. Add coordinates to the UploadToScreen
+ hook so we can upload a subset of a pixmap, and convert the current
+ drivers to respect that. Use this support to directly UploadToScreen in
+ exaGlyphs, providing a 47.4% +/-2.4% decrease in wall time for ls -lR
+ programs/Xserver in an antialiased gnome-terminal on an M6 (n=3, caches
+ hot). I would have bumped major version, only I can't tell what the
+ EXA_VERSION_* is supposed to be doing as opposed to the module version.
+
+commit 64e7db2698ee48af92594c16d72e33c16372c9d7
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sat Sep 17 20:02:01 2005 +0000
+
+ - Don't try to upload 0 byte-per-pixel (PICT_a1) data using
+ RADEONHostDataBlit.
+ - Disable the shortcut for switching from 3d to 3d in radeon_exa.c. It
+ appears that we do need the cache flush here, thought it's not clear
+ why. Disable the 2d to 2d shortcut while here, since I'm unsure of what
+ we're doing. Exposed by the following bit:
+ - Bug #4485: Add a new routine, exaGlyphs, to handle font drawing. Glyphs
+ were being accumulated in from non-migratable scratch pixmaps, causing
+ the destination pixmap to move towards screen but the migration
+ necessary for source never to happen, leading to abysmal performance.
+ Instead, copy the scratch glyph data into a real pixmap first, then
+ composite from that into the destination, allowing for migration. time
+ ls -lR from programs/Xserver showed 26.9% (+/- 6.3%) decrease in wall
+ time (n=3).
+ - Create exaDrawableUse* wrapping exaPixmapUse*, but which are aware of
+ windows needing backing store. Makes migration code prettier, and
+ ensures that composited windows will be migrated as normal when we turn
+ off cw for EXA. (issue brought up by keithp)
+
+commit 3c71198a088e71a105e274f176c8ceb503615d46
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sat Sep 17 07:47:51 2005 +0000
+
+ Switch radeon driver to using a card type rather than having a IsPCI flag,
+ allow for PCI/AGP/PCIE cards. Set PCI gart allocation to only happen on
+ PCIE cards. Add Radeon PCIE card detection using capability bits.
+
+commit 10cf3523f236a017a1ca7e5ee57e02176b924059
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Sep 14 22:06:41 2005 +0000
+
+ Bug #2573: Remove the disabling of automatic cache flushing on non-r300
+ cards. It has been implicated in hanging at least r300s and some r100s,
+ and seemed to be the cause of some bad rendering for me.
+
+commit d68894a463a3bb08c97e91ff6fc4b65b29183ff6
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Sep 13 22:04:12 2005 +0000
+
+ Remove the hardcoded USE_EXA/USE_XAA defines now that they've been
+ hardcoded in configure.ac (config.h).
+
+commit baa9b5b6e19cf9794bf810e3c582bf1d7f808663
+Author: Dave Airlie <airlied@linux.ie>
+Date: Mon Sep 12 09:27:07 2005 +0000
+
+ Fix Radeon EXA for when RENDER isn't defined
+
+commit 8c89610389197dc94d3bceaf44d9d2ea91848f1b
+Author: Dave Airlie <airlied@linux.ie>
+Date: Mon Sep 12 09:17:42 2005 +0000
+
+ Move GART offset/size outside XAA
+
+commit eba44d9747adde8385f2a242dee5a8e73ce5a205
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Sep 12 09:04:36 2005 +0000
+
+ Define USE_XAA and USE_EXA for the time being.
+
+commit a255e7b0984890daad98b74ace0c572965fe61f5
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Sep 11 21:00:44 2005 +0000
+
+ Attempt to fix up the modular pieces for EXA support. (untested)
+
+commit 3e0d9c945a6a71cc476d27341ef18618529a91a8
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Sep 11 20:58:53 2005 +0000
+
+ Add support for EXA to the radeon driver. Building EXA and XAA support is
+ controlled at compile time, plus the runtime option of Option
+ "AccelMethod" "EXA" or "XAA". The XAA support appears to remain as
+ before, while the EXA pieces need just a little more polishing. Notable
+ features:
+ - Render acceleration working on Radeon 100 and 200-series with DRI on.
+ - DRI works with EXA Notable issues:
+ - DGA disabled in the EXA case.
+ - Backbuffer moves disabled in the EXA case.
+ - No textured XVideo.
+ - MMIO render acceleration is close but still has some issues.
+ - Memory pressure while using Composite is really troublesome with DRI on.
+ This patch is based on an initial patch by Zack Rusin, with significant
+ work by Benjamin Herrenschmidt and myself.
+
+commit fd62082b68ac3aadd8ffc441352d75d88334904e
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sun Sep 11 08:51:38 2005 +0000
+
+ Add support for allocating PCI GART table in framebuffer memory. This is
+ needed to support PCIE Radeons using a new DRM.
+
+commit cb63f8d9c0563fb0eff28e2be6d4adf5666540d2
+Author: Dave Airlie <airlied@linux.ie>
+Date: Tue Sep 6 10:03:19 2005 +0000
+
+ Handle VIP timeouts more gracefully -- impose a hard limit of 10ms on
+ waiting for VIP_BUSY so we don't lock up hard, spinning.
+
+commit dbd83cf18e1bf5e7e31e1ac150227bd27e8b1739
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Aug 28 20:51:14 2005 +0000
+
+ Bug #4148: Bump required DRM version for r300 to 1.17.
+
+commit ce0589ff3b9fcf8c6bab64da4dba40ba540a6a03
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Aug 28 18:10:34 2005 +0000
+
+ Bug #1109: Fix VGA init on Rage Mobility 7500 (Marc Le France)
+
+commit 250c8732a54924eeb459880f2905f8e59d038e60
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Aug 28 18:00:23 2005 +0000
+
+ Modified the licens type from GPL to a X/MIT one
+
+commit 94c0196652c3cfa0558f61b55f5df9bf50f9ac49
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Fri Aug 26 20:04:01 2005 +0000
+
+ #include "extensions/dpms.h" -> <X11/extensions/dpms.h>
+
+commit 107e42cabe1cc41fe86b0218c3229b5f34b2df84
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Fri Aug 26 07:00:24 2005 +0000
+
+ Fix 'ugly' warning in r128. (Branden Robinson, Debian #069)
+
+commit d3f5911c85ccfaaf50c05ce80d56dac13fd15701
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Fri Aug 26 05:30:52 2005 +0000
+
+ Only use vgahw symbols if we're building vgahw for this architecture. TODO:
+ Fix this for the modular tree (maybe an unconditional yes?). Define
+ that we're using a DPMS server and include DPMS headers. (Debian #024b)
+
+commit 879213455740d2d653d38c712275f07610e4dc9c
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Aug 26 02:11:24 2005 +0000
+
+ - fix pitch increment (Aapo Tahkola, Roland Scheidegger)
+
+commit 6519cc71e4387ef979de90be517145611511ff1a
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Thu Aug 25 03:34:58 2005 +0000
+
+ Fix bug in Radeon connector table parsing -- parse all entries, not just
+ the first. (Ben Herrenschmidt)
+
+commit 8734a5d0bafb60f5e38b2cee10587f01fc016379
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Thu Aug 25 03:07:50 2005 +0000
+
+ Blacklist Radeon M300 from multimedia I2C code. Handle I2C timeouts more
+ gracefully -- impose a hard limit of 10ms on waiting for I2C_GO so we
+ don't lock up hard, spinning.
+
+commit 578564b4f7fce1f02d056c2b12ffb7803d268829
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Aug 22 03:05:52 2005 +0000
+
+ Explicit license statement.
+
+commit c9005c91bf6aaf4728a6606284f5d24e0b4a8282
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Thu Aug 18 09:03:46 2005 +0000
+
+ Update autogen.sh to one that does objdir != srcdir.
+
+commit 508a7421a1386b5b783a867d860b858a55f216d3
+Author: Alan Hourihane <alanh@fairlite.demon.co.uk>
+Date: Mon Aug 15 07:30:05 2005 +0000
+
+ Egbert's 64bit fixes for mixed 32/64bit clients
+
+commit 204290412fbe8b4ac1a0f4f97bc7aec2847a1df7
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sun Aug 14 16:14:51 2005 +0000
+
+ Make DGA, CPIO, non-PCI, and TV-Out support detected per-platform, using
+ the same semantics as in drivers/ati/Imakefile.
+
+commit adb093bdf3cea8108a40bcd72f09924b416de0c1
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Mon Aug 8 23:42:36 2005 +0000
+
+ - radeon XPRESS chips are actually RV3xx based
+
+commit 9c11018beb186b4b303524685fb62629b9ca863e
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Aug 7 14:46:55 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ Update warning about DRI support on R300 and later cards.
+
+commit a28b2c76c7df2fe65a93eed34bc85c2cf5afb314
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Aug 7 14:40:58 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ Properly configure fbLocation and related registers for R300 cards. (Dave
+ Airlie)
+
+commit 692fb0f8b51abeccaf70b51fc1defc62132b15e9
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sat Aug 6 17:23:16 2005 +0000
+
+ - missing line in mergedfb option parsing. Spotted by Christoph Bauer
+
+commit 14e77a39320a7a074b5c2eeeea9750b469abc978
+Author: Ian Romanick <idr@us.ibm.com>
+Date: Fri Aug 5 23:04:32 2005 +0000
+
+ I have resolved this by making all the "Direct rendering disabled" messages
+ X_WARNING and all the "Direct rendering enabled" messages X_INFO.
+ Ideally, we need to factor some of this stuff out to common code. There
+ is a *LOT* of duplication among the *_dri.c files under
+ programs/Xserver/hw/xfree86/drivers.
+ I'm trying to clean up as much low hanging fruit as I can and got tired of
+ waiting for ajax. :P
+
+commit 8e88d36f78c13025847310b411402f1d46a2e0cd
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Jul 31 17:19:27 2005 +0000
+
+ Post-merge fixups:
+ - Disable building the gamma driver
+ - Fix numerous Imakefiles to get header paths and subdirs right
+ - Symlink client-side GLX lib source from Mesa
+ - Add new shader subdirs to the Mesa core build
+ - Tweak the DDX drivers to not ask for "xf86dri.h"; they don't need it,
+ since they don't generate protocol, and it was breaking the build.
+
+commit fb9f712fd1044feb8ce6a99aabaeb5966123e268
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Jul 29 21:22:42 2005 +0000
+
+ Various changes preparing packages for RC0:
+ - Verify and update package version numbers as needed
+ - Implement versioning scheme
+ - Change bug address to point to bugzilla bug entry form
+ - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
+ reenable it)
+ - Fix makedepend to use pkgconfig and pass distcheck
+ - Update build script to build macros first
+ - Update modular Xorg version
+
+commit ee45e1fb5da793fa14770b28fd662e69d52b2c6a
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Fri Jul 29 19:45:14 2005 +0000
+
+ bugzilla #3911 (https://bugs.freedesktop.org/show_bug.cgi?id=3911)
+ attachment #3191 (http://bugs.freedesktop.org/attachment.cgi?id=3191)
+ Disable bus mastering while updating MC_FB_LOCATION and friends to
+ prevent the X server from hanging on startup every now and then under
+ some circumstances. (ATI Technologies Inc.)
+
+commit 44a66ec5a01c3b4dfa046a66b80a3b7e9dfff537
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Fri Jul 15 15:02:47 2005 +0000
+
+ Install theathre drivers in @moduledir@/multimedia
+
+commit dbcf104689ca368523715eb5945bcd800985799b
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Jul 15 03:39:58 2005 +0000
+
+ Fix filename typo
+
+commit 2256fabf1cd69c950639f236f61e59e68cc8e6fa
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Jul 14 22:30:47 2005 +0000
+
+ Fix check for headers. Use {XORG,DRI}_CFLAGS subst instead of replacing
+ CFLAGS.
+
+commit 520317863ffb365eca17c96b4d545adb554bbbd6
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Jul 14 19:35:48 2005 +0000
+
+ Make compiling with DRI support configurable/autodetecable. Autodetect DRI
+ sdk headers. Expand help string for xorg-module-dir option.
+
+commit ab5264838ae34bb29791bc08d5a4f853a995faf1
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Thu Jul 14 17:10:01 2005 +0000
+
+ fuck you cvs
+
+commit a608c4422665ce1e933483b7c2a25ab2daae5930
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Thu Jul 14 16:03:36 2005 +0000
+
+ Try adding build system for ATI driver again. Who knows, maybe CVS works
+ today.
+
+commit d715561d28d82591adf5c7504068c1818eb2245c
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Jul 11 02:29:45 2005 +0000
+
+ Prep for modular builds by adding guarded #include "config.h" everywhere.
+
+commit 5b37b695019b7a4522a96a63f1f6b035160e6a25
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Mon Jul 4 23:44:59 2005 +0000
+
+ Bug #2604: Disable workaround for horrible flickering when scrolling
+ vertically in a virtual screen when color tiling and page flip are both
+ enabled, as it potentially does more harm than good. The flickering
+ still needs fixing probably though.
+
+commit 08b886850f115f404187acd619aa2c2ca18ae3c7
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Fri Jul 1 22:43:11 2005 +0000
+
+ Change all misc.h and os.h references to <X11/foo.h>.
+
+commit 1c7c3372776d6d116facabbf055f27af3e96f59f
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Jul 1 04:16:42 2005 +0000
+
+ - fix depth tiling for r3/4xx chips (Aapo Tahkola)
+ - adjust limits for tiled surfaces on r3/4xx
+
+commit e8c2574557950bfa150806432d566cd38c47158f
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Jul 1 02:56:04 2005 +0000
+
+ - Fix Support for Philips FM1236/F tuner on ATI AIW 9600 XT (Jeff Smith)
+ Bug 3401
+
+commit d258e1c1566d005693260230712c9d78f1447dba
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Jun 30 04:46:11 2005 +0000
+
+ - change back part of a comment I seem to have accidently changed.
+
+commit 6d9c02d58eae1966e8fa8d7d305849c6e57434ad
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Jun 30 02:02:10 2005 +0000
+
+ - small mergedfb fix from Thomas Winischhofer
+
+commit 85365b791542cab221c37c9b3b4593ea0c6c9e2d
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Jun 30 01:40:17 2005 +0000
+
+ - add support for colortiling on r3/4xx hardware (disabled by default). In
+ order for pageflipping to work on r3/4xx we will need to update the the
+ sarea and drm so that the crtc1/2 xytiling regs get updated. Initially
+ worked out by Aapo Tahkola.
+
+commit 3ec99c9cd821aeacdd57a9bbc20c4e4ec4711790
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Jun 30 00:56:01 2005 +0000
+
+ - Increase the priority of display 0/1 in the memory controller for r3/4xx
+ hardware when displaypriority is set to HIGH. Fixes display problems in
+ high res modes. Originally reported by Aapo Tahkola.
+
+commit a7523e6c0be7a600963e9de10cf0060d16117bf6
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Jun 30 00:33:36 2005 +0000
+
+ - fix some OUTREGs that should be OUTPLLs in dynamicclocks code
+
+commit c7e1d31c6aec3a99061c77c4d6f57e2e874e37f1
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Jun 26 04:38:12 2005 +0000
+
+ Bug #3628: Fix video driver submodule visibility.
+
+commit 1beca962ecee5b5c51eb2fb8451fcc2a2ed4b97c
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sat Jun 25 21:16:53 2005 +0000
+
+ Bug #3626: _X_EXPORT tags for video and input drivers.
+
+commit 9a4895c4c2fd9614d83adfe3967f4f46dc4dfff6
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Jun 22 22:50:49 2005 +0000
+
+ Add missing detection of the PCI ID for 0x5b62, Radeon X600 (Vladimir
+ Kushnir).
+
+commit 43e3cc7c21160f4536ed860f97d02545c267dfbc
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Wed Jun 15 23:40:50 2005 +0000
+
+ Sync up radeon mergedfb with Thomas' latest sis mergedfb changes:
+ - non-rectangular mergedfb desktops
+ - screen offsets
+
+commit b67f9f5c875efaa41bded7ed2f38b2a5fbd17597
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sat Jun 4 20:26:28 2005 +0000
+
+ Sync with 6.8.2 branch: Bug #591
+ (https://bugs.freedesktop.org/show_bug.cgi?id=591) attachment #308
+ (https://bugs.freedesktop.org/attachment.cgi?id=308): Fix video timing
+ problems with Sony PCG-C1VN Vaio Picturebook notebook && co. Patch by
+ Marc Aurele La France
+
+commit daae70d9083e9c15358f160f0df3176e344f1cb9
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sat Jun 4 20:04:36 2005 +0000
+
+ Sync with 6.8.2 branch: Bugzilla #1306
+ (https://bugs.freedesktop.org/show_bug.cgi?id=1306) attachment #1291
+ (https://bugs.freedesktop.org/attachment.cgi?id=1291): Fix SEGV in
+ "radeon" driver. Patch by Kevin E. Martin <kem@freedesktop.org>
+
+commit c27c193f192b117232dbe39575d3d5ab7c6a1b1e
+Author: Felix Kuehling <fxkuehl@gmx.de>
+Date: Fri May 27 22:33:23 2005 +0000
+
+ Fix for bugzilla https://bugs.freedesktop.org/show_bug.cgi?id=3414 (patch
+ https://bugs.freedesktop.org/attachment.cgi?id=2782): Don't use RMX if
+ we are Dell Server.
+
+commit 3b674815e0a6d19b0719e71261c0909b92173aed
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Tue May 24 23:26:50 2005 +0000
+
+ Typo fix from bug #3163 commit
+
+commit 0845d1db801ae74688464bd4c41a7e40e4b50186
+Author: Egbert Eich <eich@suse.de>
+Date: Mon May 23 09:50:20 2005 +0000
+
+ Explicitely disable DPMS power states during close screen. Fix macro that
+ takes a value and a mask of bits to modify to be behave evquvalently if
+ the bits that should remain unchanged are set or unset in the value
+ (Bugzilla #3369).
+
+commit 74b86b036def72e5180a46871b8452ba9eea9bb1
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed May 18 17:47:35 2005 +0000
+
+ Bug #3163: Create new DRIINFO_*_VERSION macros to indicate the version
+ number of the DRIInfoRec, disambiguating it from the XF86DRI protocol
+ version number. Modify DRIQueryVersion to return the libdri version
+ number, which all DDXes were requesting implicitly. Fix the DDXes to
+ check for the DRIINFO version they were compiled against.
+
+commit 0f4a8fc6aa5157a8b48beb49f30511665cfa4b63
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Wed Apr 20 21:07:44 2005 +0000
+
+ programs/Xserver/hw/xfree86/drivers/ati/theatre.h Build fix for
+ DoLoadableServer = NO systems.
+
+commit 3355d12f832909b05e8b022fad784c9f7af7341f
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Wed Apr 20 12:25:22 2005 +0000
+
+ Fix includes right throughout the Xserver tree:
+ change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
+ change "foo.h", "extensions/foo.h" and "X11/foo.h" to
+ <X11/extensions/foo.h> for extension headers, e.g. Xv.h;
+ change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
+
+commit 31cb4758eae4703d4de31a0b291847cefa855fc3
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:28:09 2005 +0000
+
+ Added fifo_read and fifo_write in tge generic bus definition
+
+commit 2b363e02c7c122f07e6fc406fb8ee52d97b55cad
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:26:36 2005 +0000
+
+ Added new options for the ATI driver: RageTheatreMicrocPath and
+ RageTheatreMicrocType
+
+commit 6286efeba564c63ec198c091e4bba22027586901
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:23:45 2005 +0000
+
+ Addeded support for FI1216ME (PAL) version of the tuner, detection of
+ UDA1380 sound processor
+
+commit 9a63c216e90622cd96d4555155df06dd66c3235b
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:18:26 2005 +0000
+
+ Use the theatre_detect to determine the chip ID and then load the
+ coresponding theatre module
+
+commit 247057762813f12f171b1fa05f31c5ace4c245a7
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:15:31 2005 +0000
+
+ Added functions that access the FIFO on RT200
+
+commit bcccf9259784f21d84d52c526aa68df0787118b4
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:13:45 2005 +0000
+
+ Added RT200 registers
+
+commit da9d27f8c8cccf2f40a244b25ffe0d3162c41a63
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:09:28 2005 +0000
+
+ This is the theatre chip detection module
+
+commit e4623bbce161c41ccac65210fd2539211e8af715
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:07:54 2005 +0000
+
+ Now the detection of the theatre chip is in other module called
+ theatre_detect
+
+commit 405b4dcb067346fce7fd9f6d8a6507a58c740ac7
+Author: Bogdan Diaconescu <b_diaconescu@yahoo.com>
+Date: Sun Apr 17 23:06:17 2005 +0000
+
+ Added the RageTheatre200 video demodulator support
+
+commit 310eb24a45b145efbd47196a1c3ec750cf004154
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Apr 4 23:07:08 2005 +0000
+
+ Release SDA/SDL I2C lines from an asserted-low state after a DDC probe,
+ which caused Apple Studio Display monitors to shut off after a second
+ or so (Ben Herrenschmidt).
+
+commit a416667f980a8679352be897af2fb3215da2d000
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Mar 31 23:18:10 2005 +0000
+
+ - Add new Radeon pci ids (ATI devrel), bug 2827
+
+commit 2e7365ffb767099faf3f191dc65341dbb3ef6247
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Thu Mar 31 18:26:05 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ Patch from Antti Ajanki - provide VBI capture support for PAL and SECAM
+ (You need GATOS km module to actually get at the data, the change
+ merely configures the hardware to handle it correctly).
+
+commit 9a3c1c8e4cba2885b707db0f855e11dc6e640b49
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Tue Mar 29 06:14:34 2005 +0000
+
+ bugzilla #2844 (https://bugs.freedesktop.org/show_bug.cgi?id=2844)
+ attachment #2230 (http://bugs.freedesktop.org/attachment.cgi?id=2230)
+ Wait for idle before uploading HW cursor data to the framebuffer to
+ avoid lockups when moving the mouse on some machines.
+
+commit 97863f112850be5206ea555297354c1c104fcdbe
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Mar 29 03:49:04 2005 +0000
+
+ bugzilla #2840 (https://bugs.freedesktop.org/show_bug.cgi?id=2840)
+ attachment #2227 (https://bugs.freedesktop.org/attachment.cgi?id=2227)
+ Fix build problems introduced by previous Radeon PLL errata
+ workarounds.
+
+commit 04cbb8d174cc5e3c7ecdd4e171170213ecb3c7ed
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sat Mar 26 00:53:01 2005 +0000
+
+ bugzilla #2057 (https://bugs.freedesktop.org/show_bug.cgi?id=2057)
+ attachment #1516 (https://bugs.freedesktop.org/attachment.cgi?id=1516)
+ Add TVOUT Support for Mach64 (Leif Delgass, fixed up for Xorg by me).
+
+commit 5be4bf9000bdf58584a10a6b8e285d0f173304fa
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Mar 24 06:45:52 2005 +0000
+
+ - radeon PLL access errata workarounds (Benjamin Herrenschmidt, acked by
+ Hui Yu)
+
+commit 34af3da80304a13b6407dcc0f4db54d6c8bb7a41
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Fri Mar 18 22:36:47 2005 +0000
+
+ Add support for production version of ATI RN50/ES1000. (ATI Technologies
+ Inc.)
+
+commit b56a5f96048b920a7751318dde211e881f53b2bb
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Thu Mar 17 03:36:25 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c Back out
+ RadeonWaitForIdleMMIO that I put in earlier.
+ From discussion on dri-devel we do not need to be as careful with INREG()
+ access on Radeons as we are on mach64 chips.
+ The fix is backed out due to:
+ it breaks DRI on SMP systems (due to absense of the lock in mouse handling
+ functions)
+ I am no longer able to reproduce the lockup I saw before
+
+commit 01a9c1157cdfbc5f74b035383e060b8419979563
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Tue Mar 8 23:41:37 2005 +0000
+
+ Fix accidentally removed depth pitch adjustment if displayWidth is not a
+ multiple of 32 pixels (bug #788)
+
+commit 9b994b40710103b263364153429ebdb9ea3f58ed
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Fri Mar 4 22:21:40 2005 +0000
+
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c Let through all chips
+ R300 and above - presumably the filtering should take place at the DRM
+ driver level. Correct cut'n'paste position misprint. Big thanks for
+ Michel Danzer for pointing out both improvements.
+
+commit 7d37a9f1f9fffe98067c3b5bc4749cc799fb0c77
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Fri Mar 4 05:48:31 2005 +0000
+
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c Turns out Radeon R420
+ chips work fine with R300 microcode. Thanks go to Rune Petersen for
+ careful investigation.
+
+commit f1edbb7852d85f660188498f578a0a697c2094fe
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Tue Feb 22 00:39:15 2005 +0000
+
+ Fix building radeon driver with BuildXF86DRI set to NO, the breakage was
+ caused by the tiling support (bug #2481)
+
+commit b853dbb50fb7c46fb5a70f349a3f264f0bb94e8c
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Feb 19 16:00:12 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ Fix an INREG without WaitForIdleMMIO. This one should be unlikely to
+ trigger, but we should still do this in the name of correctness.
+
+commit 84290849b4aee336e9db0779d93fc2d7ed8881b1
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Feb 19 00:57:23 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c
+ Add a call to RADEONWaitForIdleMMIO() within RADEONChooseCursorCRTC() as
+ this function uses OUTREGP() which, internally, calls INREG().
+ Thus (due to SilkenMouse) INREG() could be called while CP engine was busy.
+ I have observed this lockup on RV350 + R300 3d driver and have no idea
+ why no issues were reported for R200 cards. Perhaps, few of them have
+ enough memory to run merged fb and 3d simultaneously ?
+ This fix is the right thing to do, however, we might also need to put fifo
+ management calls into other cursor handling functions (in particular
+ those that write cursor image directly to video memory).
+
+commit 60070063e2130af0b9d5d34eed7adbae0c0fa67b
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Fri Feb 18 19:55:35 2005 +0000
+
+ Bug #2576: Add support for ATI RN50/ES1000. (ATI Technologies Inc.)
+
+commit 32032cdc78097840b7e2685fdec11bc0816aa0ac
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Feb 18 16:42:11 2005 +0000
+
+ Bug #2567: Fix reversed memset arguments. (David Krause)
+
+commit d5fadd6d86ae2a2f8c1bb55e36ab3d6d49649b46
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Wed Feb 9 02:22:39 2005 +0000
+
+ do not enable color tiling on r300 chips and newer, since it doesn't work
+ (yet) (Bugzilla #2504)
+
+commit 5ff35300e66a81ecc17c4e9396eb6d158f5c8e1b
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Wed Feb 2 21:35:30 2005 +0000
+
+ fix error with color tiling and hw scrolling, it looks like rv100 doesn't
+ need the special treatment, after all (reported by Stephane Marchesin)
+
+commit 7a9031683914bb1d17d223634e5dbf2e18955651
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Mon Jan 31 20:10:28 2005 +0000
+
+ change option EnableColorTiling to ColorTiling
+
+commit a2b123f7672ea678290798786ecb408a86d8c683
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Wed Jan 26 18:23:41 2005 +0000
+
+ (Stephane Marchesin, me) Add support for color (framebuffer) tiling.
+ Convert all XAA accel code to use explicit dst and src offset pitch
+ control to make it work. Use the new drm surface ioctls to set up the
+ tiled surfaces (if dri is enabled).
+
+commit e0df1e41724cd009fe7c833d2f9555f5d87e3202
+Author: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+Date: Wed Jan 26 17:39:56 2005 +0000
+
+ fix issues with mergedfb + pageflip (fix up sarea frame values)
+
+commit aeb01807263c47f49abaf00031d8505e8ebda82c
+Author: Egbert Eich <eich@suse.de>
+Date: Mon Jan 24 15:40:21 2005 +0000
+
+ Don't exclude 'RADEONInfoPtr info = ...' declaration even when not building
+ with DRI support (Bugzilla #2370)
+
+commit c6c30cfa354eb456638f10771a7cb02271696af2
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Thu Jan 13 17:35:49 2005 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ Some of the newer Radeons (R420 for example) have MM_TABLE's with size 0x33
+ (instead of 0x0c that we know). Furthermore, they lockup during access
+ of I2C bus !
+ Add a check to validate MM_TABLE. Note: the check is not more stringent as
+ other card manufacturers (like Asus or Tekram) might make cards with
+ slightly different MM_TABLE.
+
+commit 414c035a965b9db15656058c0e9cfeb3acf0158f
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Dec 24 18:26:19 2004 +0000
+
+ - Fix MCLK / SCLK calculation (Benjamin Herrenschmidt) bug 2144
+ - formatting cleanup
+
+commit 7c7b278883676412f5709cf812587b1408628133
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 19 19:49:33 2004 +0000
+
+ - Add support for Dualhead on M3/M4 (bug 1760)
+
+commit 08a45118b53129f3b9c30004404b906c7d7690be
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 19 19:29:10 2004 +0000
+
+ - Make dualhead ram allocation cleaner and related messages clearer
+
+commit 97cfd7b1489a9510cd233d6dc7154c210f32b9f5
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 19 06:56:37 2004 +0000
+
+ - Add DRI resume support (Micha Feigin) bug 2063
+
+commit 5b8577ae3200d967b4316156f16028cbcfd21983
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 19 06:11:06 2004 +0000
+
+ - fix warnings (Ronny V. Vindenes)
+
+commit 447124a663a24a7fffb0cd241d18dd896a43098b
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sat Dec 18 21:37:48 2004 +0000
+
+ - fix warning and potential error in radeon_driver.c
+
+commit ac6166158a58b377e7383950c169956f78b62093
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Dec 17 19:19:32 2004 +0000
+
+ - Add VGAAccess option to r128 driver. Based on Benh's radeon patch. r128
+ should now work on ppcs without usefbdev. To use this on ppc make sure
+ you set "usefbdev" to false. (bug 2089)
+ - Apply Benjamin Herrenschmidt's radeon patches (bug 2064)
+
+commit ac860ed6bbed84f6fc39a9acf53ee87646cfc8dc
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Fri Dec 17 16:50:36 2004 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ Move DMA robustness fix into radeon_dri.c::RADEONEnterServer() as per
+ suggestion by Michel Dänzer.
+ I could not trigger a lockup, even with r300_demo (possibly it has code
+ that flushes cache inside ?), so this must be good enough..
+
+commit 3ba5b525c4d6390184fdf79b28c954d5caadc6a4
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Thu Dec 16 16:26:56 2004 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ Add DMA robustness fix from Nicolai Haehnle.
+ TODO: move this fix into DRM driver or other parts of Xserver when R300
+ support is more stable.
+ This fix affects only R300 and later variants and results in small slowdown
+ when using CP acceleration in comparison to the previous version of the
+ driver.
+ We are still a lot faster in CP mode than using MMIO register access.
+
+commit c7b5f4a9eb49c0edd690c972be1015c98408ffaf
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Dec 15 19:35:33 2004 +0000
+
+ Bug #2008: Fix gcc4 compile problem.
+
+commit 8c1969f22fba2e1c9ed34d5ca77bee3a9f577640
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Dec 12 20:42:29 2004 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ Make DMA blitting code more robust.
+
+commit 8a9077bc70fd800983f138a224b95301992a2296
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Dec 12 19:28:37 2004 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ Enable DRM support permanently, allowing its use for any CHIP_FAMILY >
+ R300. Fix bug in naming Mesa3d driver (it was defaulting to r200)
+
+commit 845df6dd96785b59c44c670009c4fcdb20e147ab
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 12 17:29:45 2004 +0000
+
+ - missing diff from agp 8x support
+
+commit 36b92808e4ff1311f91543388c18cbe8e9eb4aab
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Dec 12 16:05:35 2004 +0000
+
+ Modified:
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Add R300 (and
+ later) DRM support, protected by X_R300_DRM option.
+ Note: at the moment this is for 2d support only, if enabled running
+ glxgears locks up my machine, but DMAForXv=yes works fine.
+
+commit 68ea67ce98b8f3ad4c17f987e0e2b92f79a96fbf
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 12 02:00:48 2004 +0000
+
+ - add AGP 8x support (Hui Yu, Michel Daenzer) bug 1819
+
+commit 93675d288d5ebb35d4724ebbfc455a703e25a311
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Dec 12 00:14:32 2004 +0000
+
+ - only mess with Dynamicclocks on mobility chips (Benh, me) bug 1912
+ - fix display detection (Hui Yu) bug 1559
+ - Add new option "BIOSHotkeys" to allow the bios to control output
+ switching (off by default) bug 2000
+ - update the savage man page to document the "CrtOnly" option
+
+commit ed217003127028483fd2956851d438977169d154
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Dec 6 13:27:56 2004 +0000
+
+ Apply Debian patch to re-POST via VBE if driver thinks it has no video
+ memory (a symptom of incompletely coming up from D3 power state), which
+ fixes some Dell laptops (closes: #1890).
+
+commit 2b8ab42b05b32710fa4f71a25e2f84192e637fbd
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Mon Dec 6 06:27:53 2004 +0000
+
+ When direct rendering is enabled, use hostdata blits to transfer data from
+ system memory to video RAM, which should reduce CPU usage especially
+ with larger videos. Can be disabled via Option "DMAForXv" if there
+ should be any stability issues, but it's been stable for me during a
+ week of testing. Based on a patch by Nikolaus Meine
+ <meine@tnt.uni-hannover.de>. Probably fix endianness issues in some
+ newer XVideo code, untested.
+ Also use hostdata blits to transfer RENDER image data to video RAM to avoid
+ idling the accelerator engine. Increases RENDER performance
+ significantly for me.
+ These changes were only tested on an M9 in a Titanium PowerBook but should
+ work with all Radeons where direct rendering is supported.
+
+commit 960d15ae3a44efe7c02a3d6d0acbabe63e07be74
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Dec 4 22:34:54 2004 +0000
+
+ Disable interrupt handling after the DRM handler has been removed,
+ preventing lockups (closes: #1886).
+ Allow pitches with a granularity of 32, rather than 64, because some
+ clamshell iBooks have 800-byte pitches. Change Xv allocation
+ granularity to 8 bytes, rather than 16 bytes, also (closes: #1888).
+
+commit 4706dfb7804a46e3cc5aafc3644f5a1134ab3d19
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Dec 4 22:24:06 2004 +0000
+
+ Retry CCE idle commands until the (higher) timeout is reached, and properly
+ stop the engine if we totally fail -- gets rid of serious performance
+ issues and lockups with r128 DRI.
+
+commit bce508a288d6b95708dbbfc6b235e2d95b6b96ad
+Author: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
+Date: Sat Dec 4 00:42:59 2004 +0000
+
+ Encoding of numerous files changed to UTF-8
+
+commit e9c9fd279ed43cc0d779266efcea69a67541c794
+Author: Egbert Eich <eich@suse.de>
+Date: Tue Nov 30 08:38:44 2004 +0000
+
+ Make Xorg the default server to install.
+ Avoid PIO access on IA64. Some IA64 machine check if legacy ports outside
+ the VGA range are accessed. The ATi driver however does this to probe
+ for ISA Mach8/32/64. Since no IA64 has ISA slots this restriction
+ should not be relevant to the user.
+ Avoid recursive calls of xf86scanpci(). This function normally detects that
+ it has been called before by checking if the PCI structure is filled
+ out. So far if this was not the case (because PCI probing has failed
+ for some reason) the function is traversed again. With the chipset
+ specific PCI bus probing this can lead to an endless recursive loop as
+ the post-probing code calls xf86scanpci() from within this function.
+ The OS specific PCI code for Linux worked only if bus 0 was populated as it
+ checked for the presence of /proc/bus/pci/00. Fixed to check for
+ /proc/bus/pci/<bus_to_look_for> instead.
+
+commit fffbcb761c178e025e3d55d428a803b1284481e0
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sat Nov 27 15:14:15 2004 +0000
+
+ xc/programs/Xserver/hw/xfree86/driver/ati/radeon.man
+ xc/programs/Xserver/hw/xfree86/driver/voodoo/voodo.man
+ xc/programs/Xserver/hw/xfree86/driver/wsfb/wsfb.man XF86Config ->
+ __xconfigfile__
+
+commit ad6347d187f9afa053c755aa3a2da9d821916cb2
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Tue Nov 23 21:27:43 2004 +0000
+
+ Use fp_horz_stretch instead of fp_vert_stretch for horizontal stretch
+ factor calculation in panel size derivation in the Radeon driver
+ (closes: #1881).
+
+commit ac054e427c6ce8cd5b89459dd3f16ca20e6b2d6a
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 24 18:17:36 2004 +0000
+
+ Add registers to facilitate work with stereo 3d.
+
+commit 445ed4b9b61347c866ee67dc0cb110904d667b84
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Fri Oct 22 03:51:58 2004 +0000
+
+ - make the overlay work on crtc2 again
+ - make PutVideo() MergedFB aware
+
+commit 54cffc3fe273cf3c9ed2a8aef833d4bd337a8a09
+Author: Egbert Eich <eich@suse.de>
+Date: Mon Oct 18 15:19:44 2004 +0000
+
+ Fixing one of the infamous 'control reaches end of non void function
+ problems'.
+
+commit 7a97d363327e0b2c8646d961e00d05f99766b54f
+Author: Egbert Eich <eich@suse.de>
+Date: Mon Oct 18 14:21:45 2004 +0000
+
+ Made handling of DevelDrivers for x86-64 more conformant to other
+ platforms.
+ Compress all font encodings (Stefan Dirsch).
+ Fixed warnings.
+ Turn on forwarding XNSpotLocation event to XIM server in OffTheSpot and
+ Root mode (bugzilla #1580, James Su).
+ Added another compose key combination for the Euro symbol (Stefan Dirsch).
+ Added support for UTF-8 in ja_JP, ko_KR and zh_TW locales (Mike Fabian).
+ Changed default encoding for ru from KOI8-R to ISO8859-5 (Mike Fabian).
+ This is the encoding that is also used by glibc. We may break other
+ libcs - lets see who complains.
+ Added explanation for DESTDIR to install to a different directory than /.
+ Added some early bailouts to atiprobe if PCI structure pointer is NULL to
+ prevent sig11.
+ XV support doesn't depend on 2D acceleration any more. This patch removes
+ this limitation from the NSC driver. This is a patch that I have
+ committed to XFree86 a while ago but never ported over to X.Org.
+ Matthieu Herrb contributed some build fixes.
+ Fixing SetDPMSTimers() so that DPMS*Time == 0 disables the appropriate
+ timer. This takes advantage of the fact that TimerSet() with a timeout
+ argument 0 behaves like TimerCanel().
+ Use /dev/xconsole (named pipe) or devpts for system logger (Werner Fink).
+ Create missing links for backward compatibility to XFree86 (Stefan Dirsch).
+ Changed comment to mention xorg.
+ Changed cursor for the 'kill' action from XC_draped_box to XC_Pirate. If
+ you don't like it we can change it back (original author unkown).
+ Added 'pic' to the man page rendering command pipeline (Werner Fink).
+ Added missing return value (Stefan Dirsch, Roland Mainz)
+
+commit c7ab340fecb94a89c25d6bc7f686b7c97cd3067f
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Oct 17 22:45:57 2004 +0000
+
+ - Fix DFP detection in r128 driver (bug 1386, Klaus Kusche)
+ - Fix EmulateWheelInertia defaults (bug 1115, Andrew Pimlott)
+
+commit ace6e1b7933cb415b8efc41dffa335938f9c89b5
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 17 17:57:33 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c On my Inspiron
+ 8600 both internal and external ports are marked DAC_PRIMARY in BIOS.
+ So be extra careful - only swap when the first port is not DAC_PRIMARY
+
+commit 22405e81b812c239b5d8653b402b5f846e6e10b1
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Sun Oct 17 16:52:02 2004 +0000
+
+ - Add Thomas' latest sis MergedFB enhancements to the radeon driver
+
+commit 186efa31b2cb7285717678bb1c4df4cd9e182395
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Wed Oct 13 23:02:42 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ xc/programs/Xserver/hw/xfree86/drivers/i2c/fi1236.h Squash annoying warning
+ about fi1236_dump_status
+
+commit 43b24861e36023613a99627c57ac44721ed1a548
+Author: Egbert Eich <eich@suse.de>
+Date: Tue Oct 12 19:13:43 2004 +0000
+
+ Set fbdev mode as the default mode on PPC (Olaf Hering).
+ Added support for IBM space saver keyboard (Stefan Dirsch). Added support
+ for Cherry CyMotion Master XPress (Marcus Schaefer).
+ Change order of SetDisplayDevice(), HWRestore(), UnbindGART() and
+ RestoreBIOSMemSize() to be exactly opposite to the Save procedure in
+ EnterVT() (Matthias Hopf, Alan Hourihane).
+ Fix text mode restauration by removing the assumption that the register
+ which determines which head is programmed is set. to the active head by
+ the BIOS (Mark Vojkovich).
+ When I wrote the resource code 5 years ago I made some assumptions which
+ turned out to be false: I've assumed that the bus number of the PCI
+ hostbridge would be the PCI bus the bridge links to. This is not
+ correct. Fixing this assumption is not easy. However I hope that the
+ attached patch will make the system work regardless as it 'ignores'
+ host bridges from which the target bus is not known. This should not
+ matter at all as we really don't care about host bridges (unless we
+ have bridge specific code which retrieves information about the
+ bridge).
+ Fixed server crash on reset when a structure allocated in PreInit() was
+ freed on CloseScreen().
+ Fixed ring buffer lock ups that happened because the structure that
+ contained ringbuffer data was not zeroed after allocation.
+ Fixed numerous warnings due to signed unsigned comparisons.
+ programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ (NVBacklightEnable): Changed the order in which the sequencer registers
+ and the backlight control registers are written. The sequencer control
+ register need to be written first otherwise DPMS screen blanking
+ produces vertical bars on a mobile device. lib/Xau/Imakefile: Build
+ libXau static library PIC so it can be linked into toolkits that would
+ like to wrap its functionality.
+
+commit 515b7c4b748f70c17aee149a33ee1b41632daa1a
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Mon Oct 11 23:20:26 2004 +0000
+
+ - fix resume on radeons (bug 1220)
+ - clean up some old cruft in the savage i2c code
+
+commit 07e1aaee862c4835601c704e14fcb12e28f4e78e
+Author: Egbert Eich <eich@suse.de>
+Date: Mon Oct 11 09:58:04 2004 +0000
+
+ Improving DPMS handling on VT swich and server termination/abort: previous
+ version called the driver directly and too late.
+ Unblank secondary screen explicitely. Don't rely on the value read during
+ register save as the BIOS have blanked the secondary head.
+ Checking if server isn't switched away before calling sync. Sanity check
+ for possible bugs in aother areas of the code.
+ Fixing default amount of of allocated video memory from AGP for i810: Use
+ 16MB if less than 192MB are installed else use 24MB (Matthias Hopf).
+
+commit a8c77480e7f4ddf8c45bea3ecec7b6564c0d6452
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Fri Oct 8 00:56:05 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c Remove redundant
+ and incorrect line.
+
+commit ec831d4fba23dc5f4d0a1450aa63efe5ff5937a2
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Tue Oct 5 01:16:01 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.h Patch from Matthieu
+ Herrb - fix compilation with DoLoadableServer=NO
+
+commit f1dadde8f642b332a2dcd2e2a5779f25fec7a3de
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Oct 4 21:52:47 2004 +0000
+
+ Correct radeon man page, IGP is supported for 3D but R400 is not.
+
+commit e3dba9841521466629828501c4fdccbba3d6af89
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Mon Oct 4 15:24:34 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c Do not probe for
+ Rage Theatre if no multimedia table is present and no parameters have
+ been specified.
+
+commit 4aadb784928ebbd60dce172c9a9a80e8d84e943f
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Mon Oct 4 14:53:11 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c This is really
+ embarassing - I found a part of code that had <cr> at the end of the
+ lines. I am certain I never saw it before - talk about code rot !
+
+commit db5a27081d9d3ab4cc1481a7d110d11103b3de19
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 3 23:54:40 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c Remove debugging
+ statement that cause loading of DLL modules to fail.
+
+commit 37a8d8a53f12f829783011c1e077fefb5729e618
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 3 14:41:45 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c Fix compilation
+ with gcc 3.4.x (patch by Ronny V. Vindenes)
+
+commit 6dbcd503fe21c6dec27c2b97adc0f39ba0a7ab2a
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 3 03:07:17 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.c
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h Port the rest of
+ GATOS Radeon-specific code. Remove "checkpoint" noise from logs. Test
+ with AIW Radeon 7500
+
+commit 7cb911291d459f08f54444d09081d3378fe73b8b
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sun Oct 3 00:01:14 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.c Detect and initialize
+ Rage Theatre (RT100)
+
+commit 6c1996174b9f7afc8f4e33c35e4864b31696d4d6
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Oct 2 20:55:42 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_vip.c Add VIP bus access
+ code, hook it into initialization system.
+
+commit 136649a1c2065624a9cf17386054c6595aa6d85e
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Oct 2 20:35:04 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/theatre*
+ xc/programs/Xserver/hw/xfree86/drivers/ati/generic_bus.h Add Rage Theatre
+ (RT100) module code and hook it into the build system
+
+commit 7a17b1c294fa8c7af0b1cdea0618cb6060479356
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Oct 2 01:59:13 2004 +0000
+
+ Modified:
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.h
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c Add code to
+ access and initialize multimedia i2c bus. Hook it up.
+
+commit e0123e24b6895dde7b385528da24c4e6e9d5a4cb
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Oct 2 01:36:43 2004 +0000
+
+ Add more multimedia registers.
+
+commit 576f53be4f0fa54bde7167872b7508b98e5c9454
+Author: Vladimir Dergachev <volodya@mindspring.com>
+Date: Sat Oct 2 00:43:08 2004 +0000
+
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h Add TV-in specific
+ options. Add TV-in specific fields to radeon per-screen structure, add
+ code to initialize them. Preserve MM_TABLE (instead of whole VBIOS as
+ was done in GATOS drivers)
+
+commit 9a9ba82172428b09312fdd6e11da04b21c8529fc
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Sep 22 04:38:03 2004 +0000
+
+ Bug #1252, #1253, #1255, #1256: Various typo fixes from Dave Jones.
+
+commit 700b0dc5148d0170c9223765d208ccef447242df
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Tue Sep 21 18:10:34 2004 +0000
+
+ Convert the ATI drivers to ANSI function prototypes.
+
+commit 17e5f3c1169066be1004306d12b5398cf01cbd35
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Sep 17 05:16:45 2004 +0000
+
+ Bugzilla #1170: Fix an overcounting of DMA in BEGIN_RING that wasn't
+ harmful. Bugzilla #1169: Add counting for
+ BEGIN_RING/OUT_RING/ADVANCE_RING to avoid these sorts of problems in
+ the future.
+
+commit 29bbee6b8a8dd1b883e07547691ff8e1289459ce
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Sep 17 03:04:50 2004 +0000
+
+ Bug #1192: Remove cfb support from drivers where its use is an option.
+ Delete xf24_32bpp, as s3virge was the last user. Fix up some comments
+ to refer to fb rather than cfb.
+
+commit cec06d4126f5f31d14ace73798c71ec75e544c45
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Thu Sep 16 22:15:05 2004 +0000
+
+ Update comment
+
+commit dbeb8d28ac3469f4a7d7d8dae979ae876d4cdcba
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Sep 3 23:26:19 2004 +0000
+
+ Updated release notes for bug #999.
+ Update Radeon man page to note that RenderAccel is now enabled by default
+ on certain chips.
+
+commit c829f667c8a79bbdd40e1f924d57638e7bd425dc
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Mon Aug 30 04:31:50 2004 +0000
+
+ Hotfix for Eric Anholt's fix for bug #1156 : Clear the
+ RADEON_NONSURF_AP0_SWP_16BPP bit for 4 bpp data, otherwise it breaks at
+ depth 16.
+
+commit 677246740b5b538e73a7fbde661ec6a97319430b
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Aug 27 20:31:26 2004 +0000
+
+ Back out my last change, dupe.
+
+commit a8eaa15264ff0db1596d653e91260c9a39a8b5ee
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Aug 27 18:32:40 2004 +0000
+
+ Bug #1061 (documentation-only update): Document the RenderAccel option in
+ the radeon manpage.
+
+commit 360dab062f895c19e1784146e6684f75a20c5b24
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Aug 27 03:36:28 2004 +0000
+
+ Bug #1156: Fix the build on PPC by splitting the byte-order-setting code
+ into a separate routine. While here, fix the byte swapping in the 32bpp
+ case. (Michel Daenzer)
+
+commit 9b19bbb4d37b79c97365aa492cd93931d492b3a8
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Aug 27 03:23:47 2004 +0000
+
+ Bug #1157: Fix Radeon line acceleration in the DMA case (Michel Daenzer).
+
+commit 838488b6b46359334e5e781589dbee3832909628
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Aug 27 02:38:56 2004 +0000
+
+ Fix Radeon compilation without Xinerama (Bug #1179, Simon Schubert).
+
+commit 5f54d4f45e2adc6b15e98152db88743c243aa128
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Aug 25 00:30:41 2004 +0000
+
+ Fix hangs during startup with Radeon driver (Bug #1007, Sjoerd Simons).
+ Fix i810 driver startup on Sony VAIO laptop (Bug #1084, Dave Airlie).
+ Fix several library build problem (Bug #1147).
+ Fix build problems (Bugs #1148 and #1149).
+
+commit dde880e876f455f1fd66efbcc055e177886397c9
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Tue Aug 17 20:22:55 2004 +0000
+
+ Reenable Radeon Render acceleration now that interactions with 3D clients
+ should be resolved.
+
+commit 279efef503fdbd442a9bd00f0073d9f6006d9e61
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Aug 15 00:44:57 2004 +0000
+
+ Fix unresolved symbol warnings in r128 driver (Adam Jackson)
+
+commit 955f2b89f94aaa20b5eafd045b01e3eeef3d29ad
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Aug 12 05:00:22 2004 +0000
+
+ Fix context switching on Radeons and build problem when XF86DRI is not
+ defined (Bug #922, Eric Anholt).
+
+commit 8f3ea53f26493a5f02410297a587d1d95c067094
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Thu Aug 12 02:23:46 2004 +0000
+
+ oops, these didn't added somehow.
+
+commit 6ec74414bd33e9d8dfd5119058d15f3a6206e9d9
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Thu Aug 12 01:03:06 2004 +0000
+
+ Factor out R{128,ADEON}Chipsets into their own headers so they can be
+ sanely included in both the ati core and the r128/radeon submodules;
+ r128 and radeon can now be directly loaded under dlloader. Teach imstt
+ about the dlloader- frendly way to talk to fbdevhw. (Partial for bugs
+ #393 and #400.)
+
+commit a5b1e4dd7adacd17b63582e477df3a585efb249a
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Aug 11 01:20:28 2004 +0000
+
+ Bug #978: Silence more unresolved symbol warnings from the ati driver.
+ Patch from Stefan Dirsch.
+
+commit 1356884132491010a2e41eb2b5be4a227b9b8138
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Aug 11 01:14:14 2004 +0000
+
+ Fix Radeon build problem with #define DoLoadableServer NO
+
+commit f5c93cb015e334975c2797a23b68798372a284c9
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Tue Aug 10 04:01:42 2004 +0000
+
+ Bug #978: Silence unresolved symbol warnings from the ati driver. Reported
+ by Michel Daenzer.
+
+commit a2da1caf5848a78b10afd99811fd1a5677af6786
+Author: Kevin E Martin <kem@kem.org>
+Date: Mon Aug 9 22:37:22 2004 +0000
+
+ Fix install problem on platforms not using xorg.cf/xfree86.cf (Bug #339,
+ Harold L. Hunt II, Alexander Gottwald).
+ Fix crash when using X core font in zh_CN.UTF-8 locale (Bug #368, Yu Shao,
+ David Dawes).
+ Fix glXMakeCurrent(Dpy, None, NULL) crash (Bug #719, Adam Jackson).
+ HP-PA build fix (Bug #828, Guy Martin, Paul Anderson).
+ Fix SDK build for GATOS and Wacom driver (Bug #829, Bryan Stine).
+ Fix attempt to read video ROM before enabling it (Bug #843, Ivan
+ Kokshaysky, Mike A. Harris).
+ Fix detection of primary adapter (Bug #843, Ivan Kokshaysky, Mike A.
+ Harris).
+ Clarify xset man page description of how to use the keyboard repeat rate
+ settings (Bug #846, Mike A. Harris).
+ Fix problem where print-screen key would get remapped to sys-req in certain
+ keymaps, which broke GNOME printscreen functionality (Bug #847, Owen
+ Taylor).
+ Fix several render problems:
+ - MMIO mode support
+ - Hang on IGP chips
+ - VT switching hang
+ - 3D render corruption (Bug #922, Hui Yu).
+
+commit 3171664c6a02424736864204b731249097fa7aae
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Aug 6 20:07:35 2004 +0000
+
+ Disable Render acceleration in Radeon driver temporarily until it no longer
+ conflicts with the 3D code.
+
+commit 27ef7adf3c1f6c3ca79b42b468d08b8542348cdd
+Author: Michel Daenzer <michel@daenzer.net>
+Date: Wed Aug 4 13:17:31 2004 +0000
+
+ Use info->ModeReg.surface_cntl to restore byte swapping for the framebuffer
+ aperture on big endian machines, remove superfluous local variables and
+ register reads.
+ Adapt framebuffer aperture byte swapping to texture format before copying
+ data to offscreen area and restore it afterwards on big endian
+ machines, fixes Render acceleration there.
+ reviewed by: Hui Yu <hyu@ati.com>, Kevin E. Martin <kem@freedesktop.org>
+
+commit 2efdc9f847fa9ff3096667b16df84817fc65605d
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Aug 4 10:05:37 2004 +0000
+
+ - Add two new XAA hooks, SetupForCPUToScreenTexture2 and
+ SetupForCPUToScreenAlphaTexture2. These add a dstFormat argument after
+ the previous format argument, which the driver needs to use to properly
+ set up the destination format. Two new arrays are added for the list of
+ destination formats supported that correspond to the previous format
+ arrays for sources.
+ - Make Render acceleration only occur when the new hook for that
+ acceleration type is supplied and the dst format list is set, along
+ with the src format list being set. Without knowing the destination
+ format, the Render acceleration couldn't properly support all the
+ destinations it might encounter.
+ - Bump XAA module minor version.
+ - Update the Radeon Render acceleration to use the new hooks when the XAA
+ module is sufficiently new. Fix a bug in the src/dst alpha booleans for
+ ops, and use them to set blend_cntl to support destinations without
+ alpha. Add missing PICT_a1r5g5b5 texture format, and add list
+ terminator. (!)
+
+commit 1e16c66551eed750330bb74a92208c45a7112cd0
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Tue Aug 3 09:42:20 2004 +0000
+
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_merged_fb.c Add missing
+ argument to xf86DrvMsg().
+
+commit fd440a1e2110e05d116207800c123c281fbf5e19
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Tue Aug 3 09:38:03 2004 +0000
+
+ programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c
+ programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h Fix Constification
+ problems.
+
+commit dd0f86c4cb046c79a65144f767e97fd99e7f61c9
+Author: Kevin E Martin <kem@kem.org>
+Date: Sun Aug 1 23:22:01 2004 +0000
+
+ Fix Radeon crash on server exit or generation
+
+commit c64f90b673f5c487dfe059f1636b04a1c2ab7dc2
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sat Jul 31 01:21:18 2004 +0000
+
+ Change several LoaderSymbol calls introduced by the bug #400 patch to
+ *Weak() resolver functions.
+
+commit b091b4b074cd61c9067ba95ef016f7a29a38c38d
+Author: Hui YU <hyu@ati.com>
+Date: Fri Jul 30 22:20:21 2004 +0000
+
+ Support for New radeon chips: R420/M18, R423, RV370/M22, RV380/M24, RS300.
+ Add special handlings for DELL triple-head server (RV100). Misc. bug
+ fixes for flat panel, host aperture, etc (Bug #946)
+
+commit d04f61bfaf6952e832d52e1cd6014e86435aebd9
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Fri Jul 30 20:30:51 2004 +0000
+
+ Bug #400 (partial): Driver fixes for the dlloader. When using dlloader, all
+ framebuffer formats except cfb and the overlay modes should work, and
+ r128 and radeon need to be loaded from the ati driver (both issues to
+ be fixed soon). Tested on i740, s3virge, mach64, tdfx, vesa, and vga
+ drivers. elfloader users shouldn't be affected.
+
+commit 6dcb78bb818c3c1c7fe406bee5379f9bef023f4b
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Wed Jul 28 02:35:30 2004 +0000
+
+ - add gamma correction support to the radeon video overlay
+
+commit 26029dc9378bbd95835d397402bfc9e6b4f1a478
+Author: Alex Deucher <agd5f@yahoo.com>
+Date: Mon Jul 26 23:14:37 2004 +0000
+
+ - Add Radeon DynamicClocks option
+ - Add small fixes and clean ups from ati's last code drop (typo_fixes,
+ remove_fudge, laptop, xvfix)
+ - fix possible segfault in mga_dri.c (Ryan Underwood)
+ - Add Xv support to pre-nm2160 neomagic chipsets
+
+commit 9f251b16e702da486f824307e72a6f80c6987b5d
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Jul 26 19:14:58 2004 +0000
+
+ Bug #848: Clean up gatos notice messages.
+
+commit 6f1e01ecdb11913fd768b9918f516b8379b7858f
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Jul 23 05:36:14 2004 +0000
+
+ - Add a new option, BuildDevelDRIDrivers, which controls whether
+ DevelDRIDrivers is non-empty. DevelDRIDrivers contains those drivers
+ aren't built by default either due to being unusable on that
+ architecture (but buildable for testing) or due to security concerns,
+ as in the mach64 and savage cases.
+ - Merge the Mach64 DDX's DRI support, under the XF86DRI_DEVEL define, which
+ is set only when BuildDevelDRIDrivers is set.
+ - Fix up of the sets of DRI drivers built for various architectures.
+ - Fix build of unichrome DRI driver, which is now enabled on x86.
+
+commit b68322f467b7e524092af15e33ab872abb99b6a2
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Thu Jul 22 07:03:04 2004 +0000
+
+ Merge and resolve conflicts from DRI/DRM/Mesa 20040721 imports.
+
+commit 57de5e285d6271fc4b2bc8a951a98be6308d649d
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Fri Jul 16 04:38:54 2004 +0000
+
+ Bugzilla #803,804: Fix build in the !XF86DRI case after DRI and Radeon
+ Render acceleration merges.
+
+commit 9b0ec803bd588d9af778bfd307ee6d958e4a1e73
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sat Jul 10 14:22:35 2004 +0000
+
+ Bugzilla #849: Fix DRI pagesize assumptions in radeon and r128 drivers.
+ from mharris@, reviewed and applied to DRI by airlied@.
+
+commit ccd95bfb291a0c70272fab6822ef379b83dc298d
+Author: Egbert Eich <eich@suse.de>
+Date: Tue Jul 6 14:37:47 2004 +0000
+
+ Separated Intel drivers from default DriDrivers to avoid building them on
+ IA64 (Egbert Eich).
+ Fixed wrong function prototype (Egbert Eich).
+ Don't test for generic VGA on IA64 (Egbert Eich).
+ Fixed a segfault when accessing a structure before verifying the pointer
+ exists (Egbert Eich).
+ Added a showcache option for debugging (Egbert Eich).
+ Increase default video RAM size to 16MB when DRI is enabled and more than
+ 128MB are available (Egbert Eich). Fixed lockups during mode switch.
+ Problem was introduced when attempting to copy the behavior during
+ LeaveVT()/EnterVT() but but forgetting to call I810DRILeave() before
+ I810DRIEnter(). The entire DRILeave()/Enter() scenario has been
+ commented out as it didn't seem to be necessary (Egbert Eich).
+ Fix TweakMemorySize() (tested with i855/i865) (Egbert Eich).
+ increased MAX_DEVICES to 128 (Egbert Eich).
+ Use OS provided PCI config space access as default method (Egbert Eich).
+ Added support for Linux 2.6 proc file format.
+ Fixed unaligned accesses to pieces of the VBE info block. VESA did not
+ align elements to size (Egbert Eich).
+
+commit 6bdf3d36ea3086432af5157540fde4e0aa0c44dc
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Jun 20 07:34:55 2004 +0000
+
+ Add file missed in last commit: Bug #748:
+ - Add Render acceleration for Radeon 100 and 200-series cards, enabled by
+ default. Notable performance gains include 27fps in cairogears instead
+ of 6fps (compared to 50 with glitz), and my disks are now the
+ bottleneck in an ls -lR in gnome-terminal. Only supported in DRI mode
+ because the MMIO submission hangs the card so far, but the code is left
+ in because it may be supportable soon.
+ - Add xorg.conf options to disable Render acceleration and to force the
+ subpixel order in the server (Hui Yu).
+ Many thanks to Hui Yu at ATI for the code this was based off of, Michel
+ Daenzer for bugfixes and suggestions, and LinuxFund for sponsoring the
+ work.
+
+commit 8c1b37420ea890f76edb97aed61ee427a871cd3f
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Jun 20 07:26:08 2004 +0000
+
+ Bug #748:
+ - Add Render acceleration for Radeon 100 and 200-series cards, enabled by
+ default. Notable performance gains include 27fps in cairogears instead
+ of 6fps (compared to 50 with glitz), and my disks are now the
+ bottleneck in an ls -lR in gnome-terminal. Only supported in DRI mode
+ because the MMIO submission hangs the card so far, but the code is left
+ in because it may be supportable soon.
+ - Add xorg.conf options to disable Render acceleration and to force the
+ subpixel order in the server (Hui Yu).
+ Many thanks to Hui Yu at ATI for the code this was based off of, Michel
+ Daenzer for bugfixes and suggestions, and LinuxFund for sponsoring the
+ work.
+
+commit 6ecf374d500afe6da494dfdd6566396ec65b6d6a
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Jun 16 09:43:59 2004 +0000
+
+ Merge DRI-trunk-20040613 changes in programs/Xserver/hw/xfree86/drivers,
+ with the following notes:
+ - Savage and Mach64 (= ati/ati*.[ch] changes) DRI not merged due to
+ insecurity.
+ - VIA driver converted to new drmContext and drmHandle names.
+ - Radeon driver merge conflicted in many places, and MergedFB at least
+ could probably use some checking at this point.
+
+commit bea8085e04136b0ef513c17bb65c54069ec531e1
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Jun 16 09:25:58 2004 +0000
+
+ DRI trunk-20040613 import
+
+commit 7b588cda922992a8ee2d04853ba1533cf43592a3
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Jun 16 09:25:58 2004 +0000
+
+ Initial revision
+
+commit 6cbb5bbff43d65a762d432659793333868837f0b
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Wed Jun 16 09:22:56 2004 +0000
+
+ DRI XFree86-4_3_99_12-merge import
+
+commit 3586c3c7955365a2af0b8a286ea0d0488ddfd137
+Author: Egbert Eich <eich@suse.de>
+Date: Fri Apr 23 19:26:46 2004 +0000
+
+ Merging XORG-CURRENT into trunk
+
+commit 538768e0f472026325be9dd37dc4bfe7ea7d3b75
+Author: Egbert Eich <eich@suse.de>
+Date: Sun Mar 14 08:33:20 2004 +0000
+
+ Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
+
+commit 5f179e796d1cd310790d06eebb474ad67114ec84
+Author: Egbert Eich <eich@suse.de>
+Date: Wed Mar 3 12:12:18 2004 +0000
+
+ Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
+
+commit 493c44580191beff63575c4032f772fbbf1b06eb
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 13:35:52 2004 +0000
+
+ readding XFree86's cvs IDs
+
+commit 942a47fd3c5e8df85642672c01072bf97285bc30
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 09:23:18 2004 +0000
+
+ Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
+
+commit dda79b5ee3eb49f924a3213592d93ba981c99394
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Mon Feb 23 20:35:02 2004 +0000
+
+ Import most of XFree86 4.4RC3. This import excludes files which have the
+ new license. If we want to, later we can import 4.4RC3 again and pick
+ up the files that have the new license, but for now the vendor branch
+ is "pure."
+
+commit 08104f18ac497561c969694ff709da6c361ccea7
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Jan 29 08:08:34 2004 +0000
+
+ Importing vendor version xf86-012804-2330 on Thu Jan 29 00:06:33 PST 2004
+
+commit 162d76b9c48ed17d6e645057db58c9f13436f25f
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Dec 19 20:55:06 2003 +0000
+
+ XFree86 4.3.99.902 (RC 2)
+
+commit 195772ec74f7a9b7d5bf294b3bc2c3b960e08a31
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Thu Dec 4 22:03:16 2003 +0000
+
+ XFree86 4.3.99.901 (RC 1)
+
+commit 73105e438e90f950249cb265ba99001d4db3dc60
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Tue Nov 25 19:28:36 2003 +0000
+
+ XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
+
+commit 0a53864f9581196604d04fd28b4e94a9b0b73d18
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Tue Nov 25 19:28:36 2003 +0000
+
+ Initial revision
+
+commit c56aaef79028261e0a3be0c86ffd3f16b6bdd9ba
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:48:55 2003 +0000
+
+ XFree86 4.3.0.1
+
+commit d09f463a5d1ce73e0b65d5276fbcca393fa2da46
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:48:55 2003 +0000
+
+ Initial revision
+
+commit d9af6dc32652502d84ea8da5d57a5ab45429c4ad
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 15:54:49 2003 +0000
+
+ R6.6 is the Xorg base-line
diff --git a/Makefile.am b/Makefile.am
index 16e0502..c51060a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,4 +30,11 @@ README.r128: README.r128.sgml
endif
-EXTRA_DIST = README.ati README.r128 README.ati.sgml README.r128.sgml
+EXTRA_DIST = README.ati README.r128 README.ati.sgml README.r128.sgml ChangeLog
+
+# Always regenerate the changelog
+CLEANFILES = ChangeLog
+ChangeLog: FORCE
+ git-log > ChangeLog
+FORCE:
+
diff --git a/Makefile.in b/Makefile.in
index d4d7b40..d780e22 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -33,7 +33,6 @@
# ADAM JACKSON 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.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -41,7 +40,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -55,7 +53,44 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/configure COPYING ChangeLog compile config.guess \
+ config.sub depcomp install-sh ltmain.sh missing
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
@@ -147,6 +182,8 @@ RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+USE_EXA_FALSE = @USE_EXA_FALSE@
+USE_EXA_TRUE = @USE_EXA_TRUE@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
@@ -164,6 +201,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -184,6 +223,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
@@ -192,47 +232,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man
+EXTRA_DIST = README.ati README.r128 README.ati.sgml README.r128.sgml ChangeLog
-EXTRA_DIST = README.ati README.r128 README.ati.sgml README.r128.sgml
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/configure COPYING \
- ChangeLog Makefile.am aclocal.m4 compile config.guess \
- config.h.in config.sub configure configure.ac depcomp \
- install-sh ltmain.sh missing mkinstalldirs
-DIST_SUBDIRS = $(SUBDIRS)
+# Always regenerate the changelog
+CLEANFILES = ChangeLog
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
+ cd $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
-
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@@ -244,10 +285,10 @@ config.h: stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
- touch $(srcdir)/config.h.in
+ rm -f stamp-h1
+ touch $@
distclean-hdr:
-rm -f config.h stamp-h1
@@ -269,7 +310,13 @@ uninstall-info-am:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -281,7 +328,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -289,7 +336,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -310,7 +363,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -321,14 +374,6 @@ ctags-recursive:
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -337,19 +382,22 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -359,10 +407,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -385,19 +434,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
distdir: $(DISTFILES)
$(am__remove_distdir)
@@ -413,7 +449,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -428,15 +464,17 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -447,24 +485,46 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
-
dist-bzip2: distdir
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
@@ -484,19 +544,20 @@ distcheck: dist
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
- (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -520,7 +581,6 @@ check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
-
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@@ -538,9 +598,10 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -552,13 +613,15 @@ clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
- distclean-tags
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -595,23 +658,20 @@ uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
- clean-generic clean-libtool clean-recursive ctags \
- ctags-recursive dist dist-all dist-bzip2 dist-gzip distcheck \
- distclean distclean-generic distclean-hdr distclean-libtool \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-am clean clean-generic clean-libtool clean-recursive \
+ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ dist-shar dist-tarZ dist-zip distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
distclean-recursive distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am dvi-recursive info info-am \
- info-recursive install install-am install-data install-data-am \
- install-data-recursive install-exec install-exec-am \
- install-exec-recursive install-info install-info-am \
- install-info-recursive install-man install-recursive \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
- installdirs-am installdirs-recursive maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive mostlyclean \
- mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
- pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
- tags-recursive uninstall uninstall-am uninstall-info-am \
- uninstall-info-recursive uninstall-recursive
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am
@BUILD_LINUXDOC_TRUE@README.ati: README.ati.sgml
@@ -619,6 +679,9 @@ uninstall-info: uninstall-info-recursive
@BUILD_LINUXDOC_TRUE@README.r128: README.r128.sgml
@BUILD_LINUXDOC_TRUE@ $(MAKE_TEXT) README.r128.sgml && mv README.r128.txt README.r128
+ChangeLog: FORCE
+ git-log > ChangeLog
+FORCE:
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/README.ati b/README.ati
index a686a4d..7dddbee 100644
--- a/README.ati
+++ b/README.ati
@@ -1,4 +1,4 @@
- $Id: ati.sgml,v 1.2 2004/04/23 19:23:59 eich Exp $ Based on
+ $Id$ Based on
XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v
3.42 2003/01/20 03:43:07 dawes Exp ATI Adapters README file
Marc Aurele La France
diff --git a/README.ati.sgml b/README.ati.sgml
index b7c3885..0ac826a 100644
--- a/README.ati.sgml
+++ b/README.ati.sgml
@@ -15,7 +15,7 @@
<ident>
-$Id: ati.sgml,v 1.3 2005/12/19 07:56:55 alanc Exp $
+$Id$
Based on XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.42 2003/01/20 03:43:07 dawes Exp
</ident>
diff --git a/aclocal.m4 b/aclocal.m4
index e20d008..f4bc55b 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.7.9 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,896 +11,9 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
-
-# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_PREREQ([2.52])
-
-# serial 6
-
-# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 10
-
-AC_PREREQ([2.54])
-
-# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
-# the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_MISSING_PROG(AMTAR, tar)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.7.9])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# -*- Autoconf -*-
-
-
-# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# AM_AUX_DIR_EXPAND
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-# Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])
-
-AC_DEFUN([AM_AUX_DIR_EXPAND], [
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# AM_PROG_INSTALL_STRIP
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# -*- Autoconf -*-
-# Copyright (C) 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# serial 5 -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- : > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking Speeds up one-time builds
- --enable-dependency-tracking Do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-#serial 2
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
- test -z "$DEPDIR" && continue
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 5
-
-AC_PREREQ(2.52)
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.])
-fi])])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-# serial 48 Debian 1.5.22-2 AC_PROG_LIBTOOL
+# serial 48 AC_PROG_LIBTOOL
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
@@ -2465,10 +1578,27 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -2480,18 +1610,6 @@ linux*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
knetbsd*-gnu)
version_type=linux
need_lib_prefix=no
@@ -3267,7 +2385,7 @@ linux*)
lt_cv_deplibs_check_method=pass_all
;;
-netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
else
@@ -4276,7 +3394,7 @@ case $host_os in
;;
esac
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
wlarc=
@@ -5900,7 +5018,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
;;
esac
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
;;
osf3* | osf4* | osf5*)
case $cc_basename in
@@ -6252,12 +5370,6 @@ ifelse([$1],[CXX],[
cygwin* | mingw*)
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
;;
- kfreebsd*-gnu)
- _LT_AC_TAGVAR(link_all_deplibs, $1)=no
- ;;
- linux*)
- _LT_AC_TAGVAR(link_all_deplibs, $1)=no
- ;;
*)
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
@@ -6454,13 +5566,12 @@ EOF
$echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
- _LT_AC_TAGVAR(link_all_deplibs, $1)=no
else
_LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -6790,21 +5901,12 @@ _LT_EOF
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
;;
-
- # GNU/kFreeBSD uses gcc -shared to do shared libraries.
- kfreebsd*-gnu)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(link_all_deplibs, $1)=no
- ;;
hpux9*)
if test "$GCC" = yes; then
@@ -6901,7 +6003,7 @@ _LT_EOF
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -7303,55 +6405,6 @@ SED=$lt_cv_path_SED
AC_MSG_RESULT([$SED])
])
-dnl Copyright 2005 Red Hat, Inc
-dnl
-dnl Permission to use, copy, modify, distribute, and sell this software and its
-dnl documentation for any purpose is hereby granted without fee, provided that
-dnl the above copyright notice appear in all copies and that both that
-dnl copyright notice and this permission notice appear in supporting
-dnl documentation.
-dnl
-dnl The above copyright notice and this permission notice shall be included
-dnl in all copies or substantial portions of the Software.
-dnl
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-dnl OTHER DEALINGS IN THE SOFTWARE.
-dnl
-dnl Except as contained in this notice, the name of the copyright holders shall
-dnl not be used in advertising or otherwise to promote the sale, use or
-dnl other dealings in this Software without prior written authorization
-dnl from the copyright holders.
-dnl
-
-# XORG_DRIVER_CHECK_EXT()
-# --------------------------
-# Checks for the $1 define in xorg-server.h (from the sdk). If it
-# is defined, then add $1 to $REQUIRED_MODULES.
-
-AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include "xorg-server.h"
-#if !defined $1
-#error $1 not defined
-#endif
- ]])],
- [_EXT_CHECK=yes],
- [_EXT_CHECK=no])
- CFLAGS="$SAVE_CFLAGS"
- AC_MSG_CHECKING([if $1 is defined])
- AC_MSG_RESULT([$_EXT_CHECK])
- if test "$_EXT_CHECK" != no; then
- REQUIRED_MODULES="$REQUIRED_MODULES $2"
- fi
-])
-
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
@@ -7509,7 +6562,885 @@ else
fi[]dnl
])# PKG_CHECK_MODULES
-dnl $Id: xorg-macros.m4,v 1.7 2005/12/09 03:01:09 kem Exp $
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+ [AM_AUTOMAKE_VERSION([1.9.6])])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $1 | $1:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake. There are at least two reasons why we must not
+# use `-m 0755':
+# - it causes special bits like SGID to be ignored,
+# - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out. Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+dnl $Id: xorg-macros.m4,v 1.8 2005/12/09 15:28:41 kem Exp $
dnl
dnl Copyright 2005 Sun Microsystems, Inc. All rights reserved.
dnl
@@ -7783,6 +7714,55 @@ AC_SUBST([XTMALLOC_ZERO_CFLAGS])
]) # XORG_CHECK_MALLOC_ZERO
dnl Copyright 2005 Red Hat, Inc
+dnl
+dnl Permission to use, copy, modify, distribute, and sell this software and its
+dnl documentation for any purpose is hereby granted without fee, provided that
+dnl the above copyright notice appear in all copies and that both that
+dnl copyright notice and this permission notice appear in supporting
+dnl documentation.
+dnl
+dnl The above copyright notice and this permission notice shall be included
+dnl in all copies or substantial portions of the Software.
+dnl
+dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+dnl OTHER DEALINGS IN THE SOFTWARE.
+dnl
+dnl Except as contained in this notice, the name of the copyright holders shall
+dnl not be used in advertising or otherwise to promote the sale, use or
+dnl other dealings in this Software without prior written authorization
+dnl from the copyright holders.
+dnl
+
+# XORG_DRIVER_CHECK_EXT()
+# --------------------------
+# Checks for the $1 define in xorg-server.h (from the sdk). If it
+# is defined, then add $1 to $REQUIRED_MODULES.
+
+AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include "xorg-server.h"
+#if !defined $1
+#error $1 not defined
+#endif
+ ]])],
+ [_EXT_CHECK=yes],
+ [_EXT_CHECK=no])
+ CFLAGS="$SAVE_CFLAGS"
+ AC_MSG_CHECKING([if $1 is defined])
+ AC_MSG_RESULT([$_EXT_CHECK])
+ if test "$_EXT_CHECK" != no; then
+ REQUIRED_MODULES="$REQUIRED_MODULES $2"
+ fi
+])
+
+dnl Copyright 2005 Red Hat, Inc
dnl
dnl Permission to use, copy, modify, distribute, and sell this software and its
dnl documentation for any purpose is hereby granted without fee, provided that
diff --git a/compile b/compile
index ac07cc5..1b1d232 100755
--- a/compile
+++ b/compile
@@ -1,8 +1,9 @@
#! /bin/sh
-
# Wrapper for compilers which do not understand `-c -o'.
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -17,91 +18,125 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
-# Usage:
-# compile PROGRAM [ARGS]...
-# `-o FOO.o' is removed from the args passed to the actual compile.
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
-# Usage statement added by Billy Biggs <vektor@dumbterm.net>.
-if [ -z $1 ]; then
- echo "Wrapper for compilers which do not understand '-c -o'."
- echo "usage: compile PROGRAM [ARGS]..."
- echo "'-o FOO.o' is removed from the args passed to the actual compile."
- exit 1
-fi
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
-prog=$1
-shift
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+esac
ofile=
cfile=
-args=
-while test $# -gt 0; do
- case "$1" in
- -o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we do something ugly here.
- ofile=$2
- shift
- case "$ofile" in
- *.o | *.obj)
- ;;
- *)
- args="$args -o $ofile"
- ofile=
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- args="$args $1"
- ;;
- *)
- args="$args $1"
- ;;
- esac
- shift
+eat=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
+ # So we strip `-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
done
if test -z "$ofile" || test -z "$cfile"; then
- # If no `-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # `.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$prog" $args
+ # If no `-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # `.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
fi
# Name of file we expect compiler to create.
-cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
-lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
- if mkdir $lockdir > /dev/null 2>&1; then
- break
- fi
- sleep 1
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir $lockdir; exit 1" 1 2 15
+trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
-"$prog" $args
-status=$?
+"$@"
+ret=$?
if test -f "$cofile"; then
- mv "$cofile" "$ofile"
+ mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ mv "${cofile}bj" "$ofile"
fi
-rmdir $lockdir
-exit $status
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/config.guess b/config.guess
index ad5281e..2fc3acc 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2005-08-03'
+timestamp='2003-06-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -17,15 +17,13 @@ timestamp='2005-08-03'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
-
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
@@ -55,7 +53,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -68,11 +66,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
+ echo "$timestamp" ; exit 0 ;;
--version | -v )
- echo "$version" ; exit ;;
+ echo "$version" ; exit 0 ;;
--help | --h* | -h )
- echo "$usage"; exit ;;
+ echo "$usage"; exit 0 ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -125,7 +123,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+esac ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -138,6 +136,13 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+## for Red Hat Linux
+if test -f /etc/redhat-release ; then
+ VENDOR=redhat ;
+else
+ VENDOR= ;
+fi
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -198,29 +203,50 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit ;;
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
*:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
+ if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
+ fi
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
@@ -258,49 +284,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
- # A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha*:OpenVMS:*:*)
+ echo alpha-hp-vms
+ exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit ;;
+ exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit ;;
+ exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit ;;
+ exit 0;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
+ exit 0 ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
+ exit 0 ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ exit 0;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ exit 0;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -308,32 +327,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
else
echo pyramid-pyramid-bsd
fi
- exit ;;
+ exit 0 ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit ;;
+ exit 0 ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ exit 0 ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
@@ -342,10 +361,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
+ exit 0 ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -357,10 +376,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit ;;
+ exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -371,40 +390,37 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit ;;
+ exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -428,33 +444,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
- exit ;;
+ exit 0 ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
- exit ;;
+ exit 0 ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
- exit ;;
+ exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit ;;
+ exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit ;;
+ exit 0 ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit ;;
+ exit 0 ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit ;;
+ exit 0 ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -470,29 +485,29 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit ;;
+ exit 0 ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit ;;
+ exit 0 ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit ;;
+ exit 0 ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit ;;
+ exit 0 ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
+ exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
- exit ;;
+ exit 0 ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
@@ -500,7 +515,7 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
+ exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
@@ -515,18 +530,14 @@ EOF
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit ;;
+ exit 0 ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -540,28 +551,28 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
+ exit 0 ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit ;;
+ exit 0 ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit ;;
+ exit 0 ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit ;;
+ exit 0 ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit ;;
+ exit 0 ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit ;;
+ exit 0 ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit ;;
+ exit 0 ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
@@ -623,19 +634,9 @@ EOF
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
@@ -643,11 +644,11 @@ EOF
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
+ exit 0 ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
- exit ;;
+ exit 0 ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -675,166 +676,150 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
echo unknown-hitachi-hiuxwe2
- exit ;;
+ exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit ;;
+ exit 0 ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit ;;
+ exit 0 ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit ;;
+ exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit ;;
+ exit 0 ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit ;;
+ exit 0 ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit ;;
+ exit 0 ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit ;;
+ exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit 0 ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit 0 ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit 0 ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit 0 ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ exit 0 ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
- exit ;;
+ exit 0 ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ exit 0 ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ exit 0 ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ exit 0 ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ exit 0 ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
+ exit 0 ;;
+ *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #if __GLIBC__ >= 2
+ LIBC=gnu
+ #else
+ LIBC=
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
+ exit 0 ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
+ exit 0 ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
+ exit 0 ;;
x86:Interix*:[34]*)
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit ;;
+ exit 0 ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
- exit ;;
+ exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
- exit ;;
+ exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
+ exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit ;;
+ exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ exit 0 ;;
*:GNU:*:*)
- # the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
+ exit 0 ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit ;;
+ exit 0 ;;
arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
cris:Linux:*:*)
echo cris-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
+ exit 0 ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -852,7 +837,7 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
mips64:Linux:*:*)
eval $set_cc_for_build
@@ -871,17 +856,14 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
- or32:Linux:*:*)
- echo or32-unknown-linux-gnu
- exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
+ echo powerpc-${VENDOR:-unknown}-linux-gnu
+ exit 0 ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
+ echo powerpc64-${VENDOR:-unknown}-linux-gnu
+ exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -895,7 +877,7 @@ EOF
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
+ exit 0 ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -903,25 +885,25 @@ EOF
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
- exit ;;
+ exit 0 ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
+ echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
+ exit 0 ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
+ exit 0 ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit ;;
+ echo x86_64-${VENDOR:-unknown}-linux-gnu
+ exit 0 ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@@ -939,15 +921,15 @@ EOF
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
+ exit 0 ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit ;;
+ exit 0 ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
+ exit 0 ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
@@ -970,23 +952,17 @@ EOF
LIBC=gnuaout
#endif
#endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
- exit ;;
+ exit 0 ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
@@ -994,27 +970,24 @@ EOF
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
+ exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
+ exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
+ exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
+ exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
+ exit 0 ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1022,16 +995,15 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ exit 0 ;;
+ i*86:*:5:[78]*)
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
+ exit 0 ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1049,73 +1021,73 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit ;;
+ exit 0 ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit ;;
+ exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit ;;
+ exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit ;;
+ exit 0 ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit ;;
+ exit 0 ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit ;;
+ exit 0 ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
- exit ;;
+ exit 0 ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
+ && echo i486-ncr-sysv4 && exit 0 ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit ;;
+ exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit ;;
+ exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit ;;
+ exit 0 ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1123,73 +1095,68 @@ EOF
else
echo ns32k-sni-sysv
fi
- exit ;;
+ exit 0 ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
- exit ;;
+ exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit ;;
+ exit 0 ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
+ exit 0 ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
- exit ;;
+ exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit ;;
+ exit 0 ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit ;;
+ exit 0 ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit ;;
+ exit 0 ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit ;;
+ exit 0 ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit ;;
+ exit 0 ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
+ case `uname -p` in
*86) UNAME_PROCESSOR=i686 ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
+ powerpc) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1197,25 +1164,22 @@ EOF
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
+ exit 0 ;;
+ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
- exit ;;
+ exit 0 ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit ;;
+ exit 0 ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
+ exit 0 ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
@@ -1226,44 +1190,28 @@ EOF
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
+ exit 0 ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
- exit ;;
+ exit 0 ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
- exit ;;
+ exit 0 ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
- exit ;;
+ exit 0 ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
- exit ;;
+ exit 0 ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
- exit ;;
+ exit 0 ;;
*:ITS:*:*)
echo pdp10-unknown-its
- exit ;;
+ exit 0 ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
+ exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1295,7 +1243,7 @@ main ()
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
+ printf ("arm-acorn-riscix"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
@@ -1384,12 +1332,11 @@ main ()
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
# Convex versions that predate uname can use getsysinfo(1)
@@ -1398,22 +1345,22 @@ then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit ;;
+ exit 0 ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit 0 ;;
c34*)
echo c34-convex-bsd
- exit ;;
+ exit 0 ;;
c38*)
echo c38-convex-bsd
- exit ;;
+ exit 0 ;;
c4*)
echo c4-convex-bsd
- exit ;;
+ exit 0 ;;
esac
fi
@@ -1424,9 +1371,7 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
-and
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+ ftp://ftp.gnu.org/pub/gnu/config/
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index eb25104..e665a72 100644
--- a/config.h.in
+++ b/config.h.in
@@ -2,6 +2,15 @@
#include "xorg-server.h"
+/* Major version */
+#undef ATI_VERSION_MAJOR
+
+/* Minor version */
+#undef ATI_VERSION_MINOR
+
+/* Patch version */
+#undef ATI_VERSION_PATCH
+
/* Avoid PIO and use MMIO for atimisc. */
#undef AVOID_CPIO
diff --git a/config.sub b/config.sub
index 1c366df..6b2ff9f 100755
--- a/config.sub
+++ b/config.sub
@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2005-07-08'
+timestamp='2003-06-18'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -21,15 +21,14 @@ timestamp='2005-07-08'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
-
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
@@ -71,7 +70,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -84,11 +83,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
+ echo "$timestamp" ; exit 0 ;;
--version | -v )
- echo "$version" ; exit ;;
+ echo "$version" ; exit 0 ;;
--help | --h* | -h )
- echo "$usage"; exit ;;
+ echo "$usage"; exit 0 ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -100,7 +99,7 @@ while test $# -gt 0 ; do
*local*)
# First pass through any local machine types.
echo $1
- exit ;;
+ exit 0;;
* )
break ;;
@@ -119,8 +118,7 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -146,7 +144,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
+ -apple | -axis)
os=
basic_machine=$1
;;
@@ -230,16 +228,14 @@ case $basic_machine in
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | ip2k \
+ | m32r | m68000 | m68k | m88k | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -248,37 +244,31 @@ case $basic_machine in
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
- | ms1 \
| msp430 \
| ns16k | ns32k \
- | or32 \
+ | openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | s390 | s390x \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xscale | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
- m32c)
- basic_machine=$basic_machine-unknown
- ;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
@@ -306,19 +296,19 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
- | bfin-* | bs2000-* \
+ | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
+ | clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | m32r-* | m32rle-* \
+ | ip2k-* \
+ | m32r-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
+ | m88110-* | m88k-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -327,40 +317,34 @@ case $basic_machine in
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
- | mmix-* \
- | ms1-* \
| msp430-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
+ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | s390-* | s390x-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
- | sparclite-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+ | xtensa-* \
| ymp-* \
| z8k-*)
;;
- m32c-*)
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
@@ -377,9 +361,6 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
- basic_machine=abacus-unknown
- ;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
@@ -397,9 +378,6 @@ case $basic_machine in
amd64)
basic_machine=x86_64-pc
;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
amdahl)
basic_machine=580-amdahl
os=-sysv
@@ -459,27 +437,12 @@ case $basic_machine in
basic_machine=j90-cray
os=-unicos
;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16c)
- basic_machine=cr16c-unknown
- os=-elf
- ;;
crds | unos)
basic_machine=m68k-crds
;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
da30 | da30-*)
basic_machine=m68k-da30
;;
@@ -502,10 +465,6 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
@@ -684,6 +643,10 @@ case $basic_machine in
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
+ mmix*)
+ basic_machine=mmix-knuth
+ os=-mmixware
+ ;;
monitor)
basic_machine=m68k-rom68k
os=-coff
@@ -764,6 +727,10 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ nv1)
+ basic_machine=nv1-cray
+ os=-unicosmp
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -771,12 +738,9 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
- openrisc | openrisc-*)
+ or32 | or32-*)
basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
+ os=-coff
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
@@ -869,12 +833,6 @@ case $basic_machine in
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
sa29200)
basic_machine=a29k-amd
os=-udi
@@ -998,10 +956,6 @@ case $basic_machine in
tower | tower-32)
basic_machine=m68k-ncr
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
udi29k)
basic_machine=a29k-amd
os=-udi
@@ -1045,10 +999,6 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
@@ -1079,9 +1029,6 @@ case $basic_machine in
romp)
basic_machine=romp-ibm
;;
- mmix)
- basic_machine=mmix-knuth
- ;;
rs6000)
basic_machine=rs6000-ibm
;;
@@ -1098,9 +1045,12 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
@@ -1174,21 +1124,19 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1206,15 +1154,12 @@ case $os in
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
@@ -1227,9 +1172,6 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
- os=-os400
- ;;
-wince*)
os=-wince
;;
@@ -1251,9 +1193,6 @@ case $os in
-atheos*)
os=-atheos
;;
- -syllable*)
- os=-syllable
- ;;
-386bsd)
os=-bsd
;;
@@ -1276,9 +1215,6 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
- os=-tpf
- ;;
-triton*)
os=-sysv3
;;
@@ -1315,9 +1251,6 @@ case $os in
-kaos*)
os=-kaos
;;
- -zvmoe)
- os=-zvmoe
- ;;
-none)
;;
*)
@@ -1349,9 +1282,9 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
@@ -1395,15 +1328,9 @@ case $basic_machine in
*-be)
os=-beos
;;
- *-haiku)
- os=-haiku
- ;;
*-ibm)
os=-aix
;;
- *-knuth)
- os=-mmixware
- ;;
*-wec)
os=-proelf
;;
@@ -1536,15 +1463,9 @@ case $basic_machine in
-mvs* | -opened*)
vendor=ibm
;;
- -os400*)
- vendor=ibm
- ;;
-ptx*)
vendor=sequent
;;
- -tpf*)
- vendor=ibm
- ;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
@@ -1569,7 +1490,7 @@ case $basic_machine in
esac
echo $basic_machine$os
-exit
+exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/configure b/configure
index cf103e3..01c5290 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for xf86-video-ati 6.5.8.0.
+# Generated by GNU Autoconf 2.59 for xf86-video-ati 6.6.2.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xf86-video-ati'
PACKAGE_TARNAME='xf86-video-ati'
-PACKAGE_VERSION='6.5.8.0'
-PACKAGE_STRING='xf86-video-ati 6.5.8.0'
+PACKAGE_VERSION='6.6.2'
+PACKAGE_STRING='xf86-video-ati 6.6.2'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -465,7 +465,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PKG_CONFIG ac_pt_PKG_CONFIG XORG_CFLAGS XORG_LIBS DRI_TRUE DRI_FALSE DRI_CFLAGS DRI_LIBS ATIMISC_CPIO_TRUE ATIMISC_CPIO_FALSE ATIMISC_NON_PCI_TRUE ATIMISC_NON_PCI_FALSE ATIMISC_DGA_TRUE ATIMISC_DGA_FALSE ATIMISC_TV_OUT_TRUE ATIMISC_TV_OUT_FALSE moduledir DRIVER_NAME APP_MAN_SUFFIX LIB_MAN_SUFFIX FILE_MAN_SUFFIX MISC_MAN_SUFFIX DRIVER_MAN_SUFFIX ADMIN_MAN_SUFFIX APP_MAN_DIR LIB_MAN_DIR FILE_MAN_DIR MISC_MAN_DIR DRIVER_MAN_DIR ADMIN_MAN_DIR LINUXDOC PS2PDF BUILD_LINUXDOC_TRUE BUILD_LINUXDOC_FALSE BUILD_PDFDOC_TRUE BUILD_PDFDOC_FALSE MAKE_TEXT MAKE_PS MAKE_PDF MAKE_HTML LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PKG_CONFIG ac_pt_PKG_CONFIG XORG_CFLAGS XORG_LIBS DRI_TRUE DRI_FALSE DRI_CFLAGS DRI_LIBS ATIMISC_CPIO_TRUE ATIMISC_CPIO_FALSE ATIMISC_NON_PCI_TRUE ATIMISC_NON_PCI_FALSE ATIMISC_DGA_TRUE ATIMISC_DGA_FALSE ATIMISC_TV_OUT_TRUE ATIMISC_TV_OUT_FALSE USE_EXA_TRUE USE_EXA_FALSE moduledir DRIVER_NAME APP_MAN_SUFFIX LIB_MAN_SUFFIX FILE_MAN_SUFFIX MISC_MAN_SUFFIX DRIVER_MAN_SUFFIX ADMIN_MAN_SUFFIX APP_MAN_DIR LIB_MAN_DIR FILE_MAN_DIR MISC_MAN_DIR DRIVER_MAN_DIR ADMIN_MAN_DIR LINUXDOC PS2PDF BUILD_LINUXDOC_TRUE BUILD_LINUXDOC_FALSE BUILD_PDFDOC_TRUE BUILD_PDFDOC_FALSE MAKE_TEXT MAKE_PS MAKE_PDF MAKE_HTML LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -974,7 +974,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-video-ati 6.5.8.0 to adapt to many kinds of systems.
+\`configure' configures xf86-video-ati 6.6.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1040,25 +1040,26 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-video-ati 6.5.8.0:";;
+ short | recursive ) echo "Configuration of xf86-video-ati 6.6.2:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
--enable-static[=PKGS]
build static libraries [default=no]
--enable-shared[=PKGS]
build shared libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
- --disable-dependency-tracking Speeds up one-time builds
- --enable-dependency-tracking Do not reject slow dependency extractors
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-dri Disable DRI support [default=auto]
+ --disable-exa Disable EXA support [default], [enabled]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1185,14 +1186,14 @@ esac
else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
- cd "$ac_popdir"
+ cd $ac_popdir
done
fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-xf86-video-ati configure 6.5.8.0
+xf86-video-ati configure 6.6.2
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1206,7 +1207,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-video-ati $as_me 6.5.8.0, which was
+It was created by xf86-video-ati $as_me 6.6.2, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1543,6 +1544,21 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+cat >>confdefs.h <<_ACEOF
+#define ATI_VERSION_MAJOR $(echo $PACKAGE_VERSION | sed -e 's/^\([0-9]\)\.[0-9]\.[0-9]/\1/')
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define ATI_VERSION_MINOR $(echo $PACKAGE_VERSION | sed -e 's/^[0-9]\.\([0-9]\)\.[0-9]/\1/')
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define ATI_VERSION_PATCH $(echo $PACKAGE_VERSION | sed -e 's/^[0-9]\.[0-9]\.\([0-9]\)/\1/')
+_ACEOF
+
+
ac_config_headers="$ac_config_headers config.h"
@@ -1572,7 +1588,7 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub"
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-am__api_version="1.7"
+am__api_version="1.9"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
@@ -1710,7 +1726,6 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm conftest.sed
-
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
@@ -1724,6 +1739,39 @@ else
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -1802,7 +1850,7 @@ else
fi
rmdir .tst 2>/dev/null
- # test to see if srcdir already configured
+# test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
@@ -1822,7 +1870,7 @@ fi
# Define the identity of the package.
PACKAGE='xf86-video-ati'
- VERSION='6.5.8.0'
+ VERSION='6.6.2'
cat >>confdefs.h <<_ACEOF
@@ -1850,9 +1898,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
install_sh=${install_sh-"$am_aux_dir/install-sh"}
# Installed binaries are usually stripped using `strip' when the user
@@ -1945,6 +1990,13 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
@@ -2735,7 +2787,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2793,7 +2846,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2909,7 +2963,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2963,7 +3018,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3008,7 +3064,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3052,7 +3109,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3132,7 +3190,9 @@ else
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- : > sub/conftst$i.h
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
@@ -3160,9 +3220,14 @@ else
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
@@ -3570,7 +3635,7 @@ linux*)
lt_cv_deplibs_check_method=pass_all
;;
-netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
@@ -3687,7 +3752,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 3690 "configure"' > conftest.$ac_ext
+ echo '#line 3755 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -3807,7 +3872,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4136,7 +4202,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4306,7 +4373,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4373,7 +4441,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4633,7 +4702,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4691,7 +4761,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4762,7 +4833,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4806,7 +4878,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4880,7 +4953,9 @@ else
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- : > sub/conftst$i.h
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
@@ -4908,9 +4983,14 @@ else
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CXX_dependencies_compiler_type=$depmode
break
fi
@@ -5271,7 +5351,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5274:" \
+echo "$as_me:5354:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -5317,7 +5397,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5366,7 +5447,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6332,11 +6414,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6335: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6417: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6339: \$? = $ac_status" >&5
+ echo "$as_me:6421: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6600,11 +6682,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6603: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6685: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6607: \$? = $ac_status" >&5
+ echo "$as_me:6689: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6704,11 +6786,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6707: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6789: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6711: \$? = $ac_status" >&5
+ echo "$as_me:6793: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -6959,13 +7041,12 @@ EOF
$echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
- link_all_deplibs=no
else
ld_shlibs=no
fi
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -7181,7 +7262,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7241,7 +7323,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7395,22 +7478,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
- # GNU/kFreeBSD uses gcc -shared to do shared libraries.
- kfreebsd*-gnu)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- link_all_deplibs=no
- ;;
-
hpux9*)
if test "$GCC" = yes; then
archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
@@ -7506,7 +7580,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
link_all_deplibs=yes
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -8177,10 +8251,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 8258 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -8192,18 +8287,6 @@ linux*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
knetbsd*-gnu)
version_type=linux
need_lib_prefix=no
@@ -8529,7 +8612,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8632,7 +8716,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8697,7 +8782,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8790,7 +8876,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8855,7 +8942,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8921,7 +9009,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8987,7 +9076,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9062,7 +9152,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9065 "configure"
+#line 9155 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9162,7 +9252,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9165 "configure"
+#line 9255 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10245,7 +10335,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10306,7 +10397,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10738,7 +10830,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
esac
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
wlarc=
@@ -11391,7 +11483,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
;;
esac
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
;;
osf3* | osf4* | osf5*)
case $cc_basename in
@@ -11500,11 +11592,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11503: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11595: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11507: \$? = $ac_status" >&5
+ echo "$as_me:11599: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11604,11 +11696,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11607: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11699: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11611: \$? = $ac_status" >&5
+ echo "$as_me:11703: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11676,12 +11768,6 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
cygwin* | mingw*)
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
;;
- kfreebsd*-gnu)
- link_all_deplibs_CXX=no
- ;;
- linux*)
- link_all_deplibs_CXX=no
- ;;
*)
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
@@ -12142,10 +12228,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 12235 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12157,18 +12264,6 @@ linux*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
knetbsd*-gnu)
version_type=linux
need_lib_prefix=no
@@ -13192,11 +13287,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13195: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13290: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13199: \$? = $ac_status" >&5
+ echo "$as_me:13294: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13296,11 +13391,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13299: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13394: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13303: \$? = $ac_status" >&5
+ echo "$as_me:13398: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13551,13 +13646,12 @@ EOF
$echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
- link_all_deplibs_F77=no
else
ld_shlibs_F77=no
fi
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -13763,7 +13857,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -13813,7 +13908,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -13967,20 +14063,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_F77='-R$libdir'
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- # GNU/kFreeBSD uses gcc -shared to do shared libraries.
- kfreebsd*-gnu)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec_F77='-R$libdir'
hardcode_direct_F77=yes
hardcode_shlibpath_var_F77=no
- link_all_deplibs_F77=no
;;
hpux9*)
@@ -14078,7 +14165,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
link_all_deplibs_F77=yes
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -14749,10 +14836,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 14843 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -14764,18 +14872,6 @@ linux*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
knetbsd*-gnu)
version_type=linux
need_lib_prefix=no
@@ -15519,11 +15615,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15522: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15618: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15526: \$? = $ac_status" >&5
+ echo "$as_me:15622: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15787,11 +15883,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15790: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15886: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15794: \$? = $ac_status" >&5
+ echo "$as_me:15890: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15891,11 +15987,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15894: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15990: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15898: \$? = $ac_status" >&5
+ echo "$as_me:15994: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16146,13 +16242,12 @@ EOF
$echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
- link_all_deplibs_GCJ=no
else
ld_shlibs_GCJ=no
fi
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -16368,7 +16463,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -16428,7 +16524,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -16582,22 +16679,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec_GCJ='-R$libdir'
hardcode_direct_GCJ=yes
hardcode_shlibpath_var_GCJ=no
;;
- # GNU/kFreeBSD uses gcc -shared to do shared libraries.
- kfreebsd*-gnu)
- archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- link_all_deplibs_GCJ=no
- ;;
-
hpux9*)
if test "$GCC" = yes; then
archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
@@ -16693,7 +16781,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
link_all_deplibs_GCJ=yes
;;
- netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -17364,10 +17452,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 17459 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -17379,18 +17488,6 @@ linux*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
knetbsd*-gnu)
version_type=linux
need_lib_prefix=no
@@ -18945,7 +19042,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19003,7 +19101,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19119,7 +19218,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19173,7 +19273,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19218,7 +19319,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19262,7 +19364,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19342,7 +19445,9 @@ else
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- : > sub/conftst$i.h
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
@@ -19370,9 +19475,14 @@ else
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
@@ -19424,6 +19534,13 @@ else
DRI=auto
fi;
+# Check whether --enable-exa or --disable-exa was given.
+if test "${enable_exa+set}" = set; then
+ enableval="$enable_exa"
+ EXA="$enableval"
+else
+ EXA=yes
+fi;
# Checks for extensions
@@ -19458,7 +19575,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19519,7 +19637,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19580,7 +19699,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19641,7 +19761,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19702,7 +19823,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -19763,7 +19885,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -20048,7 +20171,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -20427,7 +20551,7 @@ case $host_cpu in
ATIMISC_TV_OUT=yes
ATIMISC_CPIO=yes
;;
- x86_64|amd64|alpha)
+ x86_64|amd64|alpha|ia64)
ATIMISC_CPIO=yes
;;
sparc)
@@ -20453,14 +20577,16 @@ else
fi
if test "x$ATIMISC_CPIO" = xyes; then
- echo "yes, PIO"
+ echo "$as_me:$LINENO: result: yes, PIO" >&5
+echo "${ECHO_T}yes, PIO" >&6
else
cat >>confdefs.h <<\_ACEOF
#define AVOID_CPIO 1
_ACEOF
- echo "no, MMIO"
+ echo "$as_me:$LINENO: result: no, MMIO" >&5
+echo "${ECHO_T}no, MMIO" >&6
fi
echo "$as_me:$LINENO: checking whether to include support for non-PCI devices" >&5
@@ -20476,14 +20602,16 @@ else
fi
if test "x$ATI_AVOID_NON_PCI" = xyes; then
- echo "yes, PCI and ISA"
+ echo "$as_me:$LINENO: result: yes, PCI and ISA" >&5
+echo "${ECHO_T}yes, PCI and ISA" >&6
else
cat >>confdefs.h <<\_ACEOF
#define AVOID_NON_PCI 1
_ACEOF
- echo "no, PCI only"
+ echo "$as_me:$LINENO: result: no, PCI only" >&5
+echo "${ECHO_T}no, PCI only" >&6
fi
echo "$as_me:$LINENO: checking whether to include DGA support" >&5
@@ -20536,10 +20664,239 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
+# Properly handle EXA.
+echo "$as_me:$LINENO: checking whether to enable EXA support" >&5
+echo $ECHO_N "checking whether to enable EXA support... $ECHO_C" >&6
+if test "x$EXA" = xyes; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+ if test "${ac_cv_header_exa_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for exa.h" >&5
+echo $ECHO_N "checking for exa.h... $ECHO_C" >&6
+if test "${ac_cv_header_exa_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5
+echo "${ECHO_T}$ac_cv_header_exa_h" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking exa.h usability" >&5
+echo $ECHO_N "checking exa.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <exa.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking exa.h presence" >&5
+echo $ECHO_N "checking exa.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <exa.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: exa.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: exa.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: exa.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: exa.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: exa.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: exa.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: exa.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: exa.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: exa.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: exa.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ---------------------------------------------------------------------- ##
+## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ##
+## ---------------------------------------------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for exa.h" >&5
+echo $ECHO_N "checking for exa.h... $ECHO_C" >&6
+if test "${ac_cv_header_exa_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_exa_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5
+echo "${ECHO_T}$ac_cv_header_exa_h" >&6
+
+fi
+if test $ac_cv_header_exa_h = yes; then
+ have_exa_h="yes"
+else
+ have_exa_h="no"
+fi
+
+
+ CPPFLAGS="$SAVE_CPPFLAGS"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+if test "x$have_exa_h" = xyes; then
+ echo "$as_me:$LINENO: checking whether EXA version is at least 2.0.0" >&5
+echo $ECHO_N "checking whether EXA version is at least 2.0.0... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include "exa.h"
+#if EXA_VERSION_MAJOR < 2
+#error OLD EXA!
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ USE_EXA=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ USE_EXA=no
+fi
+rm -f conftest.err conftest.$ac_ext
+ echo "$as_me:$LINENO: result: $USE_EXA" >&5
+echo "${ECHO_T}$USE_EXA" >&6
+
+ if test "x$USE_EXA" = xyes; then
+
cat >>confdefs.h <<\_ACEOF
#define USE_EXA 1
_ACEOF
+ fi
+fi
+CPPFLAGS="$SAVE_CPPFLAGS"
+
+
+
+if test "x$USE_EXA" = xyes; then
+ USE_EXA_TRUE=
+ USE_EXA_FALSE='#'
+else
+ USE_EXA_TRUE='#'
+ USE_EXA_FALSE=
+fi
+
@@ -20988,6 +21345,13 @@ echo "$as_me: error: conditional \"ATIMISC_TV_OUT\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${USE_EXA_TRUE}" && test -z "${USE_EXA_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_EXA\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_EXA\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${BUILD_LINUXDOC_TRUE}" && test -z "${BUILD_LINUXDOC_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"BUILD_LINUXDOC\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -21273,7 +21637,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by xf86-video-ati $as_me 6.5.8.0, which was
+This file was extended by xf86-video-ati $as_me 6.6.2, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21336,7 +21700,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xf86-video-ati config.status 6.5.8.0
+xf86-video-ati config.status 6.6.2
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -21547,14 +21911,17 @@ s,@AUTOCONF@,$AUTOCONF,;t t
s,@AUTOMAKE@,$AUTOMAKE,;t t
s,@AUTOHEADER@,$AUTOHEADER,;t t
s,@MAKEINFO@,$MAKEINFO,;t t
-s,@AMTAR@,$AMTAR,;t t
s,@install_sh@,$install_sh,;t t
s,@STRIP@,$STRIP,;t t
s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@mkdir_p@,$mkdir_p,;t t
s,@AWK@,$AWK,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@am__leading_dot@,$am__leading_dot,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@am__tar@,$am__tar,;t t
+s,@am__untar@,$am__untar,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
@@ -21617,6 +21984,8 @@ s,@ATIMISC_DGA_TRUE@,$ATIMISC_DGA_TRUE,;t t
s,@ATIMISC_DGA_FALSE@,$ATIMISC_DGA_FALSE,;t t
s,@ATIMISC_TV_OUT_TRUE@,$ATIMISC_TV_OUT_TRUE,;t t
s,@ATIMISC_TV_OUT_FALSE@,$ATIMISC_TV_OUT_FALSE,;t t
+s,@USE_EXA_TRUE@,$USE_EXA_TRUE,;t t
+s,@USE_EXA_FALSE@,$USE_EXA_FALSE,;t t
s,@moduledir@,$moduledir,;t t
s,@DRIVER_NAME@,$DRIVER_NAME,;t t
s,@APP_MAN_SUFFIX@,$APP_MAN_SUFFIX,;t t
@@ -21809,6 +22178,11 @@ esac
*) ac_INSTALL=$ac_top_builddir$INSTALL ;;
esac
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
@@ -21847,12 +22221,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
fi;;
esac
done` || { (exit 1); exit 1; }
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub
@@ -22266,27 +22634,21 @@ echo X"$mf" |
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
diff --git a/configure.ac b/configure.ac
index 373fd76..a7cdd10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,9 +22,18 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-ati],
- 6.5.8.0,
+ 6.6.2,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ati)
+AC_DEFINE_UNQUOTED([ATI_VERSION_MAJOR],
+ [$(echo $PACKAGE_VERSION | sed -e 's/^\([[0-9]]\)\.[[0-9]]\.[[0-9]]/\1/')],
+ [Major version])
+AC_DEFINE_UNQUOTED([ATI_VERSION_MINOR],
+ [$(echo $PACKAGE_VERSION | sed -e 's/^[[0-9]]\.\([[0-9]]\)\.[[0-9]]/\1/')],
+ [Minor version])
+AC_DEFINE_UNQUOTED([ATI_VERSION_PATCH],
+ [$(echo $PACKAGE_VERSION | sed -e 's/^[[0-9]]\.[[0-9]]\.\([[0-9]]\)/\1/')],
+ [Patch version])
AC_CONFIG_SRCDIR([Makefile.am])
AM_CONFIG_HEADER([config.h])
@@ -52,6 +61,11 @@ AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
[DRI="$enableval"],
[DRI=auto])
+AC_ARG_ENABLE(exa,
+ AC_HELP_STRING([--disable-exa],
+ [Disable EXA support [[default enabled]]]),
+ [EXA="$enableval"],
+ [EXA=yes])
# Checks for extensions
XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
@@ -121,7 +135,7 @@ case $host_cpu in
ATIMISC_TV_OUT=yes
ATIMISC_CPIO=yes
;;
- x86_64|amd64|alpha)
+ x86_64|amd64|alpha|ia64)
ATIMISC_CPIO=yes
;;
sparc)
@@ -137,19 +151,19 @@ esac
AC_MSG_CHECKING([whether to include PIO support])
AM_CONDITIONAL(ATIMISC_CPIO, test "x$ATIMISC_CPIO" = xyes)
if test "x$ATIMISC_CPIO" = xyes; then
- echo "yes, PIO"
+ AC_MSG_RESULT([yes, PIO])
else
AC_DEFINE(AVOID_CPIO, 1, [Avoid PIO and use MMIO for atimisc.])
- echo "no, MMIO"
+ AC_MSG_RESULT([no, MMIO])
fi
AC_MSG_CHECKING([whether to include support for non-PCI devices])
AM_CONDITIONAL(ATIMISC_NON_PCI, test "x$ATIMISC_NON_PCI" = xyes)
if test "x$ATI_AVOID_NON_PCI" = xyes; then
- echo "yes, PCI and ISA"
+ AC_MSG_RESULT([yes, PCI and ISA])
else
AC_DEFINE(AVOID_NON_PCI, 1, [Only probe PCI cards; do not probe ISA.])
- echo "no, PCI only"
+ AC_MSG_RESULT([no, PCI only])
fi
AC_MSG_CHECKING([whether to include DGA support])
@@ -167,7 +181,42 @@ if test "x$ATIMISC_TV_OUT" = xyes; then
fi
AC_DEFINE(USE_XAA, 1, [Build support for XAA])
-AC_DEFINE(USE_EXA, 1, [Build support for Exa])
+
+# Properly handle EXA.
+AC_MSG_CHECKING([whether to enable EXA support])
+if test "x$EXA" = xyes; then
+ AC_MSG_RESULT(yes)
+
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+ AC_CHECK_HEADER(exa.h,
+ [have_exa_h="yes"], [have_exa_h="no"])
+ CPPFLAGS="$SAVE_CPPFLAGS"
+else
+ AC_MSG_RESULT(no)
+fi
+
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+if test "x$have_exa_h" = xyes; then
+ AC_MSG_CHECKING([whether EXA version is at least 2.0.0])
+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
+#include "exa.h"
+#if EXA_VERSION_MAJOR < 2
+#error OLD EXA!
+#endif
+ ]])],
+ [USE_EXA=yes],
+ [USE_EXA=no])
+ AC_MSG_RESULT($USE_EXA)
+
+ if test "x$USE_EXA" = xyes; then
+ AC_DEFINE(USE_EXA, 1, [Build support for Exa])
+ fi
+fi
+CPPFLAGS="$SAVE_CPPFLAGS"
+
+AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
AC_SUBST([XORG_CFLAGS])
AC_SUBST([DRI_CFLAGS])
diff --git a/debian/changelog b/debian/changelog
index f1873db..b858fb4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,44 @@
+xserver-xorg-video-ati (1:6.6.2-2) UNRELEASED; urgency=low
+
+ * Include upstream ChangeLog. Closes: #365104.
+
+ -- Drew Parsons <dparsons@debian.org> Thu, 31 Aug 2006 22:21:12 +1000
+
+xserver-xorg-video-ati (1:6.6.2-1) experimental; urgency=low
+
+ * New upstream version. Happy birthday.
+ * Use debhelper 5.
+ * Standards version 3.7.2.
+ * Add reference to /usr/share/common-licenses/GPL to debian/copyright.
+ * Use dh_installman to install man pages.
+ * Exclude .la files from dh_install.
+
+ -- Drew Parsons <dparsons@debian.org> Thu, 31 Aug 2006 21:36:05 +1000
+
+xserver-xorg-video-ati (1:6.6.1-2) experimental; urgency=low
+
+ [ Drew Parsons ]
+ * Provides: xserver-xorg-video-1.0 not xserver-xorg-video.
+
+ [ David Nusinow ]
+ * Bump xserver (build-)depends epochs to 2: to deal with botched
+ server upload
+
+ -- David Nusinow <dnusinow@debian.org> Tue, 22 Aug 2006 23:46:26 +0000
+
+xserver-xorg-video-ati (1:6.6.1-1) experimental; urgency=low
+
+ [ Andres Salomon ]
+ * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build;
+ idempotency fix.
+
+ [ David Nusinow ]
+ * New upstream release
+ * Bump dependency on xserver-xorg-core to >= 1:1.1.1. Do the same thing for
+ the build-dep on xserver-xorg-dev.
+
+ -- David Nusinow <dnusinow@debian.org> Sun, 6 Aug 2006 20:15:19 +0000
+
xserver-xorg-video-ati (1:6.5.8.0-1) unstable; urgency=low
* New upstream release
diff --git a/debian/compat b/debian/compat
index b8626c4..7ed6ff8 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-4
+5
diff --git a/debian/control b/debian/control
index a2d2a47..cefe442 100644
--- a/debian/control
+++ b/debian/control
@@ -2,16 +2,16 @@ Source: xserver-xorg-video-ati
Section: x11
Priority: optional
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: David Nusinow <dnusinow@debian.org>, Branden Robinson <branden@debian.org>, Fabio M. Di Nitto <fabbione@fabbione.net>
-Build-Depends: debhelper (>= 4.0.0), pkg-config, xserver-xorg-dev, x11proto-gl-dev, x11proto-xext-dev, x11proto-core-dev, x11proto-video-dev, x11proto-xinerama-dev, x11proto-xf86misc-dev, libgl1-mesa-dev | libgl-dev, x11proto-fonts-dev, x11proto-randr-dev, x11proto-render-dev, libdrm-dev (>> 1.0.5), x11proto-xf86dri-dev, quilt
-Standards-Version: 3.6.1.0
+Uploaders: David Nusinow <dnusinow@debian.org>, Branden Robinson <branden@debian.org>, Fabio M. Di Nitto <fabbione@fabbione.net>, Drew Parsons <dparsons@debian.org>
+Build-Depends: debhelper (>= 5), pkg-config, xserver-xorg-dev (>= 2:1.1.1), x11proto-gl-dev, x11proto-xext-dev, x11proto-core-dev, x11proto-video-dev, x11proto-xinerama-dev, x11proto-xf86misc-dev, libgl1-mesa-dev | libgl-dev, x11proto-fonts-dev, x11proto-randr-dev, x11proto-render-dev, libdrm-dev (>> 1.0.5), x11proto-xf86dri-dev, quilt
+Standards-Version: 3.7.2
Package: xserver-xorg-video-ati
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-core (>= 1:0.99.0-1)
+Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-core (>= 2:1.1.1-1)
Replaces: xserver-xorg (<< 6.8.2-35), xserver-xorg-video-atimisc, xserver-xorg-driver-r128, xserver-xorg-driver-radeon
Conflicts: xserver-xorg-video-atimisc, xserver-xorg-driver-r128, xserver-xorg-driver-radeon
-Provides: xserver-xorg-video, xf86-video-driver-atimisc, xserver-xorg-driver-r128, xserver-xorg-driver-radeon
+Provides: xserver-xorg-video-1.0, xf86-video-driver-atimisc, xserver-xorg-driver-r128, xserver-xorg-driver-radeon
Description: X.Org X server -- ATI display driver
This driver for the X.Org X server (see xserver-xorg for a further description)
provides support for the ATI Mach, Rage, Radeon, and FireGL series. It
diff --git a/debian/copyright b/debian/copyright
index 858ea88..feaa994 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -116,4 +116,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Created by Bogdan D. bogdand@users.sourceforge.net
-License: GPL
+License: GPL (see /usr/share/common-licenses/GPL)
diff --git a/debian/rules b/debian/rules
index 991eeb3..2a2a1be 100755
--- a/debian/rules
+++ b/debian/rules
@@ -35,7 +35,7 @@ build: patch build-stamp
build-stamp:
dh_testdir
- mkdir obj-$(DEB_BUILD_GNU_TYPE)
+ test -d obj-$(DEB_BUILD_GNU_TYPE) || mkdir obj-$(DEB_BUILD_GNU_TYPE)
cd obj-$(DEB_BUILD_GNU_TYPE) && \
../configure --prefix=/usr --mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info $(confflags) \
@@ -71,8 +71,9 @@ binary-arch: build install
dh_testroot
dh_installdocs
- dh_installchangelogs
- dh_install --sourcedir=debian/tmp --list-missing
+ dh_installchangelogs ChangeLog
+ dh_install --sourcedir=debian/tmp --list-missing --exclude=.la --exclude=usr/share/man/man4
+ dh_installman
dh_link
dh_strip
dh_compress
diff --git a/debian/xserver-xorg-video-ati.install b/debian/xserver-xorg-video-ati.install
index 96d066f..15b2401 100644
--- a/debian/xserver-xorg-video-ati.install
+++ b/debian/xserver-xorg-video-ati.install
@@ -1,3 +1,3 @@
usr/lib/xorg/modules/drivers/*.so
usr/lib/xorg/modules/multimedia/*.so
-usr/share/man/man4/*
+
diff --git a/debian/xserver-xorg-video-ati.manpages b/debian/xserver-xorg-video-ati.manpages
new file mode 100644
index 0000000..603f9bd
--- /dev/null
+++ b/debian/xserver-xorg-video-ati.manpages
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man4/*
diff --git a/depcomp b/depcomp
index edb5d38..04701da 100755
--- a/depcomp
+++ b/depcomp
@@ -1,7 +1,9 @@
#! /bin/sh
-
# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000, 2003 Free Software Foundation, Inc.
+
+scriptversion=2005-07-09.11
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -25,22 +27,45 @@
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
-# `libtool' can also be set to `yes' or `no'.
-
-if test -z "$depfile"; then
- base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
- dir=`echo "$object" | sed 's,/.*$,/,'`
- if test "$dir" = "$object"; then
- dir=
- fi
- # FIXME: should be _deps on DOS.
- depfile="$dir.deps/$base"
-fi
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
@@ -262,27 +287,43 @@ tru64)
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
- tmpdepfile1="$dir.libs/$base.lo.d"
- tmpdepfile2="$dir.libs/$base.d"
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mecanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
- tmpdepfile1="$dir$base.o.d"
- tmpdepfile2="$dir$base.d"
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- fi
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
@@ -426,7 +467,8 @@ cpp)
done
"$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
@@ -477,3 +519,12 @@ none)
esac
exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/install-sh b/install-sh
index 6ce63b9..4d4a951 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,8 @@
#!/bin/sh
-#
# install - install a program, script, or datafile
-#
+
+scriptversion=2005-05-14.22
+
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
@@ -41,13 +42,11 @@
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
-
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
-
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
@@ -59,236 +58,266 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
+chowncmd=
+chgrpcmd=
+stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd=$cpprog
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d "$dst" ]
- then
- dst=$dst/`basename "$src"`
- else
- :
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-$defaultIFS}"
-
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp=$pathcomp$1
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c (ignored)
+-d create directories instead of installing files.
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
+--help display this help and exit.
+--version display version info and exit.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+ case $1 in
+ -c) shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t) dstarg=$2
shift
+ shift
+ continue;;
- if [ ! -d "$pathcomp" ] ;
- then
- $mkdirprog "$pathcomp"
- else
- :
- fi
-
- pathcomp=$pathcomp/
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
+ break;;
+ esac
done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename "$dst"`
- else
- dstfile=`basename "$dst" $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename "$dst"`
- else
- :
- fi
-
-# Make a couple of temp file names in the proper directory.
-
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
-# Trap to clean up temp files at exit.
-
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd "$src" "$dsttmp" &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
- if [ -f "$dstdir/$dstfile" ]
- then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
- else
- :
- fi
-} &&
-
-# Now rename the file to the real destination.
+if test -z "$1"; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src ;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ src=
+
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dstarg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dstarg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst ;;
+ esac
-fi &&
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
+ dst=$dst/`basename "$src"`
+ fi
+ fi
+
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
+
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
+ shift
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
+ fi
+ pathcomp=$pathcomp/
+ done
+ fi
+
+ if test -n "$dir_arg"; then
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+ else
+ dstfile=`basename "$dst"`
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+ # Now rename the file to the real destination.
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+ || {
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+ || {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit 1
+ }
+ else
+ :
+ fi
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ }
+ }
+ fi || { (exit 1); exit 1; }
+done
# The final little trick to "correctly" pass the exit status to the exit trap.
-
{
- (exit 0); exit
+ (exit 0); exit 0
}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/ltmain.sh b/ltmain.sh
index 8fc56db..06823e0 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -43,7 +43,7 @@ EXIT_FAILURE=1
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION="1.5.22 Debian 1.5.22-2"
+VERSION=1.5.22
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
# See if we are running on zsh, and set the options which allow our
@@ -2082,10 +2082,7 @@ EOF
case $pass in
dlopen) libs="$dlfiles" ;;
dlpreopen) libs="$dlprefiles" ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
esac
fi
if test "$pass" = dlopen; then
@@ -3204,11 +3201,6 @@ EOF
age="$number_minor"
revision="$number_minor"
;;
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit $EXIT_FAILURE
- ;;
esac
;;
no)
diff --git a/man/Makefile.am b/man/Makefile.am
index cb05777..2788428 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.6 2005/11/28 22:04:08 alanc Exp $
+# $Id$
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
diff --git a/man/Makefile.in b/man/Makefile.in
index 5d2e974..b3a55a7 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,7 +14,7 @@
@SET_MAKE@
-# $Id: Makefile.am,v 1.6 2005/11/28 22:04:08 alanc Exp $
+# $Id$
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
@@ -48,7 +48,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -62,7 +61,29 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = man
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(drivermandir)"
+drivermanDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(driverman_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
@@ -154,6 +175,8 @@ RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+USE_EXA_FALSE = @USE_EXA_FALSE@
+USE_EXA_TRUE = @USE_EXA_TRUE@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
@@ -171,6 +194,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -191,6 +216,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
@@ -199,23 +225,16 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
drivermandir = $(DRIVER_MAN_DIR)
-
driverman_PRE = @DRIVER_NAME@.man r128.man radeon.man
-
driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
-
EXTRA_DIST = @DRIVER_NAME@.man r128.man radeon.man
-
CLEANFILES = $(driverman_DATA)
-
SED = sed
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
-
MAN_SUBSTS = \
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
@@ -228,26 +247,40 @@ MAN_SUBSTS = \
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
-
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
-subdir = man
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DATA = $(driverman_DATA)
-
-DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
all: all-am
.SUFFIXES:
.SUFFIXES: .$(DRIVER_MAN_SUFFIX) .man
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
@@ -258,23 +291,22 @@ clean-libtool:
distclean-libtool:
-rm -f libtool
uninstall-info-am:
-drivermanDATA_INSTALL = $(INSTALL_DATA)
install-drivermanDATA: $(driverman_DATA)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(drivermandir)
+ test -z "$(drivermandir)" || $(mkdir_p) "$(DESTDIR)$(drivermandir)"
@list='$(driverman_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(drivermanDATA_INSTALL) $$d$$p $(DESTDIR)$(drivermandir)/$$f"; \
- $(drivermanDATA_INSTALL) $$d$$p $(DESTDIR)$(drivermandir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(drivermanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(drivermandir)/$$f'"; \
+ $(drivermanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(drivermandir)/$$f"; \
done
uninstall-drivermanDATA:
@$(NORMAL_UNINSTALL)
@list='$(driverman_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(drivermandir)/$$f"; \
- rm -f $(DESTDIR)$(drivermandir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(drivermandir)/$$f'"; \
+ rm -f "$(DESTDIR)$(drivermandir)/$$f"; \
done
tags: TAGS
TAGS:
@@ -282,10 +314,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -299,7 +327,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -317,9 +345,10 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(drivermandir)
+ for dir in "$(DESTDIR)$(drivermandir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -340,7 +369,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -357,6 +386,8 @@ dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -391,13 +422,13 @@ uninstall-am: uninstall-drivermanDATA uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
- dvi-am info info-am install install-am install-data \
- install-data-am install-drivermanDATA install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- uninstall uninstall-am uninstall-drivermanDATA \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-drivermanDATA \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-drivermanDATA \
uninstall-info-am
diff --git a/man/radeon.man b/man/radeon.man
index 6c52f47..9dc75fc 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -387,12 +387,6 @@ For example, Option "MetaModes" "1024x768-1024x768 800x600-1024x768 640x480-800x
The default value is
.B undefined.
.TP
-.BI "Option \*qOverlayOnCRTC2\*q \*q" boolean \*q
-Force hardware overlay to clone head.
-.br
-The default value is
-.B off.
-.TP
.BI "Option \*qMergedXinerama\*q \*q" boolean \*q
Since merged framebuffer mode does not use Xinerama, apps are not able to intelligently
place windows. Merged framebuffer mode provides its own pseudo-Xinerama. This allows
@@ -512,6 +506,15 @@ the Render and Composite extensions, but the rendering code for it is newer and
possibly unstable. The default is
.B XAA.
.TP
+.BI "Option \*qAccelDFS\*q \*q" boolean \*q
+Use or don't use accelerated EXA DownloadFromScreen hook when possible (only
+when Direct Rendering is enabled, e.g.).
+Default:
+.B off
+with AGP due to issues with GPU->host transfers with some AGP bridges,
+.B on
+otherwise.
+.TP
.BI "Option \*qFBTexPercent\*q \*q" integer \*q
Amount of video RAM to reserve for OpenGL textures, in percent. With EXA, the
remainder of video RAM is reserved for EXA offscreen management. Specifying 0
@@ -524,6 +527,14 @@ reserved for textures to the amount specified roughly.
Default:
.B 50.
.TP
+.BI "Option \*qDepthBits\*q \*q" integer \*q
+Precision in bits per pixel of the shared depth buffer used for 3D acceleration.
+Valid values are 16 and 24. When this is 24, there will also be a hardware
+accelerated stencil buffer, but the combined depth/stencil buffer will take up
+twice as much video RAM as when it's 16.
+Default:
+.B The same as the screen depth.
+.TP
.BI "Option \*qDMAForXv\*q \*q" boolean \*q
Try or don't try to use DMA for Xv image transfers. This will reduce CPU
usage when playing big videos like DVDs, but may cause instabilities.
@@ -611,6 +622,7 @@ Kevin E. Martin \fIkem@freedesktop.org\fP
Alan Hourihane \fIalanh@fairlite.demon.co.uk\fP
Marc Aurele La France \fItsi@xfree86.org\fP
Benjamin Herrenschmidt \fIbenh@kernel.crashing.org\fP
+Michel Dänzer \fImichel@tungstengraphics.com\fP
Alex Deucher \fIalexdeucher@gmail.com\fP
Bogdan D. \fIbogdand@users.sourceforge.net\fP
Eric Anholt \fIeric@anholt.net\fP
diff --git a/missing b/missing
index fc54c64..894e786 100755
--- a/missing
+++ b/missing
@@ -1,6 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+
+scriptversion=2005-06-08.21
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -15,8 +19,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -38,18 +42,24 @@ else
configure_ac=configure.in
fi
+msg="missing on your system"
+
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-h|--h|--he|--hel|--help)
echo "\
@@ -74,11 +84,15 @@ Supported PROGRAM values:
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.4 - GNU automake"
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
@@ -87,14 +101,44 @@ Supported PROGRAM values:
exit 1
;;
- aclocal*)
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+ lex|yacc)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
fi
+ ;;
+esac
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+ aclocal*)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
@@ -102,13 +146,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autoconf)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
@@ -116,13 +155,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autoheader)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
@@ -140,13 +174,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
automake*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
@@ -156,14 +185,9 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autom4te)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
@@ -185,7 +209,7 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
bison|yacc)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
@@ -215,7 +239,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
lex|flex)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
@@ -237,13 +261,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
help2man)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
@@ -262,32 +281,30 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
touch $file
;;
tar)
shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
@@ -323,8 +340,8 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments.
*)
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
@@ -334,3 +351,10 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
esac
exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/src/Makefile.am b/src/Makefile.am
index 3b28ece..7e6af9c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -41,6 +41,11 @@ if ATIMISC_DGA
ATIMISC_DGA_SOURCES = atidga.c
endif
+if USE_EXA
+ATIMISC_EXA_SOURCES = atimach64exa.c
+RADEON_EXA_SOURCES = radeon_exa.c
+endif
+
AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@
ati_drv_la_LTLIBRARIES = ati_drv.la
@@ -61,7 +66,7 @@ atimisc_drv_la_SOURCES = \
atimach64i2c.c atimach64io.c atimach64xv.c atimode.c atipreinit.c \
atiprint.c atirgb514.c atiscreen.c atituner.c atiutil.c ativalid.c \
atixv.c atiload.c atimisc.c $(ATIMISC_DRI_SRCS) $(ATIMISC_DGA_SOURCES) \
- $(ATIMISC_CPIO_SOURCES)
+ $(ATIMISC_CPIO_SOURCES) $(ATIMISC_EXA_SOURCES)
r128_drv_la_LTLIBRARIES = r128_drv.la
r128_drv_la_LDFLAGS = -module -avoid-version
@@ -76,7 +81,7 @@ radeon_drv_ladir = @moduledir@/drivers
radeon_drv_la_SOURCES = \
radeon_accel.c radeon_mergedfb.c radeon_cursor.c radeon_dga.c \
radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \
- radeon_vip.c radeon_misc.c radeon_exa.c $(RADEON_DRI_SRCS)
+ radeon_vip.c radeon_misc.c $(RADEON_DRI_SRCS) $(RADEON_EXA_SOURCES)
theatre_detect_drv_la_LTLIBRARIES = theatre_detect_drv.la
theatre_detect_drv_la_LDFLAGS = -module -avoid-version
@@ -133,12 +138,12 @@ EXTRA_DIST = \
atimach64.h \
atimach64i2c.h \
atimach64io.h \
+ atimach64render.c \
atimach64xv.h \
atimode.h \
atimodule.h \
atimono.h \
atioption.h \
- atipciids.h \
atipreinit.h \
atiprint.h \
atipriv.h \
@@ -188,4 +193,5 @@ EXTRA_DIST = \
theatre200.h \
theatre_detect.h \
theatre.h \
- theatre_reg.h
+ theatre_reg.h \
+ atipciids.h
diff --git a/src/Makefile.in b/src/Makefile.in
index 9e40c58..03703d1 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -48,7 +48,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -62,7 +61,127 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(ati_drv_ladir)" \
+ "$(DESTDIR)$(atimisc_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" \
+ "$(DESTDIR)$(radeon_drv_ladir)" \
+ "$(DESTDIR)$(theatre200_drv_ladir)" \
+ "$(DESTDIR)$(theatre_detect_drv_ladir)" \
+ "$(DESTDIR)$(theatre_drv_ladir)"
+ati_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+atimisc_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+r128_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+radeon_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+theatre200_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+theatre_detect_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+theatre_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(ati_drv_la_LTLIBRARIES) $(atimisc_drv_la_LTLIBRARIES) \
+ $(r128_drv_la_LTLIBRARIES) $(radeon_drv_la_LTLIBRARIES) \
+ $(theatre200_drv_la_LTLIBRARIES) \
+ $(theatre_detect_drv_la_LTLIBRARIES) \
+ $(theatre_drv_la_LTLIBRARIES)
+ati_drv_la_LIBADD =
+am__ati_drv_la_SOURCES_DIST = ati.c atiadapter.c atibus.c atichip.c \
+ atiident.c atioption.c atiprobe.c atividmem.c atimodule.c \
+ ativgaio.c radeon_probe.c r128_probe.c
+@ATIMISC_CPIO_TRUE@am__objects_1 = ativgaio.lo
+am_ati_drv_la_OBJECTS = ati.lo atiadapter.lo atibus.lo atichip.lo \
+ atiident.lo atioption.lo atiprobe.lo atividmem.lo atimodule.lo \
+ $(am__objects_1) radeon_probe.lo r128_probe.lo
+ati_drv_la_OBJECTS = $(am_ati_drv_la_OBJECTS)
+atimisc_drv_la_LIBADD =
+am__atimisc_drv_la_SOURCES_DIST = atiaccel.c atiadjust.c atiaudio.c \
+ aticlock.c aticonfig.c aticonsole.c aticursor.c atidac.c \
+ atidecoder.c atidsp.c atifillin.c atii2c.c atilock.c \
+ atimach64.c atimach64accel.c atimach64cursor.c atimach64i2c.c \
+ atimach64io.c atimach64xv.c atimode.c atipreinit.c atiprint.c \
+ atirgb514.c atiscreen.c atituner.c atiutil.c ativalid.c \
+ atixv.c atiload.c atimisc.c atidri.c atidga.c ativga.c \
+ atibank.c atiwonder.c atiwonderio.c atimach64exa.c
+@DRI_TRUE@am__objects_2 = atidri.lo
+@ATIMISC_DGA_TRUE@am__objects_3 = atidga.lo
+@ATIMISC_CPIO_TRUE@am__objects_4 = ativga.lo atibank.lo atiwonder.lo \
+@ATIMISC_CPIO_TRUE@ atiwonderio.lo
+@USE_EXA_TRUE@am__objects_5 = atimach64exa.lo
+am_atimisc_drv_la_OBJECTS = atiaccel.lo atiadjust.lo atiaudio.lo \
+ aticlock.lo aticonfig.lo aticonsole.lo aticursor.lo atidac.lo \
+ atidecoder.lo atidsp.lo atifillin.lo atii2c.lo atilock.lo \
+ atimach64.lo atimach64accel.lo atimach64cursor.lo \
+ atimach64i2c.lo atimach64io.lo atimach64xv.lo atimode.lo \
+ atipreinit.lo atiprint.lo atirgb514.lo atiscreen.lo \
+ atituner.lo atiutil.lo ativalid.lo atixv.lo atiload.lo \
+ atimisc.lo $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+ $(am__objects_5)
+atimisc_drv_la_OBJECTS = $(am_atimisc_drv_la_OBJECTS)
+r128_drv_la_LIBADD =
+am__r128_drv_la_SOURCES_DIST = r128_accel.c r128_cursor.c r128_dga.c \
+ r128_driver.c r128_video.c r128_misc.c r128_dri.c
+@DRI_TRUE@am__objects_6 = r128_dri.lo
+am_r128_drv_la_OBJECTS = r128_accel.lo r128_cursor.lo r128_dga.lo \
+ r128_driver.lo r128_video.lo r128_misc.lo $(am__objects_6)
+r128_drv_la_OBJECTS = $(am_r128_drv_la_OBJECTS)
+radeon_drv_la_LIBADD =
+am__radeon_drv_la_SOURCES_DIST = radeon_accel.c radeon_mergedfb.c \
+ radeon_cursor.c radeon_dga.c radeon_driver.c radeon_video.c \
+ radeon_bios.c radeon_mm_i2c.c radeon_vip.c radeon_misc.c \
+ radeon_dri.c radeon_exa.c
+@DRI_TRUE@am__objects_7 = radeon_dri.lo
+@USE_EXA_TRUE@am__objects_8 = radeon_exa.lo
+am_radeon_drv_la_OBJECTS = radeon_accel.lo radeon_mergedfb.lo \
+ radeon_cursor.lo radeon_dga.lo radeon_driver.lo \
+ radeon_video.lo radeon_bios.lo radeon_mm_i2c.lo radeon_vip.lo \
+ radeon_misc.lo $(am__objects_7) $(am__objects_8)
+radeon_drv_la_OBJECTS = $(am_radeon_drv_la_OBJECTS)
+theatre200_drv_la_LIBADD =
+am_theatre200_drv_la_OBJECTS = theatre200_drv_la-theatre200.lo \
+ theatre200_drv_la-theatre200_module.lo
+theatre200_drv_la_OBJECTS = $(am_theatre200_drv_la_OBJECTS)
+theatre_detect_drv_la_LIBADD =
+am_theatre_detect_drv_la_OBJECTS = theatre_detect.lo \
+ theatre_detect_module.lo
+theatre_detect_drv_la_OBJECTS = $(am_theatre_detect_drv_la_OBJECTS)
+theatre_drv_la_LIBADD =
+am_theatre_drv_la_OBJECTS = theatre.lo theatre_module.lo
+theatre_drv_la_OBJECTS = $(am_theatre_drv_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(ati_drv_la_SOURCES) $(atimisc_drv_la_SOURCES) \
+ $(r128_drv_la_SOURCES) $(radeon_drv_la_SOURCES) \
+ $(theatre200_drv_la_SOURCES) $(theatre_detect_drv_la_SOURCES) \
+ $(theatre_drv_la_SOURCES)
+DIST_SOURCES = $(am__ati_drv_la_SOURCES_DIST) \
+ $(am__atimisc_drv_la_SOURCES_DIST) \
+ $(am__r128_drv_la_SOURCES_DIST) \
+ $(am__radeon_drv_la_SOURCES_DIST) $(theatre200_drv_la_SOURCES) \
+ $(theatre_detect_drv_la_SOURCES) $(theatre_drv_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
@@ -154,6 +273,8 @@ RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+USE_EXA_FALSE = @USE_EXA_FALSE@
+USE_EXA_TRUE = @USE_EXA_TRUE@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
@@ -171,6 +292,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -191,6 +314,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
@@ -199,18 +323,15 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
@DRI_TRUE@ATIMISC_DRI_SRCS = atidri.c
@DRI_TRUE@R128_DRI_SRCS = r128_dri.c
@DRI_TRUE@RADEON_DRI_SRCS = radeon_dri.c
-
@ATIMISC_CPIO_TRUE@ATI_CPIO_SOURCES = ativgaio.c
@ATIMISC_CPIO_TRUE@ATIMISC_CPIO_SOURCES = ativga.c atibank.c atiwonder.c atiwonderio.c
-
@ATIMISC_DGA_TRUE@ATIMISC_DGA_SOURCES = atidga.c
-
+@USE_EXA_TRUE@ATIMISC_EXA_SOURCES = atimach64exa.c
+@USE_EXA_TRUE@RADEON_EXA_SOURCES = radeon_exa.c
AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@
-
ati_drv_la_LTLIBRARIES = ati_drv.la
ati_drv_la_LDFLAGS = -module -avoid-version
ati_drv_ladir = @moduledir@/drivers
@@ -219,7 +340,6 @@ ati_drv_la_SOURCES = \
atiprobe.c atividmem.c atimodule.c $(ATI_CPIO_SOURCES) \
radeon_probe.c r128_probe.c
-
atimisc_drv_la_LTLIBRARIES = atimisc_drv.la
atimisc_drv_la_LDFLAGS = -module -avoid-version
atimisc_drv_ladir = @moduledir@/drivers
@@ -230,8 +350,7 @@ atimisc_drv_la_SOURCES = \
atimach64i2c.c atimach64io.c atimach64xv.c atimode.c atipreinit.c \
atiprint.c atirgb514.c atiscreen.c atituner.c atiutil.c ativalid.c \
atixv.c atiload.c atimisc.c $(ATIMISC_DRI_SRCS) $(ATIMISC_DGA_SOURCES) \
- $(ATIMISC_CPIO_SOURCES)
-
+ $(ATIMISC_CPIO_SOURCES) $(ATIMISC_EXA_SOURCES)
r128_drv_la_LTLIBRARIES = r128_drv.la
r128_drv_la_LDFLAGS = -module -avoid-version
@@ -240,15 +359,13 @@ r128_drv_la_SOURCES = \
r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
r128_video.c r128_misc.c $(R128_DRI_SRCS)
-
radeon_drv_la_LTLIBRARIES = radeon_drv.la
radeon_drv_la_LDFLAGS = -module -avoid-version
radeon_drv_ladir = @moduledir@/drivers
radeon_drv_la_SOURCES = \
radeon_accel.c radeon_mergedfb.c radeon_cursor.c radeon_dga.c \
radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \
- radeon_vip.c radeon_misc.c radeon_exa.c $(RADEON_DRI_SRCS)
-
+ radeon_vip.c radeon_misc.c $(RADEON_DRI_SRCS) $(RADEON_EXA_SOURCES)
theatre_detect_drv_la_LTLIBRARIES = theatre_detect_drv.la
theatre_detect_drv_la_LDFLAGS = -module -avoid-version
@@ -256,15 +373,12 @@ theatre_detect_drv_ladir = @moduledir@/multimedia
theatre_detect_drv_la_SOURCES = \
theatre_detect.c theatre_detect_module.c
-
theatre_drv_la_LTLIBRARIES = theatre_drv.la
theatre_drv_la_LDFLAGS = -module -avoid-version
theatre_drv_ladir = @moduledir@/multimedia
-
theatre_drv_la_SOURCES = \
theatre.c theatre_module.c
-
theatre200_drv_la_LTLIBRARIES = theatre200_drv.la
theatre200_drv_la_LDFLAGS = -module -avoid-version
theatre200_drv_ladir = @moduledir@/multimedia
@@ -274,7 +388,6 @@ theatre200_drv_la_CFLAGS = \
theatre200_drv_la_SOURCES = \
theatre200.c theatre200_module.c
-
EXTRA_DIST = \
radeon_render.c \
radeon_accelfuncs.c \
@@ -309,12 +422,12 @@ EXTRA_DIST = \
atimach64.h \
atimach64i2c.h \
atimach64io.h \
+ atimach64render.c \
atimach64xv.h \
atimode.h \
atimodule.h \
atimono.h \
atioption.h \
- atipciids.h \
atipreinit.h \
atiprint.h \
atipriv.h \
@@ -364,352 +477,228 @@ EXTRA_DIST = \
theatre200.h \
theatre_detect.h \
theatre.h \
- theatre_reg.h
-
-subdir = src
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(ati_drv_la_LTLIBRARIES) $(atimisc_drv_la_LTLIBRARIES) \
- $(r128_drv_la_LTLIBRARIES) $(radeon_drv_la_LTLIBRARIES) \
- $(theatre200_drv_la_LTLIBRARIES) \
- $(theatre_detect_drv_la_LTLIBRARIES) \
- $(theatre_drv_la_LTLIBRARIES)
-
-ati_drv_la_LIBADD =
-am__ati_drv_la_SOURCES_DIST = ati.c atiadapter.c atibus.c atichip.c \
- atiident.c atioption.c atiprobe.c atividmem.c atimodule.c \
- ativgaio.c radeon_probe.c r128_probe.c
-@ATIMISC_CPIO_TRUE@am__objects_1 = ativgaio.lo
-am_ati_drv_la_OBJECTS = ati.lo atiadapter.lo atibus.lo atichip.lo \
- atiident.lo atioption.lo atiprobe.lo atividmem.lo atimodule.lo \
- $(am__objects_1) radeon_probe.lo r128_probe.lo
-ati_drv_la_OBJECTS = $(am_ati_drv_la_OBJECTS)
-atimisc_drv_la_LIBADD =
-am__atimisc_drv_la_SOURCES_DIST = atiaccel.c atiadjust.c atiaudio.c \
- aticlock.c aticonfig.c aticonsole.c aticursor.c atidac.c \
- atidecoder.c atidsp.c atifillin.c atii2c.c atilock.c \
- atimach64.c atimach64accel.c atimach64cursor.c atimach64i2c.c \
- atimach64io.c atimach64xv.c atimode.c atipreinit.c atiprint.c \
- atirgb514.c atiscreen.c atituner.c atiutil.c ativalid.c atixv.c \
- atiload.c atimisc.c atidri.c atidga.c ativga.c atibank.c \
- atiwonder.c atiwonderio.c
-@DRI_TRUE@am__objects_2 = atidri.lo
-@ATIMISC_DGA_TRUE@am__objects_3 = atidga.lo
-@ATIMISC_CPIO_TRUE@am__objects_4 = ativga.lo atibank.lo atiwonder.lo \
-@ATIMISC_CPIO_TRUE@ atiwonderio.lo
-am_atimisc_drv_la_OBJECTS = atiaccel.lo atiadjust.lo atiaudio.lo \
- aticlock.lo aticonfig.lo aticonsole.lo aticursor.lo atidac.lo \
- atidecoder.lo atidsp.lo atifillin.lo atii2c.lo atilock.lo \
- atimach64.lo atimach64accel.lo atimach64cursor.lo \
- atimach64i2c.lo atimach64io.lo atimach64xv.lo atimode.lo \
- atipreinit.lo atiprint.lo atirgb514.lo atiscreen.lo atituner.lo \
- atiutil.lo ativalid.lo atixv.lo atiload.lo atimisc.lo \
- $(am__objects_2) $(am__objects_3) $(am__objects_4)
-atimisc_drv_la_OBJECTS = $(am_atimisc_drv_la_OBJECTS)
-r128_drv_la_LIBADD =
-am__r128_drv_la_SOURCES_DIST = r128_accel.c r128_cursor.c r128_dga.c \
- r128_driver.c r128_video.c r128_misc.c r128_dri.c
-@DRI_TRUE@am__objects_5 = r128_dri.lo
-am_r128_drv_la_OBJECTS = r128_accel.lo r128_cursor.lo r128_dga.lo \
- r128_driver.lo r128_video.lo r128_misc.lo $(am__objects_5)
-r128_drv_la_OBJECTS = $(am_r128_drv_la_OBJECTS)
-radeon_drv_la_LIBADD =
-am__radeon_drv_la_SOURCES_DIST = radeon_accel.c radeon_mergedfb.c \
- radeon_cursor.c radeon_dga.c radeon_driver.c radeon_video.c \
- radeon_bios.c radeon_mm_i2c.c radeon_vip.c radeon_misc.c \
- radeon_exa.c radeon_dri.c
-@DRI_TRUE@am__objects_6 = radeon_dri.lo
-am_radeon_drv_la_OBJECTS = radeon_accel.lo radeon_mergedfb.lo \
- radeon_cursor.lo radeon_dga.lo radeon_driver.lo radeon_video.lo \
- radeon_bios.lo radeon_mm_i2c.lo radeon_vip.lo radeon_misc.lo \
- radeon_exa.lo $(am__objects_6)
-radeon_drv_la_OBJECTS = $(am_radeon_drv_la_OBJECTS)
-theatre200_drv_la_LIBADD =
-am_theatre200_drv_la_OBJECTS = theatre200_drv_la-theatre200.lo \
- theatre200_drv_la-theatre200_module.lo
-theatre200_drv_la_OBJECTS = $(am_theatre200_drv_la_OBJECTS)
-theatre_detect_drv_la_LIBADD =
-am_theatre_detect_drv_la_OBJECTS = theatre_detect.lo \
- theatre_detect_module.lo
-theatre_detect_drv_la_OBJECTS = $(am_theatre_detect_drv_la_OBJECTS)
-theatre_drv_la_LIBADD =
-am_theatre_drv_la_OBJECTS = theatre.lo theatre_module.lo
-theatre_drv_la_OBJECTS = $(am_theatre_drv_la_OBJECTS)
-
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ati.Plo ./$(DEPDIR)/atiaccel.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiadapter.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiadjust.Plo ./$(DEPDIR)/atiaudio.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atibank.Plo ./$(DEPDIR)/atibus.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atichip.Plo ./$(DEPDIR)/aticlock.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/aticonfig.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/aticonsole.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/aticursor.Plo ./$(DEPDIR)/atidac.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atidecoder.Plo ./$(DEPDIR)/atidga.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atidri.Plo ./$(DEPDIR)/atidsp.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atifillin.Plo ./$(DEPDIR)/atii2c.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiident.Plo ./$(DEPDIR)/atiload.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atilock.Plo ./$(DEPDIR)/atimach64.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimach64accel.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimach64cursor.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimach64i2c.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimach64io.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimach64xv.Plo ./$(DEPDIR)/atimisc.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atimode.Plo ./$(DEPDIR)/atimodule.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atioption.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atipreinit.Plo ./$(DEPDIR)/atiprint.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiprobe.Plo ./$(DEPDIR)/atirgb514.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiscreen.Plo ./$(DEPDIR)/atituner.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiutil.Plo ./$(DEPDIR)/ativalid.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/ativga.Plo ./$(DEPDIR)/ativgaio.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atividmem.Plo ./$(DEPDIR)/atiwonder.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/atiwonderio.Plo ./$(DEPDIR)/atixv.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_accel.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_cursor.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_dga.Plo ./$(DEPDIR)/r128_dri.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_driver.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_misc.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_probe.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/r128_video.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_accel.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_bios.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_cursor.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_dga.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_dri.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_driver.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_exa.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_mergedfb.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_misc.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_mm_i2c.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_probe.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_video.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/radeon_vip.Plo ./$(DEPDIR)/theatre.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/theatre200_drv_la-theatre200.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/theatre200_drv_la-theatre200_module.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/theatre_detect.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/theatre_detect_module.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/theatre_module.Plo
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DIST_SOURCES = $(am__ati_drv_la_SOURCES_DIST) \
- $(am__atimisc_drv_la_SOURCES_DIST) \
- $(am__r128_drv_la_SOURCES_DIST) \
- $(am__radeon_drv_la_SOURCES_DIST) $(theatre200_drv_la_SOURCES) \
- $(theatre_detect_drv_la_SOURCES) $(theatre_drv_la_SOURCES)
-DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
-SOURCES = $(ati_drv_la_SOURCES) $(atimisc_drv_la_SOURCES) $(r128_drv_la_SOURCES) $(radeon_drv_la_SOURCES) $(theatre200_drv_la_SOURCES) $(theatre_detect_drv_la_SOURCES) $(theatre_drv_la_SOURCES)
+ theatre_reg.h \
+ atipciids.h
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-ati_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-ati_drv_laLTLIBRARIES: $(ati_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(ati_drv_ladir)
+ test -z "$(ati_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(ati_drv_ladir)"
@list='$(ati_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(ati_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(ati_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(ati_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(ati_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(ati_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(ati_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(ati_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(ati_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-ati_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(ati_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(ati_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(ati_drv_ladir)/$$p; \
+ @set -x; list='$(ati_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(ati_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(ati_drv_ladir)/$$p"; \
done
clean-ati_drv_laLTLIBRARIES:
-test -z "$(ati_drv_la_LTLIBRARIES)" || rm -f $(ati_drv_la_LTLIBRARIES)
@list='$(ati_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-atimisc_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-atimisc_drv_laLTLIBRARIES: $(atimisc_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(atimisc_drv_ladir)
+ test -z "$(atimisc_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(atimisc_drv_ladir)"
@list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(atimisc_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(atimisc_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(atimisc_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(atimisc_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-atimisc_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(atimisc_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(atimisc_drv_ladir)/$$p; \
+ @set -x; list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(atimisc_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(atimisc_drv_ladir)/$$p"; \
done
clean-atimisc_drv_laLTLIBRARIES:
-test -z "$(atimisc_drv_la_LTLIBRARIES)" || rm -f $(atimisc_drv_la_LTLIBRARIES)
@list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-r128_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-r128_drv_laLTLIBRARIES: $(r128_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(r128_drv_ladir)
+ test -z "$(r128_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(r128_drv_ladir)"
@list='$(r128_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(r128_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(r128_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(r128_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(r128_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(r128_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(r128_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(r128_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(r128_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-r128_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(r128_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(r128_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(r128_drv_ladir)/$$p; \
+ @set -x; list='$(r128_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(r128_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(r128_drv_ladir)/$$p"; \
done
clean-r128_drv_laLTLIBRARIES:
-test -z "$(r128_drv_la_LTLIBRARIES)" || rm -f $(r128_drv_la_LTLIBRARIES)
@list='$(r128_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-radeon_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-radeon_drv_laLTLIBRARIES: $(radeon_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(radeon_drv_ladir)
+ test -z "$(radeon_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(radeon_drv_ladir)"
@list='$(radeon_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(radeon_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(radeon_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(radeon_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(radeon_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(radeon_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(radeon_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(radeon_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(radeon_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-radeon_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(radeon_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(radeon_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(radeon_drv_ladir)/$$p; \
+ @set -x; list='$(radeon_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(radeon_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(radeon_drv_ladir)/$$p"; \
done
clean-radeon_drv_laLTLIBRARIES:
-test -z "$(radeon_drv_la_LTLIBRARIES)" || rm -f $(radeon_drv_la_LTLIBRARIES)
@list='$(radeon_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-theatre200_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-theatre200_drv_laLTLIBRARIES: $(theatre200_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(theatre200_drv_ladir)
+ test -z "$(theatre200_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(theatre200_drv_ladir)"
@list='$(theatre200_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(theatre200_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre200_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(theatre200_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre200_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(theatre200_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(theatre200_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(theatre200_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(theatre200_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-theatre200_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(theatre200_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre200_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre200_drv_ladir)/$$p; \
+ @set -x; list='$(theatre200_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(theatre200_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(theatre200_drv_ladir)/$$p"; \
done
clean-theatre200_drv_laLTLIBRARIES:
-test -z "$(theatre200_drv_la_LTLIBRARIES)" || rm -f $(theatre200_drv_la_LTLIBRARIES)
@list='$(theatre200_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-theatre_detect_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-theatre_detect_drv_laLTLIBRARIES: $(theatre_detect_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(theatre_detect_drv_ladir)
+ test -z "$(theatre_detect_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(theatre_detect_drv_ladir)"
@list='$(theatre_detect_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(theatre_detect_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre_detect_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(theatre_detect_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre_detect_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(theatre_detect_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(theatre_detect_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(theatre_detect_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(theatre_detect_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-theatre_detect_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(theatre_detect_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre_detect_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre_detect_drv_ladir)/$$p; \
+ @set -x; list='$(theatre_detect_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(theatre_detect_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(theatre_detect_drv_ladir)/$$p"; \
done
clean-theatre_detect_drv_laLTLIBRARIES:
-test -z "$(theatre_detect_drv_la_LTLIBRARIES)" || rm -f $(theatre_detect_drv_la_LTLIBRARIES)
@list='$(theatre_detect_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-theatre_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
install-theatre_drv_laLTLIBRARIES: $(theatre_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(theatre_drv_ladir)
+ test -z "$(theatre_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(theatre_drv_ladir)"
@list='$(theatre_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(theatre_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre_drv_ladir)/$$f"; \
- $(LIBTOOL) --mode=install $(theatre_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(theatre_drv_ladir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(theatre_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(theatre_drv_ladir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(theatre_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(theatre_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-theatre_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(theatre_drv_la_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre_drv_ladir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(theatre_drv_ladir)/$$p; \
+ @set -x; list='$(theatre_drv_la_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(theatre_drv_ladir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(theatre_drv_ladir)/$$p"; \
done
clean-theatre_drv_laLTLIBRARIES:
-test -z "$(theatre_drv_la_LTLIBRARIES)" || rm -f $(theatre_drv_la_LTLIBRARIES)
@list='$(theatre_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
@@ -729,7 +718,7 @@ theatre_drv.la: $(theatre_drv_la_OBJECTS) $(theatre_drv_la_DEPENDENCIES)
$(LINK) -rpath $(theatre_drv_ladir) $(theatre_drv_la_LDFLAGS) $(theatre_drv_la_OBJECTS) $(theatre_drv_la_LIBADD) $(LIBS)
mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
+ -rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@@ -759,6 +748,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64accel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64cursor.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64exa.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64i2c.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64io.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atimach64xv.Plo@am__quote@
@@ -809,103 +799,39 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/theatre_module.Plo@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-
-theatre200_drv_la-theatre200.o: theatre200.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200.o -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200.o `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200.c' object='theatre200_drv_la-theatre200.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200.Po' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200.o `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c
-
-theatre200_drv_la-theatre200.obj: theatre200.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200.obj -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200.obj `if test -f 'theatre200.c'; then $(CYGPATH_W) 'theatre200.c'; else $(CYGPATH_W) '$(srcdir)/theatre200.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200.c' object='theatre200_drv_la-theatre200.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200.Po' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200.obj `if test -f 'theatre200.c'; then $(CYGPATH_W) 'theatre200.c'; else $(CYGPATH_W) '$(srcdir)/theatre200.c'; fi`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
theatre200_drv_la-theatre200.lo: theatre200.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200.lo -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200.lo `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200.Plo"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200.lo -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" -c -o theatre200_drv_la-theatre200.lo `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200.Plo"; else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200.c' object='theatre200_drv_la-theatre200.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200.Plo' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200.lo `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c
-
-theatre200_drv_la-theatre200_module.o: theatre200_module.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200_module.o -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200_module.o `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200_module.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200_module.c' object='theatre200_drv_la-theatre200_module.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.Po' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200_module.o `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c
-
-theatre200_drv_la-theatre200_module.obj: theatre200_module.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200_module.obj -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200_module.obj `if test -f 'theatre200_module.c'; then $(CYGPATH_W) 'theatre200_module.c'; else $(CYGPATH_W) '$(srcdir)/theatre200_module.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200_module.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200_module.c' object='theatre200_drv_la-theatre200_module.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.Po' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200_module.obj `if test -f 'theatre200_module.c'; then $(CYGPATH_W) 'theatre200_module.c'; else $(CYGPATH_W) '$(srcdir)/theatre200_module.c'; fi`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200.lo `test -f 'theatre200.c' || echo '$(srcdir)/'`theatre200.c
theatre200_drv_la-theatre200_module.lo: theatre200_module.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200_module.lo -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" \
-@am__fastdepCC_TRUE@ -c -o theatre200_drv_la-theatre200_module.lo `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200_module.Plo"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -MT theatre200_drv_la-theatre200_module.lo -MD -MP -MF "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" -c -o theatre200_drv_la-theatre200_module.lo `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo" "$(DEPDIR)/theatre200_drv_la-theatre200_module.Plo"; else rm -f "$(DEPDIR)/theatre200_drv_la-theatre200_module.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='theatre200_module.c' object='theatre200_drv_la-theatre200_module.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.Plo' tmpdepfile='$(DEPDIR)/theatre200_drv_la-theatre200_module.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200_module.lo `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(theatre200_drv_la_CFLAGS) $(CFLAGS) -c -o theatre200_drv_la-theatre200_module.lo `test -f 'theatre200_module.c' || echo '$(srcdir)/'`theatre200_module.c
mostlyclean-libtool:
-rm -f *.lo
@@ -917,14 +843,6 @@ distclean-libtool:
-rm -f libtool
uninstall-info-am:
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -933,6 +851,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -944,10 +863,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -970,10 +890,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -987,7 +903,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -1005,9 +921,10 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(ati_drv_ladir) $(DESTDIR)$(atimisc_drv_ladir) $(DESTDIR)$(r128_drv_ladir) $(DESTDIR)$(radeon_drv_ladir) $(DESTDIR)$(theatre200_drv_ladir) $(DESTDIR)$(theatre_detect_drv_ladir) $(DESTDIR)$(theatre_drv_ladir)
+ for dir in "$(DESTDIR)$(ati_drv_ladir)" "$(DESTDIR)$(atimisc_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" "$(DESTDIR)$(radeon_drv_ladir)" "$(DESTDIR)$(theatre200_drv_ladir)" "$(DESTDIR)$(theatre_detect_drv_ladir)" "$(DESTDIR)$(theatre_drv_ladir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -1027,7 +944,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -1051,13 +968,16 @@ dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
install-data-am: install-ati_drv_laLTLIBRARIES \
install-atimisc_drv_laLTLIBRARIES \
- install-r128_drv_laLTLIBRARIES install-radeon_drv_laLTLIBRARIES \
+ install-r128_drv_laLTLIBRARIES \
+ install-radeon_drv_laLTLIBRARIES \
install-theatre200_drv_laLTLIBRARIES \
install-theatre_detect_drv_laLTLIBRARIES \
install-theatre_drv_laLTLIBRARIES
@@ -1104,8 +1024,8 @@ uninstall-am: uninstall-ati_drv_laLTLIBRARIES \
clean-theatre_detect_drv_laLTLIBRARIES \
clean-theatre_drv_laLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am info info-am install \
- install-am install-ati_drv_laLTLIBRARIES \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-ati_drv_laLTLIBRARIES \
install-atimisc_drv_laLTLIBRARIES install-data install-data-am \
install-exec install-exec-am install-info install-info-am \
install-man install-r128_drv_laLTLIBRARIES \
diff --git a/src/ati.h b/src/ati.h
index 07eeba3..746177e 100644
--- a/src/ati.h
+++ b/src/ati.h
@@ -24,12 +24,12 @@
#ifndef ___ATI_H___
#define ___ATI_H___ 1
+#include <unistd.h>
#include "xf86Pci.h"
#include "atipciids.h"
#include "xf86.h"
-#include "xf86_ansic.h"
#include "xf86_OSproc.h"
extern DriverRec ATI;
diff --git a/src/atiaccel.c b/src/atiaccel.c
index 050019d..99efae9 100644
--- a/src/atiaccel.c
+++ b/src/atiaccel.c
@@ -33,6 +33,7 @@
#include "atimach64accel.h"
#include "atistruct.h"
+#ifdef USE_XAA
/*
* ATIInitializeAcceleration --
*
@@ -47,8 +48,6 @@ ATIInitializeAcceleration
ATIPtr pATI
)
{
- int maxScanlines = 32767, maxPixelArea, PixelArea;
-
if (pATI->OptionAccel)
{
if (!(pATI->pXAAInfo = XAACreateInfoRec()))
@@ -57,7 +56,7 @@ ATIInitializeAcceleration
switch (pATI->Adapter)
{
case ATI_ADAPTER_MACH64:
- maxScanlines = ATIMach64AccelInit(pATI, pATI->pXAAInfo);
+ ATIMach64AccelInit(pATI, pATI->pXAAInfo);
break;
default:
@@ -65,31 +64,6 @@ ATIInitializeAcceleration
}
}
-#ifndef AVOID_CPIO
-
- if (!pATI->BankInfo.BankSize)
-
-#endif /* AVOID_CPIO */
-
-#ifdef XF86DRI_DEVEL
-
- /* If DRI is enabled, we've already set up the FB manager in ATIScreenInit */
- if (!pATI->directRenderingEnabled)
-
-#endif /* XF86DRI */
- {
- /*
- * Note: If PixelArea exceeds the engine's maximum, the excess is
- * never used, even though it would be useful for such things
- * as XVideo buffers.
- */
- maxPixelArea = maxScanlines * pScreenInfo->displayWidth;
- PixelArea = pScreenInfo->videoRam * 1024 * 8 / pATI->bitsPerPixel;
- if (PixelArea > maxPixelArea)
- PixelArea = maxPixelArea;
- xf86InitFBManagerArea(pScreen, PixelArea, 2);
- }
-
if (!pATI->OptionAccel || XAAInit(pScreen, pATI->pXAAInfo))
return TRUE;
@@ -144,3 +118,4 @@ ATIResizeOffscreenLinear
return pLinear;
}
+#endif /* USE_XAA */
diff --git a/src/atiadapter.h b/src/atiadapter.h
index 5cfb79c..8db366e 100644
--- a/src/atiadapter.h
+++ b/src/atiadapter.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h,v 1.10 2003/01/01 19:16:30 tsi Exp $ */
/*
- * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiaudio.h b/src/atiaudio.h
index f2eb94c..19080d2 100644
--- a/src/atiaudio.h
+++ b/src/atiaudio.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h,v 1.1 2003/07/24 22:08:27 tsi Exp $ */
/*
- * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atibus.c b/src/atibus.c
index c6eade1..7219483 100644
--- a/src/atibus.c
+++ b/src/atibus.c
@@ -25,6 +25,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atibus.h"
diff --git a/src/aticlock.c b/src/aticlock.c
index 5acd3f8..c0de559 100644
--- a/src/aticlock.c
+++ b/src/aticlock.c
@@ -196,6 +196,7 @@
#include "config.h"
#endif
+#include <stdlib.h>
#include "ati.h"
#include "atiadapter.h"
#include "atichip.h"
diff --git a/src/aticonfig.c b/src/aticonfig.c
index 6a118a0..d0a3677 100644
--- a/src/aticonfig.c
+++ b/src/aticonfig.c
@@ -28,6 +28,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atichip.h"
@@ -151,6 +153,8 @@ ATIProcessOptions
# define ProbeClocks PublicOption[ATI_OPTION_PROBE_CLOCKS].value.bool
# define ShadowFB PublicOption[ATI_OPTION_SHADOW_FB].value.bool
# define SWCursor PublicOption[ATI_OPTION_SWCURSOR].value.bool
+# define AccelMethod PublicOption[ATI_OPTION_ACCELMETHOD].value.str
+# define RenderAccel PublicOption[ATI_OPTION_RENDER_ACCEL].value.bool
# define LCDSync PrivateOption[ATI_OPTION_LCDSYNC].value.bool
# define ReferenceClock \
@@ -338,5 +342,32 @@ ATIProcessOptions
}
}
+ pATI->useEXA = FALSE;
+ if (pATI->OptionAccel)
+ {
+ MessageType from = X_DEFAULT;
+#if defined(USE_EXA)
+#if defined(USE_XAA)
+ if (AccelMethod != NULL)
+ {
+ from = X_CONFIG;
+ if (xf86NameCmp(AccelMethod, "EXA") == 0)
+ pATI->useEXA = TRUE;
+ }
+#else /* USE_XAA */
+ pATI->useEXA = TRUE;
+#endif /* !USE_XAA */
+#endif /* USE_EXA */
+ xf86DrvMsg(pScreenInfo->scrnIndex, from,
+ "Using %s acceleration architecture\n",
+ pATI->useEXA ? "EXA" : "XAA");
+
+ pATI->RenderAccelEnabled = FALSE;
+#if defined(USE_EXA)
+ if (pATI->useEXA && RenderAccel)
+ pATI->RenderAccelEnabled = TRUE;
+#endif
+ }
+
xfree(PublicOption);
}
diff --git a/src/aticonsole.c b/src/aticonsole.c
index 346bf44..53b1ed8 100644
--- a/src/aticonsole.c
+++ b/src/aticonsole.c
@@ -177,8 +177,7 @@ ATIProbeAndSetActiveDisplays
xf86LoaderRefSymLists(vbeSymbols, NULL);
if (xf86GetVerbosity() > 3) {
- xf86ErrorFVerb(4, "\n Before TV-Out queries\n\n",
- pScreenInfo->currentMode->name);
+ xf86ErrorFVerb(4, "\n Before TV-Out queries\n\n");
ATIPrintRegisters(pATI);
}
diff --git a/src/aticrtc.h b/src/aticrtc.h
index ba2a7a1..9f6ec38 100644
--- a/src/aticrtc.h
+++ b/src/aticrtc.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h,v 1.8 2003/01/01 19:16:31 tsi Exp $ */
/*
- * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atidac.c b/src/atidac.c
index 7eb4515..8c5ea52 100644
--- a/src/atidac.c
+++ b/src/atidac.c
@@ -25,6 +25,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atidac.h"
#include "atimach64io.h"
diff --git a/src/atidecoder.h b/src/atidecoder.h
index 0c3cc5c..e88b89f 100644
--- a/src/atidecoder.h
+++ b/src/atidecoder.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h,v 1.1 2003/07/24 22:08:28 tsi Exp $ */
/*
- * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atidga.c b/src/atidga.c
index 0f8fb8a..1c652a7 100644
--- a/src/atidga.c
+++ b/src/atidga.c
@@ -26,6 +26,8 @@
#endif
#ifndef AVOID_DGA
+#include <string.h>
+
#include "ati.h"
#include "atiadjust.h"
#include "atichip.h"
@@ -186,6 +188,8 @@ ATIDGAFillRect
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
+/*FIXME : use EXA if available */
+#ifdef USE_XAA
XAAInfoRecPtr pXAAInfo = pATI->pXAAInfo;
(*pXAAInfo->SetupForSolidFill)(pScreenInfo, (int)colour, GXcopy,
@@ -194,6 +198,7 @@ ATIDGAFillRect
if (pScreenInfo->bitsPerPixel == pATI->bitsPerPixel)
SET_SYNC_FLAG(pXAAInfo);
+#endif
}
/*
@@ -215,6 +220,8 @@ ATIDGABlitRect
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
+/*FIXME : use EXA if available */
+#ifdef USE_XAA
XAAInfoRecPtr pXAAInfo = pATI->pXAAInfo;
int xdir = ((xSrc < xDst) && (ySrc == yDst)) ? -1 : 1;
int ydir = (ySrc < yDst) ? -1 : 1;
@@ -226,6 +233,7 @@ ATIDGABlitRect
if (pScreenInfo->bitsPerPixel == pATI->bitsPerPixel)
SET_SYNC_FLAG(pXAAInfo);
+#endif
}
/*
@@ -248,6 +256,8 @@ ATIDGABlitTransRect
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
+/*FIXME : use EXA if available */
+#ifdef USE_XAA
XAAInfoRecPtr pXAAInfo = pATI->pXAAInfo;
int xdir = ((xSrc < xDst) && (ySrc == yDst)) ? -1 : 1;
int ydir = (ySrc < yDst) ? -1 : 1;
@@ -264,6 +274,7 @@ ATIDGABlitTransRect
if (pScreenInfo->bitsPerPixel == pATI->bitsPerPixel)
SET_SYNC_FLAG(pXAAInfo);
+#endif
}
/*
@@ -333,8 +344,10 @@ ATIDGAAddModes
pDGAMode->flags |= DGA_PIXMAP_AVAILABLE;
pDGAMode->address = pATI->pMemory;
+#ifdef USE_XAA
if (pATI->pXAAInfo)
pDGAMode->flags &= ~DGA_CONCURRENT_ACCESS;
+#endif
}
if ((pMode->Flags & V_DBLSCAN) || (pMode->VScan > 1))
pDGAMode->flags |= DGA_DOUBLESCAN;
@@ -395,7 +408,9 @@ ATIDGAInit
ATIPtr pATI
)
{
+#ifdef USE_XAA
XAAInfoRecPtr pXAAInfo;
+#endif
int flags;
if (!pATI->nDGAMode)
@@ -420,6 +435,7 @@ ATIDGAInit
pATI->ATIDGAFunctions.GetViewport = ATIDGAGetViewport;
flags = 0;
+#ifdef USE_XAA
if ((pXAAInfo = pATI->pXAAInfo))
{
pATI->ATIDGAFunctions.Sync = pXAAInfo->Sync;
@@ -437,6 +453,7 @@ ATIDGAInit
pATI->ATIDGAFunctions.BlitTransRect = ATIDGABlitTransRect;
}
}
+#endif
if (!flags)
flags = DGA_CONCURRENT_ACCESS;
diff --git a/src/atidri.c b/src/atidri.c
index 2156603..720c96a 100644
--- a/src/atidri.c
+++ b/src/atidri.c
@@ -31,6 +31,10 @@
* Leif Delgass <ldelgass@retinalburn.net>
*/
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+
/* Driver data structures */
#include "ati.h"
#include "atibus.h"
@@ -289,9 +293,9 @@ static void ATIEnterServer( ScreenPtr pScreen )
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
ATIPtr pATI = ATIPTR(pScreenInfo);
- if ( pATI->directRenderingEnabled && pATI->pXAAInfo ) {
- pATI->pXAAInfo->NeedToSync = TRUE;
- pATI->NeedDRISync = TRUE;
+ if ( pATI->directRenderingEnabled ) {
+ ATIDRIMarkSyncInt(pScreenInfo);
+ ATIDRIMarkSyncExt(pScreenInfo);
}
}
@@ -329,6 +333,7 @@ static void ATIDRISwapContext( ScreenPtr pScreen,
}
}
+#ifdef USE_XAA
static void ATIDRITransitionTo2d(ScreenPtr pScreen)
{
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
@@ -396,10 +401,49 @@ static void ATIDRITransitionTo3d(ScreenPtr pScreen)
pATI->have3DWindows = TRUE;
}
+#endif /* USE_XAA */
+
+#ifdef USE_EXA
+static void ATIDRITransitionTo2d_EXA(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+#if 0
+ ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
+
+ exaEnableDisableFBAccess(pScreen->myNum, FALSE);
+
+ pATI->pExa->offScreenBase = pATIDRIServer->backOffset;
+
+ exaEnableDisableFBAccess(pScreen->myNum, TRUE);
+#endif
+
+ pATI->have3DWindows = FALSE;
+}
+
+static void ATIDRITransitionTo3d_EXA(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+#if 0
+ ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
+
+ exaEnableDisableFBAccess(pScreen->myNum, FALSE);
+
+ pATI->pExa->offScreenBase = pATIDRIServer->textureOffset +
+ pATIDRIServer->textureSize;
+
+ exaEnableDisableFBAccess(pScreen->myNum, TRUE);
+#endif
+
+ pATI->have3DWindows = TRUE;
+}
+#endif /* USE_EXA */
/* Initialize the state of the back and depth buffers. */
static void ATIDRIInitBuffers( WindowPtr pWin, RegionPtr prgn, CARD32 indx )
{
+#ifdef USE_XAA
ScreenPtr pScreen = pWin->drawable.pScreen;
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
ATIPtr pATI = ATIPTR(pScreenInfo);
@@ -450,7 +494,8 @@ static void ATIDRIInitBuffers( WindowPtr pWin, RegionPtr prgn, CARD32 indx )
pbox->x2 - pbox->x1,
pbox->y2 - pbox->y1);
- pXAAInfo->NeedToSync = TRUE;
+ ATIDRIMarkSyncInt(pScreenInfo);
+#endif
}
/* Copy the back and depth buffers when the X server moves a window.
@@ -465,6 +510,7 @@ static void ATIDRIInitBuffers( WindowPtr pWin, RegionPtr prgn, CARD32 indx )
static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
RegionPtr prgnSrc, CARD32 indx )
{
+#ifdef USE_XAA
ScreenPtr pScreen = pWin->drawable.pScreen;
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
ATIPtr pATI = ATIPTR(pScreenInfo);
@@ -628,7 +674,8 @@ static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
DEALLOCATE_LOCAL(pptNew1);
DEALLOCATE_LOCAL(pboxNew1);
- pXAAInfo->NeedToSync = TRUE;
+ ATIDRIMarkSyncInt(pScreenInfo);
+#endif
}
/* Compute log base 2 of val. */
@@ -678,7 +725,6 @@ static Bool ATIDRISetAgpMode( ScreenPtr pScreen )
if (pATI->OptionAGPSize) {
switch (pATI->OptionAGPSize) {
- case 256:
case 128:
case 64:
case 32:
@@ -772,8 +818,7 @@ static Bool ATIDRIAgpInit( ScreenPtr pScreen )
if (pATI->OptionBufferSize > 2) {
xf86DrvMsg( pScreen->myNum, X_WARNING, "[agp] Illegal DMA buffers size: %d MB\n",
pATI->OptionBufferSize );
- xf86DrvMsg( pScreen->myNum, X_WARNING, "[agp] Clamping DMA buffers size to 2 MB\n",
- pATI->OptionBufferSize );
+ xf86DrvMsg( pScreen->myNum, X_WARNING, "[agp] Clamping DMA buffers size to 2 MB\n");
pATIDRIServer->bufferSize = 2;
} else {
pATIDRIServer->bufferSize = pATI->OptionBufferSize;
@@ -814,7 +859,7 @@ static Bool ATIDRIAgpInit( ScreenPtr pScreen )
return FALSE;
}
xf86DrvMsg( pScreen->myNum, X_INFO,
- "[agp] ring handle = 0x%08lx\n",
+ "[agp] ring handle = 0x%08x\n",
pATIDRIServer->ringHandle );
if ( drmMap( pATI->drmFD, pATIDRIServer->ringHandle,
@@ -835,7 +880,7 @@ static Bool ATIDRIAgpInit( ScreenPtr pScreen )
return FALSE;
}
xf86DrvMsg( pScreen->myNum, X_INFO,
- "[agp] vertex buffers handle = 0x%08lx\n",
+ "[agp] vertex buffers handle = 0x%08x\n",
pATIDRIServer->bufferHandle );
if ( drmMap( pATI->drmFD, pATIDRIServer->bufferHandle,
@@ -856,7 +901,7 @@ static Bool ATIDRIAgpInit( ScreenPtr pScreen )
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[agp] AGP texture region handle = 0x%08lx\n",
+ "[agp] AGP texture region handle = 0x%08x\n",
pATIDRIServer->agpTexHandle);
if (drmMap(pATI->drmFD, pATIDRIServer->agpTexHandle, pATIDRIServer->agpTexMapSize,
@@ -925,7 +970,7 @@ static Bool ATIDRIMapInit( ScreenPtr pScreen )
return FALSE;
}
xf86DrvMsg( pScreen->myNum, X_INFO,
- "[drm] register handle = 0x%08lx\n",
+ "[drm] register handle = 0x%08x\n",
pATIDRIServer->regsHandle );
return TRUE;
@@ -1020,7 +1065,7 @@ static Bool ATIDRIMapBuffers( ScreenPtr pScreen )
xf86DrvMsg( pScreen->myNum, X_INFO,
"[drm] Mapped %d DMA buffers at 0x%08lx\n",
pATIDRIServer->drmBuffers->count,
- pATIDRIServer->drmBuffers->list->address );
+ (unsigned long)pATIDRIServer->drmBuffers->list->address );
return TRUE;
}
@@ -1058,8 +1103,7 @@ static Bool ATIDRIIrqInit( ScreenPtr pScreen )
pATI->irq);
else {
xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "[drm] Falling back to irq-free operation\n",
- pATI->irq);
+ "[drm] Falling back to irq-free operation\n");
return FALSE;
}
}
@@ -1149,7 +1193,7 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
pDRIInfo->ddxDriverMajorVersion = ATI_VERSION_MAJOR;
pDRIInfo->ddxDriverMinorVersion = ATI_VERSION_MINOR;
pDRIInfo->ddxDriverPatchVersion = ATI_VERSION_PATCH;
- pDRIInfo->frameBufferPhysicalAddress = pATI->LinearBase;
+ pDRIInfo->frameBufferPhysicalAddress = (void *)pATI->LinearBase;
pDRIInfo->frameBufferSize = pATI->LinearSize;
pDRIInfo->frameBufferStride = (pScreenInfo->displayWidth *
pATI->FBBytesPerPixel);
@@ -1203,8 +1247,18 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
pDRIInfo->SwapContext = ATIDRISwapContext;
pDRIInfo->InitBuffers = ATIDRIInitBuffers;
pDRIInfo->MoveBuffers = ATIDRIMoveBuffers;
- pDRIInfo->TransitionTo2d = ATIDRITransitionTo2d;
- pDRIInfo->TransitionTo3d = ATIDRITransitionTo3d;
+#ifdef USE_XAA
+ if (!pATI->useEXA) {
+ pDRIInfo->TransitionTo2d = ATIDRITransitionTo2d;
+ pDRIInfo->TransitionTo3d = ATIDRITransitionTo3d;
+ }
+#endif /* USE_XAA */
+#ifdef USE_EXA
+ if (pATI->useEXA) {
+ pDRIInfo->TransitionTo2d = ATIDRITransitionTo2d_EXA;
+ pDRIInfo->TransitionTo3d = ATIDRITransitionTo3d_EXA;
+ }
+#endif /* USE_EXA */
pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
pDRIInfo->createDummyCtx = TRUE;
@@ -1314,8 +1368,7 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
if (pATI->OptionBufferSize > 2) {
xf86DrvMsg( pScreen->myNum, X_WARNING, "[pci] Illegal DMA buffers size: %d MB\n",
pATI->OptionBufferSize );
- xf86DrvMsg( pScreen->myNum, X_WARNING, "[pci] Clamping DMA buffers size to 2 MB\n",
- pATI->OptionBufferSize );
+ xf86DrvMsg( pScreen->myNum, X_WARNING, "[pci] Clamping DMA buffers size to 2 MB\n");
pATIDRIServer->bufferSize = 2;
} else {
pATIDRIServer->bufferSize = pATI->OptionBufferSize;
@@ -1460,8 +1513,6 @@ void ATIDRIResume( ScreenPtr pScreen )
ATIPtr pATI = ATIPTR(pScreenInfo);
ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
- int ret;
-
xf86DrvMsg( pScreen->myNum, X_INFO,
"[RESUME] Attempting to re-init Mach64 hardware.\n");
diff --git a/src/atii2c.c b/src/atii2c.c
index cb7bc04..35de71f 100644
--- a/src/atii2c.c
+++ b/src/atii2c.c
@@ -117,21 +117,22 @@
/*
- * ATII2CAddress --
+ * ATII2CStart --
*
- * This function puts a Start bit and an 8-bit address on the I2C bus.
+ * This function puts a start signal on the I2C bus.
*/
static Bool
-ATII2CAddress
+ATII2CStart
(
- I2CDevPtr pI2CDev,
- I2CSlaveAddr Address
+ I2CBusPtr pI2CBus,
+ int timeout
)
{
- I2CBusPtr pI2CBus = pI2CDev->pI2CBus;
ATII2CPtr pATII2C = pI2CBus->DriverPrivate.ptr;
ATIPtr pATI = pATII2C->pATI;
+ (void)timeout;
+
/*
* Set I2C line directions to out-bound. SCL will remain out-bound until
* next I2C Stop.
@@ -148,6 +149,23 @@ ATII2CAddress
ATII2CSDABitOff;
ATII2CSCLBitOff;
+ return TRUE;
+}
+
+/*
+ * ATII2CAddress --
+ *
+ * This function puts an 8-bit address on the I2C bus.
+ */
+static Bool
+ATII2CAddress
+(
+ I2CDevPtr pI2CDev,
+ I2CSlaveAddr Address
+)
+{
+ I2CBusPtr pI2CBus = pI2CDev->pI2CBus;
+
/* Send low byte of device address */
if ((*pI2CBus->I2CPutByte)(pI2CDev, (I2CByte)Address))
{
@@ -318,6 +336,7 @@ ATICreateI2CBusRec
pI2CBus->scrnIndex = iScreen;
pI2CBus->I2CAddress = ATII2CAddress;
+ pI2CBus->I2CStart = ATII2CStart;
pI2CBus->I2CStop = ATII2CStop;
pI2CBus->I2CPutByte = ATII2CPutByte;
pI2CBus->I2CGetByte = ATII2CGetByte;
diff --git a/src/atiio.h b/src/atiio.h
index 9405033..f6f871b 100644
--- a/src/atiio.h
+++ b/src/atiio.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.14 2003/01/01 19:16:32 tsi Exp $ */
/*
- * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiload.c b/src/atiload.c
index 7c901f6..83165bc 100644
--- a/src/atiload.c
+++ b/src/atiload.c
@@ -144,6 +144,19 @@ const char *ATIshadowfbSymbols[] =
NULL
};
+#ifdef USE_EXA
+const char *ATIexaSymbols[] =
+{
+ "exaDriverAlloc",
+ "exaDriverInit",
+ "exaDriverFini",
+ "exaOffscreenAlloc",
+ "exaOffscreenFree",
+ NULL
+};
+#endif
+
+#ifdef USE_XAA
const char *ATIxaaSymbols[] =
{
"XAACreateInfoRec",
@@ -151,6 +164,7 @@ const char *ATIxaaSymbols[] =
"XAAInit",
NULL
};
+#endif
const char *ATIramdacSymbols[] =
{
@@ -205,21 +219,13 @@ ATILoadModules
ATIPtr pATI
)
{
+ pointer fbPtr = NULL;
+
/* Load shadow frame buffer code if needed */
if (pATI->OptionShadowFB &&
!ATILoadModule(pScreenInfo, "shadowfb", ATIshadowfbSymbols))
return NULL;
- /* Load XAA if needed */
- if (pATI->OptionAccel &&
- !ATILoadModule(pScreenInfo, "xaa", ATIxaaSymbols))
- return NULL;
-
- /* Load ramdac module if needed */
- if ((pATI->Cursor > ATI_CURSOR_SOFTWARE) &&
- !ATILoadModule(pScreenInfo, "ramdac", ATIramdacSymbols))
- return NULL;
-
/* Load depth-specific entry points */
switch (pATI->bitsPerPixel)
{
@@ -227,10 +233,12 @@ ATILoadModules
#ifndef AVOID_CPIO
case 1:
- return ATILoadModule(pScreenInfo, "xf1bpp", ATIxf1bppSymbols);
+ fbPtr = ATILoadModule(pScreenInfo, "xf1bpp", ATIxf1bppSymbols);
+ break;
case 4:
- return ATILoadModule(pScreenInfo, "xf4bpp", ATIxf4bppSymbols);
+ fbPtr = ATILoadModule(pScreenInfo, "xf4bpp", ATIxf4bppSymbols);
+ break;
#endif /* AVOID_CPIO */
@@ -238,11 +246,48 @@ ATILoadModules
case 16:
case 24:
case 32:
- return ATILoadModule(pScreenInfo, "fb", ATIfbSymbols);
+ fbPtr = ATILoadModule(pScreenInfo, "fb", ATIfbSymbols);
+ break;
default:
return NULL;
}
+ if (!fbPtr)
+ return NULL;
+
+ /* Load ramdac module if needed */
+ if ((pATI->Cursor > ATI_CURSOR_SOFTWARE) &&
+ !ATILoadModule(pScreenInfo, "ramdac", ATIramdacSymbols))
+ return NULL;
+
+#ifdef USE_EXA
+ /* Load EXA if needed */
+ if (pATI->useEXA && pATI->OptionAccel)
+ {
+ /* Cannot use ATILoadModule(), because of version checking */
+ XF86ModReqInfo req;
+ int errmaj, errmin;
+
+ memset(&req, 0, sizeof(XF86ModReqInfo));
+ req.majorversion = 2;
+ req.minorversion = 0;
+ if (!LoadSubModule(pScreenInfo->module, "exa", NULL, NULL, NULL, &req,
+ &errmaj, &errmin))
+ {
+ LoaderErrorMsg(NULL, "exa", errmaj, errmin);
+ return NULL;
+ }
+ xf86LoaderReqSymLists(ATIexaSymbols, NULL);
+ }
+#endif
+#ifdef USE_XAA
+ /* Load XAA if needed */
+ if (!pATI->useEXA && pATI->OptionAccel &&
+ !ATILoadModule(pScreenInfo, "xaa", ATIxaaSymbols))
+ return NULL;
+#endif
+
+ return fbPtr;
}
#endif /* XFree86LOADER */
diff --git a/src/atiload.h b/src/atiload.h
index 96606e3..49f2bf2 100644
--- a/src/atiload.h
+++ b/src/atiload.h
@@ -47,7 +47,20 @@ extern const char *ATIint10Symbols[], *ATIddcSymbols[], *ATIvbeSymbols[],
#endif /* XF86DRI_DEVEL */
- *ATIfbSymbols[], *ATIshadowfbSymbols[], *ATIxaaSymbols[],
+ *ATIfbSymbols[], *ATIshadowfbSymbols[],
+
+#ifdef USE_EXA
+
+ *ATIexaSymbols[],
+
+#endif /* USE_EXA */
+
+#ifdef USE_XAA
+
+ *ATIxaaSymbols[],
+
+#endif /* USE_XAA */
+
*ATIramdacSymbols[], *ATIi2cSymbols[];
extern pointer ATILoadModule(ScrnInfoPtr, const char *, const char **);
diff --git a/src/atimach64.c b/src/atimach64.c
index 95a9c07..ba2ac8e 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -53,6 +53,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atibus.h"
#include "atichip.h"
@@ -82,7 +84,6 @@ ATIMach64PreInit
)
{
CARD32 bus_cntl, config_cntl;
- int tmp;
#ifndef AVOID_CPIO
@@ -181,6 +182,7 @@ ATIMach64PreInit
if (pATI->Chip >= ATI_CHIP_264VTB)
{
+ pATIHW->mem_buf_cntl = inr(MEM_BUF_CNTL) | INVALIDATE_RB_CACHE;
pATIHW->mem_cntl = (pATI->LockData.mem_cntl &
~(CTL_MEM_LOWER_APER_ENDIAN | CTL_MEM_UPPER_APER_ENDIAN)) |
SetBits(CTL_MEM_APER_BYTE_ENDIAN, CTL_MEM_LOWER_APER_ENDIAN);
@@ -255,12 +257,29 @@ ATIMach64PreInit
pATIHW->src_cntl = SRC_LINE_X_DIR;
/* Initialise scissor, allowing for offscreen areas */
- pATIHW->sc_right = (pATI->displayWidth * pATI->XModifier) - 1;
- tmp = pATI->displayWidth * pATI->bitsPerPixel;
- tmp = (((pScreenInfo->videoRam * (1024 * 8)) + tmp - 1) / tmp) - 1;
- if (tmp > ATIMach64MaxY)
- tmp = ATIMach64MaxY;
- pATIHW->sc_bottom = tmp;
+#ifdef USE_XAA
+ if (!pATI->useEXA)
+ {
+ int width, height, total;
+
+ pATIHW->sc_right = (pATI->displayWidth * pATI->XModifier) - 1;
+ width = pATI->displayWidth * pATI->bitsPerPixel;
+ total = pScreenInfo->videoRam * (1024 * 8);
+ height = (total + width - 1) / width;
+ if (height > ATIMach64MaxY + 1)
+ height = ATIMach64MaxY + 1;
+ pATIHW->sc_bottom = height - 1;
+ }
+#endif /* USE_XAA */
+
+#ifdef USE_EXA
+ if (pATI->useEXA)
+ {
+ pATIHW->sc_right = ATIMach64MaxX;
+ pATIHW->sc_bottom = ATIMach64MaxY;
+ }
+#endif /* USE_EXA */
+
pATI->sc_left_right = SetWord(pATI->NewHW.sc_right, 1) |
SetWord(pATI->NewHW.sc_left, 0);
pATI->sc_top_bottom = SetWord(pATI->NewHW.sc_bottom, 1) |
@@ -422,6 +441,7 @@ ATIMach64Save
if (pATI->Chip >= ATI_CHIP_264VTB)
{
+ pATIHW->mem_buf_cntl = inr(MEM_BUF_CNTL) | INVALIDATE_RB_CACHE;
pATIHW->mem_cntl = inr(MEM_CNTL);
pATIHW->mpp_config = inr(MPP_CONFIG);
pATIHW->mpp_strobe_seq = inr(MPP_STROBE_SEQ);
@@ -463,6 +483,15 @@ ATIMach64Save
pATIHW->src_height2 = inm(SRC_HEIGHT2);
pATIHW->src_cntl = inm(SRC_CNTL);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ CARD32 offset = TEX_LEVEL(inm(TEX_SIZE_PITCH));
+
+ /* Save 3D control & texture registers */
+ pATIHW->tex_offset = inm(TEX_0_OFF + offset);
+ pATIHW->scale_3d_cntl = inm(SCALE_3D_CNTL);
+ }
+
/* Save host data register */
pATIHW->host_cntl = inm(HOST_CNTL);
@@ -494,6 +523,13 @@ ATIMach64Save
/* Save context */
pATIHW->context_mask = inm(CONTEXT_MASK);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ /* Save texture setup registers */
+ pATIHW->tex_size_pitch = inm(TEX_SIZE_PITCH);
+ pATIHW->tex_cntl = inm(TEX_CNTL);
+ }
+
if (pATI->Block1Base)
{
/* Save overlay & scaler registers */
@@ -833,6 +869,14 @@ ATIMach64Set
outf(DST_BRES_DEC, pATIHW->dst_bres_dec);
outf(DST_CNTL, pATIHW->dst_cntl);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ /* Load ROP unit registers */
+ ATIMach64WaitForFIFO(pATI, 2);
+ outf(Z_CNTL, 0);
+ outf(ALPHA_TST_CNTL, 0);
+ }
+
/* Load source registers */
ATIMach64WaitForFIFO(pATI, 6);
outf(SRC_OFF_PITCH, pATIHW->src_off_pitch);
@@ -845,14 +889,22 @@ ATIMach64Set
SetWord(pATIHW->src_width2, 1) | SetWord(pATIHW->src_height2, 0));
outf(SRC_CNTL, pATIHW->src_cntl);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ CARD32 offset = TEX_LEVEL(pATIHW->tex_size_pitch);
+
+ /* Load 3D control & texture registers */
+ ATIMach64WaitForFIFO(pATI, 2);
+ outf(TEX_0_OFF + offset, pATIHW->tex_offset);
+ outf(SCALE_3D_CNTL, pATIHW->scale_3d_cntl);
+ }
+
/* Load host data register */
ATIMach64WaitForFIFO(pATI, 1);
outf(HOST_CNTL, pATIHW->host_cntl);
/* Set host transfer window address and size clamp */
- pATI->pHOST_DATA =
- (CARD8 *)pATI->pBlock[GetBits(HOST_DATA_0, BLOCK_SELECT)] +
- (HOST_DATA_0 & MM_IO_SELECT);
+ pATI->pHOST_DATA = ATIHostDataAddr(HOST_DATA_0);
pATI->nHostFIFOEntries = pATI->nFIFOEntries >> 1;
if (pATI->nHostFIFOEntries > 16)
pATI->nHostFIFOEntries = 16;
@@ -894,6 +946,14 @@ ATIMach64Set
ATIMach64WaitForFIFO(pATI, 1);
outf(CONTEXT_MASK, pATIHW->context_mask);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ /* Load texture setup registers */
+ ATIMach64WaitForFIFO(pATI, 2);
+ outf(TEX_SIZE_PITCH, pATIHW->tex_size_pitch);
+ outf(TEX_CNTL, pATIHW->tex_cntl);
+ }
+
if (pATI->Block1Base)
{
/* Load overlay & scaler registers */
@@ -964,6 +1024,11 @@ ATIMach64Set
CacheRegister(SRC_CNTL);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ CacheRegister(SCALE_3D_CNTL);
+ }
+
CacheRegister(HOST_CNTL);
CacheRegister(PAT_REG0);
@@ -975,13 +1040,18 @@ ATIMach64Set
CacheRegister(DP_BKGD_CLR);
CacheRegister(DP_FRGD_CLR);
- CacheRegister(DP_WRITE_MASK);
+ CacheRegister(DP_PIX_WIDTH);
CacheRegister(DP_MIX);
CacheRegister(CLR_CMP_CLR);
CacheRegister(CLR_CMP_MSK);
CacheRegister(CLR_CMP_CNTL);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ CacheRegister(TEX_SIZE_PITCH);
+ }
+
if (pATI->Block1Base)
{
CacheRegister(OVERLAY_Y_X_START);
@@ -1055,6 +1125,7 @@ ATIMach64Set
if (pATI->Chip >= ATI_CHIP_264VTB)
{
+ outr(MEM_BUF_CNTL, pATIHW->mem_buf_cntl);
outr(MEM_CNTL, pATIHW->mem_cntl);
outr(MPP_CONFIG, pATIHW->mpp_config);
outr(MPP_STROBE_SEQ, pATIHW->mpp_strobe_seq);
diff --git a/src/atimach64accel.c b/src/atimach64accel.c
index 1ecb13b..442dcf7 100644
--- a/src/atimach64accel.c
+++ b/src/atimach64accel.c
@@ -79,7 +79,7 @@
/*
* X-to-Mach64 mix translation table.
*/
-static CARD8 ATIMach64ALU[16] =
+CARD8 ATIMach64ALU[16] =
{
MIX_0, /* GXclear */
MIX_AND, /* GXand */
@@ -105,7 +105,7 @@ static CARD8 ATIMach64ALU[16] =
* This function ensures the current scissor settings do not interfere with
* the current draw request.
*/
-static void
+void
ATIMach64ValidateClip
(
ATIPtr pATI,
@@ -130,6 +130,9 @@ ATIMach64ValidateClip
}
}
+static __inline__ void TestRegisterCachingDP(ScrnInfoPtr pScreenInfo);
+static __inline__ void TestRegisterCachingXV(ScrnInfoPtr pScreenInfo);
+
/*
* ATIMach64Sync --
*
@@ -148,19 +151,22 @@ ATIMach64Sync
if ( pATI->directRenderingEnabled && pATI->NeedDRISync )
{
ATIHWPtr pATIHW = &pATI->NewHW;
+ CARD32 offset;
if (pATI->OptionMMIOCache) {
/* "Invalidate" the MMIO cache so the cache slots get updated */
UncacheRegister(SRC_CNTL);
+ UncacheRegister(SCALE_3D_CNTL);
UncacheRegister(HOST_CNTL);
UncacheRegister(PAT_CNTL);
UncacheRegister(SC_LEFT_RIGHT);
UncacheRegister(SC_TOP_BOTTOM);
UncacheRegister(DP_BKGD_CLR);
UncacheRegister(DP_FRGD_CLR);
- UncacheRegister(DP_WRITE_MASK);
+ UncacheRegister(DP_PIX_WIDTH);
UncacheRegister(DP_MIX);
UncacheRegister(CLR_CMP_CNTL);
+ UncacheRegister(TEX_SIZE_PITCH);
}
ATIDRIWaitForIdle(pATI);
@@ -181,12 +187,19 @@ ATIMach64Sync
outf( DP_MIX, pATIHW->dp_mix );
outf( DP_FRGD_CLR, pATIHW->dp_frgd_clr );
outf( DP_WRITE_MASK, pATIHW->dp_write_mask );
-
outf( DP_PIX_WIDTH, pATIHW->dp_pix_width );
+
outf( CLR_CMP_CNTL, pATIHW->clr_cmp_cntl );
+
+ offset = TEX_LEVEL(pATIHW->tex_size_pitch);
+
+ ATIMach64WaitForFIFO(pATI, 6);
outf( ALPHA_TST_CNTL, 0 );
outf( Z_CNTL, 0 );
- outf( SCALE_3D_CNTL, 0 );
+ outf( SCALE_3D_CNTL, pATIHW->scale_3d_cntl );
+ outf( TEX_0_OFF + offset, pATIHW->tex_offset );
+ outf( TEX_SIZE_PITCH, pATIHW->tex_size_pitch );
+ outf( TEX_CNTL, pATIHW->tex_cntl );
ATIMach64WaitForFIFO(pATI, 2);
outf( SC_LEFT_RIGHT,
@@ -197,15 +210,17 @@ ATIMach64Sync
if (pATI->OptionMMIOCache) {
/* Now that the cache slots reflect the register state, re-enable MMIO cache */
CacheRegister(SRC_CNTL);
+ CacheRegister(SCALE_3D_CNTL);
CacheRegister(HOST_CNTL);
CacheRegister(PAT_CNTL);
CacheRegister(SC_LEFT_RIGHT);
CacheRegister(SC_TOP_BOTTOM);
CacheRegister(DP_BKGD_CLR);
CacheRegister(DP_FRGD_CLR);
- CacheRegister(DP_WRITE_MASK);
+ CacheRegister(DP_PIX_WIDTH);
CacheRegister(DP_MIX);
CacheRegister(CLR_CMP_CNTL);
+ CacheRegister(TEX_SIZE_PITCH);
}
ATIMach64WaitForIdle(pATI);
@@ -219,58 +234,7 @@ ATIMach64Sync
TestRegisterCaching(CLR_CMP_CLR);
TestRegisterCaching(CLR_CMP_MSK);
- if (pATI->Block1Base)
- {
- TestRegisterCaching(OVERLAY_Y_X_START);
- TestRegisterCaching(OVERLAY_Y_X_END);
-
- TestRegisterCaching(OVERLAY_GRAPHICS_KEY_CLR);
- TestRegisterCaching(OVERLAY_GRAPHICS_KEY_MSK);
-
- TestRegisterCaching(OVERLAY_KEY_CNTL);
-
- TestRegisterCaching(OVERLAY_SCALE_INC);
- TestRegisterCaching(OVERLAY_SCALE_CNTL);
-
- TestRegisterCaching(SCALER_HEIGHT_WIDTH);
-
- TestRegisterCaching(SCALER_TEST);
-
- TestRegisterCaching(VIDEO_FORMAT);
-
- if (pATI->Chip < ATI_CHIP_264VTB)
- {
- TestRegisterCaching(BUF0_OFFSET);
- TestRegisterCaching(BUF0_PITCH);
- TestRegisterCaching(BUF1_OFFSET);
- TestRegisterCaching(BUF1_PITCH);
- }
- else
- {
- TestRegisterCaching(SCALER_BUF0_OFFSET);
- TestRegisterCaching(SCALER_BUF1_OFFSET);
- TestRegisterCaching(SCALER_BUF_PITCH);
-
- TestRegisterCaching(OVERLAY_EXCLUSIVE_HORZ);
- TestRegisterCaching(OVERLAY_EXCLUSIVE_VERT);
-
- if (pATI->Chip >= ATI_CHIP_264GTPRO)
- {
- TestRegisterCaching(SCALER_COLOUR_CNTL);
-
- TestRegisterCaching(SCALER_H_COEFF0);
- TestRegisterCaching(SCALER_H_COEFF1);
- TestRegisterCaching(SCALER_H_COEFF2);
- TestRegisterCaching(SCALER_H_COEFF3);
- TestRegisterCaching(SCALER_H_COEFF4);
-
- TestRegisterCaching(SCALER_BUF0_OFFSET_U);
- TestRegisterCaching(SCALER_BUF0_OFFSET_V);
- TestRegisterCaching(SCALER_BUF1_OFFSET_U);
- TestRegisterCaching(SCALER_BUF1_OFFSET_V);
- }
- }
- }
+ TestRegisterCachingXV(pScreenInfo);
}
pATI->NeedDRISync = FALSE;
@@ -287,108 +251,157 @@ ATIMach64Sync
* For debugging purposes, attempt to verify that each cached register
* should actually be cached.
*/
- TestRegisterCaching(SRC_CNTL);
+ TestRegisterCachingDP(pScreenInfo);
- TestRegisterCaching(HOST_CNTL);
+ TestRegisterCachingXV(pScreenInfo);
+ }
+ }
- TestRegisterCaching(PAT_REG0);
- TestRegisterCaching(PAT_REG1);
- TestRegisterCaching(PAT_CNTL);
+#ifdef USE_EXA
+ /* EXA sets pEXA->needsSync to FALSE on its own */
+#endif
- if (RegisterIsCached(SC_LEFT_RIGHT) && /* Special case */
- (CacheSlot(SC_LEFT_RIGHT) !=
- (SetWord(inm(SC_RIGHT), 1) | SetWord(inm(SC_LEFT), 0))))
- {
- UncacheRegister(SC_LEFT_RIGHT);
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "SC_LEFT_RIGHT write cache disabled!\n");
- }
+#ifdef USE_XAA
+ if (pATI->pXAAInfo)
+ pATI->pXAAInfo->NeedToSync = FALSE;
+#endif
- if (RegisterIsCached(SC_TOP_BOTTOM) && /* Special case */
- (CacheSlot(SC_TOP_BOTTOM) !=
- (SetWord(inm(SC_BOTTOM), 1) | SetWord(inm(SC_TOP), 0))))
- {
- UncacheRegister(SC_TOP_BOTTOM);
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "SC_TOP_BOTTOM write cache disabled!\n");
- }
+ if (pATI->Chip >= ATI_CHIP_264VTB)
+ {
+ /*
+ * Flush the read-back cache (by turning on INVALIDATE_RB_CACHE),
+ * otherwise the host might get stale data when reading through the
+ * aperture.
+ */
+ outr(MEM_BUF_CNTL, pATI->NewHW.mem_buf_cntl);
+ }
- TestRegisterCaching(DP_BKGD_CLR);
- TestRegisterCaching(DP_FRGD_CLR);
- TestRegisterCaching(DP_WRITE_MASK);
- TestRegisterCaching(DP_MIX);
+ /*
+ * Note:
+ * Before actually invalidating the read-back cache, the mach64 driver
+ * was using the trick below which is buggy. The code is left here for
+ * reference, DRI uses this trick and needs updating.
+ *
+ * For VTB's and later, the first CPU read of the framebuffer will return
+ * zeroes, so do it here. This appears to be due to some kind of engine
+ * caching of framebuffer data I haven't found any way of disabling, or
+ * otherwise circumventing. Thanks to Mark Vojkovich for the suggestion.
+ *
+ * pATI = *(volatile ATIPtr *)pATI->pMemory;
+ */
+}
- TestRegisterCaching(CLR_CMP_CLR);
- TestRegisterCaching(CLR_CMP_MSK);
- TestRegisterCaching(CLR_CMP_CNTL);
+static __inline__ void
+TestRegisterCachingDP(ScrnInfoPtr pScreenInfo)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
- if (pATI->Block1Base)
- {
- TestRegisterCaching(OVERLAY_Y_X_START);
- TestRegisterCaching(OVERLAY_Y_X_END);
+ TestRegisterCaching(SRC_CNTL);
- TestRegisterCaching(OVERLAY_GRAPHICS_KEY_CLR);
- TestRegisterCaching(OVERLAY_GRAPHICS_KEY_MSK);
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ TestRegisterCaching(SCALE_3D_CNTL);
+ }
- TestRegisterCaching(OVERLAY_KEY_CNTL);
+ TestRegisterCaching(HOST_CNTL);
- TestRegisterCaching(OVERLAY_SCALE_INC);
- TestRegisterCaching(OVERLAY_SCALE_CNTL);
+ TestRegisterCaching(PAT_REG0);
+ TestRegisterCaching(PAT_REG1);
+ TestRegisterCaching(PAT_CNTL);
- TestRegisterCaching(SCALER_HEIGHT_WIDTH);
+ if (RegisterIsCached(SC_LEFT_RIGHT) && /* Special case */
+ (CacheSlot(SC_LEFT_RIGHT) !=
+ (SetWord(inm(SC_RIGHT), 1) | SetWord(inm(SC_LEFT), 0))))
+ {
+ UncacheRegister(SC_LEFT_RIGHT);
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "SC_LEFT_RIGHT write cache disabled!\n");
+ }
- TestRegisterCaching(SCALER_TEST);
+ if (RegisterIsCached(SC_TOP_BOTTOM) && /* Special case */
+ (CacheSlot(SC_TOP_BOTTOM) !=
+ (SetWord(inm(SC_BOTTOM), 1) | SetWord(inm(SC_TOP), 0))))
+ {
+ UncacheRegister(SC_TOP_BOTTOM);
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "SC_TOP_BOTTOM write cache disabled!\n");
+ }
- TestRegisterCaching(VIDEO_FORMAT);
+ TestRegisterCaching(DP_BKGD_CLR);
+ TestRegisterCaching(DP_FRGD_CLR);
+ TestRegisterCaching(DP_PIX_WIDTH);
+ TestRegisterCaching(DP_MIX);
- if (pATI->Chip < ATI_CHIP_264VTB)
- {
- TestRegisterCaching(BUF0_OFFSET);
- TestRegisterCaching(BUF0_PITCH);
- TestRegisterCaching(BUF1_OFFSET);
- TestRegisterCaching(BUF1_PITCH);
- }
- else
- {
- TestRegisterCaching(SCALER_BUF0_OFFSET);
- TestRegisterCaching(SCALER_BUF1_OFFSET);
- TestRegisterCaching(SCALER_BUF_PITCH);
-
- TestRegisterCaching(OVERLAY_EXCLUSIVE_HORZ);
- TestRegisterCaching(OVERLAY_EXCLUSIVE_VERT);
-
- if (pATI->Chip >= ATI_CHIP_264GTPRO)
- {
- TestRegisterCaching(SCALER_COLOUR_CNTL);
-
- TestRegisterCaching(SCALER_H_COEFF0);
- TestRegisterCaching(SCALER_H_COEFF1);
- TestRegisterCaching(SCALER_H_COEFF2);
- TestRegisterCaching(SCALER_H_COEFF3);
- TestRegisterCaching(SCALER_H_COEFF4);
-
- TestRegisterCaching(SCALER_BUF0_OFFSET_U);
- TestRegisterCaching(SCALER_BUF0_OFFSET_V);
- TestRegisterCaching(SCALER_BUF1_OFFSET_U);
- TestRegisterCaching(SCALER_BUF1_OFFSET_V);
- }
- }
- }
- }
+ TestRegisterCaching(CLR_CMP_CLR);
+ TestRegisterCaching(CLR_CMP_MSK);
+ TestRegisterCaching(CLR_CMP_CNTL);
+
+ if (pATI->Chip >= ATI_CHIP_264GTPRO)
+ {
+ TestRegisterCaching(TEX_SIZE_PITCH);
}
+}
- /*
- * For VTB's and later, the first CPU read of the framebuffer will return
- * zeroes, so do it here. This appears to be due to some kind of engine
- * caching of framebuffer data I haven't found any way of disabling, or
- * otherwise circumventing. Thanks to Mark Vojkovich for the suggestion.
- */
- if (pATI->pXAAInfo)
- pATI->pXAAInfo->NeedToSync = FALSE;
+static __inline__ void
+TestRegisterCachingXV(ScrnInfoPtr pScreenInfo)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ if (!pATI->Block1Base)
+ return;
+
+ TestRegisterCaching(OVERLAY_Y_X_START);
+ TestRegisterCaching(OVERLAY_Y_X_END);
- pATI = *(volatile ATIPtr *)pATI->pMemory;
+ TestRegisterCaching(OVERLAY_GRAPHICS_KEY_CLR);
+ TestRegisterCaching(OVERLAY_GRAPHICS_KEY_MSK);
+
+ TestRegisterCaching(OVERLAY_KEY_CNTL);
+
+ TestRegisterCaching(OVERLAY_SCALE_INC);
+ TestRegisterCaching(OVERLAY_SCALE_CNTL);
+
+ TestRegisterCaching(SCALER_HEIGHT_WIDTH);
+
+ TestRegisterCaching(SCALER_TEST);
+
+ TestRegisterCaching(VIDEO_FORMAT);
+
+ if (pATI->Chip < ATI_CHIP_264VTB)
+ {
+ TestRegisterCaching(BUF0_OFFSET);
+ TestRegisterCaching(BUF0_PITCH);
+ TestRegisterCaching(BUF1_OFFSET);
+ TestRegisterCaching(BUF1_PITCH);
+
+ return;
+ }
+
+ TestRegisterCaching(SCALER_BUF0_OFFSET);
+ TestRegisterCaching(SCALER_BUF1_OFFSET);
+ TestRegisterCaching(SCALER_BUF_PITCH);
+
+ TestRegisterCaching(OVERLAY_EXCLUSIVE_HORZ);
+ TestRegisterCaching(OVERLAY_EXCLUSIVE_VERT);
+
+ if (pATI->Chip < ATI_CHIP_264GTPRO)
+ return;
+
+ TestRegisterCaching(SCALER_COLOUR_CNTL);
+
+ TestRegisterCaching(SCALER_H_COEFF0);
+ TestRegisterCaching(SCALER_H_COEFF1);
+ TestRegisterCaching(SCALER_H_COEFF2);
+ TestRegisterCaching(SCALER_H_COEFF3);
+ TestRegisterCaching(SCALER_H_COEFF4);
+
+ TestRegisterCaching(SCALER_BUF0_OFFSET_U);
+ TestRegisterCaching(SCALER_BUF0_OFFSET_V);
+ TestRegisterCaching(SCALER_BUF1_OFFSET_U);
+ TestRegisterCaching(SCALER_BUF1_OFFSET_V);
}
+#ifdef USE_XAA
/*
* ATIMach64SetupForScreenToScreenCopy --
*
@@ -497,6 +510,18 @@ ATIMach64SubsequentScreenToScreenCopy
outf(SRC_WIDTH1, w);
outf(DST_Y_X, SetWord(xDst, 1) | SetWord(yDst, 0));
outf(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));
+
+ /*
+ * On VTB's and later, the engine will randomly not wait for a copy
+ * operation to commit its results to video memory before starting the next
+ * one. The probability of such occurrences increases with GUI_WB_FLUSH
+ * (or GUI_WB_FLUSH_P) setting, bitsPerPixel and/or CRTC clock. This
+ * would point to some kind of video memory bandwidth problem were it noti
+ * for the fact that the problem occurs less often (but still occurs) when
+ * copying larger rectangles.
+ */
+ if ((pATI->Chip >= ATI_CHIP_264VTB) && !pATI->OptionDevel)
+ ATIMach64Sync(pScreenInfo);
}
/*
@@ -1035,3 +1060,4 @@ ATIMach64AccelInit
return ATIMach64MaxY;
}
+#endif /* USE_XAA */
diff --git a/src/atimach64accel.h b/src/atimach64accel.h
index a1b9426..973f2ba 100644
--- a/src/atimach64accel.h
+++ b/src/atimach64accel.h
@@ -27,11 +27,17 @@
#include "atipriv.h"
#include "xaa.h"
+#include "exa.h"
-#define ATIMach64MaxX 8191
-#define ATIMach64MaxY 32767
+#define ATIMach64MaxX 4095
+#define ATIMach64MaxY 16383
+#ifdef USE_EXA
+extern Bool ATIMach64ExaInit(ScreenPtr);
+#endif
+#ifdef USE_XAA
extern int ATIMach64AccelInit(ATIPtr, XAAInfoRecPtr);
+#endif
extern void ATIMach64Sync(ScrnInfoPtr);
#endif /* ___ATIMACH64ACCEL_H___ */
diff --git a/src/atimach64exa.c b/src/atimach64exa.c
new file mode 100644
index 0000000..e2b2540
--- /dev/null
+++ b/src/atimach64exa.c
@@ -0,0 +1,706 @@
+/*
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of Marc Aurele La France not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. Marc Aurele La France makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as-is" without express or implied warranty.
+ *
+ * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+ * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+ * Copyright 1999-2000 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, 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 (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.
+ */
+/*
+ * DRI support by:
+ * Manuel Teira
+ * Leif Delgass <ldelgass@retinalburn.net>
+ *
+ * EXA support by:
+ * Jakub Stachowski <qbast@go2.pl>
+ * George Sapountzis <gsap7@yahoo.gr>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+
+#include "ati.h"
+#include "atichip.h"
+#include "atidri.h"
+#include "atimach64accel.h"
+#include "atimach64io.h"
+#include "atipriv.h"
+#include "atiregs.h"
+
+#ifdef XF86DRI_DEVEL
+#include "mach64_dri.h"
+#include "mach64_sarea.h"
+#endif
+
+#ifdef USE_EXA
+extern CARD8 ATIMach64ALU[];
+
+extern void
+ATIMach64ValidateClip
+(
+ ATIPtr pATI,
+ int sc_left,
+ int sc_right,
+ int sc_top,
+ int sc_bottom
+);
+
+#if 0
+#define MACH64_TRACE(x) \
+do { \
+ ErrorF("Mach64(%s): ", __FUNCTION__); \
+ ErrorF x; \
+} while(0)
+#else
+#define MACH64_TRACE(x) do { } while(0)
+#endif
+
+#if 0
+#define MACH64_FALLBACK(x) \
+do { \
+ ErrorF("Fallback(%s): ", __FUNCTION__); \
+ ErrorF x; \
+ return FALSE; \
+} while (0)
+#else
+#define MACH64_FALLBACK(x) return FALSE
+#endif
+
+static void
+Mach64WaitMarker(ScreenPtr pScreenInfo, int Marker)
+{
+ ATIMach64Sync(xf86Screens[pScreenInfo->myNum]);
+}
+
+static Bool
+Mach64GetDatatypeBpp(PixmapPtr pPix, CARD32 *pix_width)
+{
+ int bpp = pPix->drawable.bitsPerPixel;
+
+ switch (bpp) {
+ case 8:
+ *pix_width =
+ SetBits(PIX_WIDTH_8BPP, DP_DST_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_8BPP, DP_SRC_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_1BPP, DP_HOST_PIX_WIDTH);
+ break;
+ case 16:
+ *pix_width =
+ SetBits(PIX_WIDTH_16BPP, DP_DST_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_16BPP, DP_SRC_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_1BPP, DP_HOST_PIX_WIDTH);
+ break;
+ case 24:
+ *pix_width =
+ SetBits(PIX_WIDTH_8BPP, DP_DST_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_8BPP, DP_SRC_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_1BPP, DP_HOST_PIX_WIDTH);
+ break;
+ case 32:
+ *pix_width =
+ SetBits(PIX_WIDTH_32BPP, DP_DST_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_32BPP, DP_SRC_PIX_WIDTH) |
+ SetBits(PIX_WIDTH_1BPP, DP_HOST_PIX_WIDTH);
+ break;
+ default:
+ MACH64_FALLBACK(("Unsupported bpp: %d\n", bpp));
+ }
+
+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+
+ *pix_width |= DP_BYTE_PIX_ORDER;
+
+#endif /* X_BYTE_ORDER */
+
+ return TRUE;
+}
+
+static Bool
+Mach64GetOffsetPitch(PixmapPtr pPix, int bpp, CARD32 *pitch_offset,
+ unsigned int offset, unsigned int pitch)
+{
+#if 0
+ ScrnInfoPtr pScreenInfo = xf86Screens[pPix->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ if (pitch % pATI->pExa->pixmapPitchAlign != 0)
+ MACH64_FALLBACK(("Bad pitch 0x%08x\n", pitch));
+
+ if (offset % pATI->pExa->pixmapOffsetAlign != 0)
+ MACH64_FALLBACK(("Bad offset 0x%08x\n", offset));
+#endif
+
+ /* pixels / 8 = ((bytes * 8) / bpp) / 8 = bytes / bpp */
+ pitch = pitch / bpp;
+
+ /* bytes / 8 */
+ offset = offset >> 3;
+
+ *pitch_offset = ((pitch << 22) | (offset << 0));
+
+ return TRUE;
+}
+
+static Bool
+Mach64GetPixmapOffsetPitch(PixmapPtr pPix, CARD32 *pitch_offset)
+{
+ CARD32 pitch, offset;
+ int bpp;
+
+ bpp = pPix->drawable.bitsPerPixel;
+ if (bpp == 24)
+ bpp = 8;
+
+ pitch = exaGetPixmapPitch(pPix);
+ offset = exaGetPixmapOffset(pPix);
+
+ return Mach64GetOffsetPitch(pPix, bpp, pitch_offset, offset, pitch);
+}
+
+static Bool
+Mach64PrepareCopy
+(
+ PixmapPtr pSrcPixmap,
+ PixmapPtr pDstPixmap,
+ int xdir,
+ int ydir,
+ int alu,
+ Pixel planemask
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ CARD32 src_pitch_offset, dst_pitch_offset, dp_pix_width;
+
+ ATIDRISync(pScreenInfo);
+
+ if (!Mach64GetDatatypeBpp(pDstPixmap, &dp_pix_width))
+ return FALSE;
+ if (!Mach64GetPixmapOffsetPitch(pSrcPixmap, &src_pitch_offset))
+ return FALSE;
+ if (!Mach64GetPixmapOffsetPitch(pDstPixmap, &dst_pitch_offset))
+ return FALSE;
+
+ ATIMach64WaitForFIFO(pATI, 7);
+ outf(DP_WRITE_MASK, planemask);
+ outf(DP_PIX_WIDTH, dp_pix_width);
+ outf(SRC_OFF_PITCH, src_pitch_offset);
+ outf(DST_OFF_PITCH, dst_pitch_offset);
+
+ outf(DP_SRC, DP_MONO_SRC_ALLONES |
+ SetBits(SRC_BLIT, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
+ outf(DP_MIX, SetBits(ATIMach64ALU[alu], DP_FRGD_MIX));
+
+ outf(CLR_CMP_CNTL, CLR_CMP_FN_FALSE);
+
+ pATI->dst_cntl = 0;
+
+ if (ydir > 0)
+ pATI->dst_cntl |= DST_Y_DIR;
+ if (xdir > 0)
+ pATI->dst_cntl |= DST_X_DIR;
+
+ if (pATI->XModifier == 1)
+ outf(DST_CNTL, pATI->dst_cntl);
+ else
+ pATI->dst_cntl |= DST_24_ROT_EN;
+
+ return TRUE;
+}
+
+static void
+Mach64Copy
+(
+ PixmapPtr pDstPixmap,
+ int srcX,
+ int srcY,
+ int dstX,
+ int dstY,
+ int w,
+ int h
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ srcX *= pATI->XModifier;
+ dstY *= pATI->XModifier;
+ w *= pATI->XModifier;
+
+ ATIDRISync(pScreenInfo);
+
+ /* Disable clipping if it gets in the way */
+ ATIMach64ValidateClip(pATI, dstX, dstX + w - 1, dstY, dstY + h - 1);
+
+ if (!(pATI->dst_cntl & DST_X_DIR))
+ {
+ srcX += w - 1;
+ dstX += w - 1;
+ }
+
+ if (!(pATI->dst_cntl & DST_Y_DIR))
+ {
+ srcY += h - 1;
+ dstY += h - 1;
+ }
+
+ if (pATI->XModifier != 1)
+ outf(DST_CNTL, pATI->dst_cntl | SetBits((dstX / 4) % 6, DST_24_ROT));
+
+ ATIMach64WaitForFIFO(pATI, 4);
+ outf(SRC_Y_X, SetWord(srcX, 1) | SetWord(srcY, 0));
+ outf(SRC_WIDTH1, w);
+ outf(DST_Y_X, SetWord(dstX, 1) | SetWord(dstY, 0));
+ outf(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));
+
+ /*
+ * On VTB's and later, the engine will randomly not wait for a copy
+ * operation to commit its results to video memory before starting the next
+ * one. The probability of such occurrences increases with GUI_WB_FLUSH
+ * (or GUI_WB_FLUSH_P) setting, bitsPerPixel and/or CRTC clock. This
+ * would point to some kind of video memory bandwidth problem were it noti
+ * for the fact that the problem occurs less often (but still occurs) when
+ * copying larger rectangles.
+ */
+ if ((pATI->Chip >= ATI_CHIP_264VTB) && !pATI->OptionDevel)
+ {
+ exaMarkSync(pScreenInfo->pScreen); /* Force sync. */
+ exaWaitSync(pScreenInfo->pScreen); /* Sync and notify EXA. */
+ }
+}
+
+static void Mach64DoneCopy(PixmapPtr pDstPixmap) { }
+
+static Bool
+Mach64PrepareSolid
+(
+ PixmapPtr pPixmap,
+ int alu,
+ Pixel planemask,
+ Pixel fg
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pPixmap->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ CARD32 dst_pitch_offset, dp_pix_width;
+
+ ATIDRISync(pScreenInfo);
+
+ if (!Mach64GetDatatypeBpp(pPixmap, &dp_pix_width))
+ return FALSE;
+ if (!Mach64GetPixmapOffsetPitch(pPixmap, &dst_pitch_offset))
+ return FALSE;
+
+ ATIMach64WaitForFIFO(pATI, 7);
+ outf(DP_WRITE_MASK, planemask);
+ outf(DP_PIX_WIDTH, dp_pix_width);
+ outf(DST_OFF_PITCH, dst_pitch_offset);
+
+ outf(DP_SRC, DP_MONO_SRC_ALLONES |
+ SetBits(SRC_FRGD, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
+ outf(DP_FRGD_CLR, fg);
+ outf(DP_MIX, SetBits(ATIMach64ALU[alu], DP_FRGD_MIX));
+
+ outf(CLR_CMP_CNTL, CLR_CMP_FN_FALSE);
+
+ if (pATI->XModifier == 1)
+ outf(DST_CNTL, DST_X_DIR | DST_Y_DIR);
+
+ return TRUE;
+}
+
+static void
+Mach64Solid
+(
+ PixmapPtr pPixmap,
+ int x1,
+ int y1,
+ int x2,
+ int y2
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pPixmap->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ int x = x1;
+ int y = y1;
+ int w = x2-x1;
+ int h = y2-y1;
+
+ ATIDRISync(pScreenInfo);
+
+ if (pATI->XModifier != 1)
+ {
+ x *= pATI->XModifier;
+ w *= pATI->XModifier;
+
+ outf(DST_CNTL, SetBits((x / 4) % 6, DST_24_ROT) |
+ (DST_X_DIR | DST_Y_DIR | DST_24_ROT_EN));
+ }
+
+ /* Disable clipping if it gets in the way */
+ ATIMach64ValidateClip(pATI, x, x + w - 1, y, y + h - 1);
+
+ ATIMach64WaitForFIFO(pATI, 2);
+ outf(DST_Y_X, SetWord(x, 1) | SetWord(y, 0));
+ outf(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));
+}
+
+static void Mach64DoneSolid(PixmapPtr pPixmap) { }
+
+/*
+ * Memcpy-based UTS.
+ */
+static Bool
+Mach64UploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,
+ char *src, int src_pitch)
+{
+ char *dst = pDst->devPrivate.ptr;
+ int dst_pitch = exaGetPixmapPitch(pDst);
+
+ int bpp = pDst->drawable.bitsPerPixel;
+ int cpp = (bpp + 7) / 8;
+ int wBytes = w * cpp;
+
+ exaWaitSync(pDst->drawable.pScreen);
+
+ dst += (x * cpp) + (y * dst_pitch);
+
+ while (h--) {
+ memcpy(dst, src, wBytes);
+ src += src_pitch;
+ dst += dst_pitch;
+ }
+
+ return TRUE;
+}
+
+/*
+ * Memcpy-based DFS.
+ */
+static Bool
+Mach64DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h,
+ char *dst, int dst_pitch)
+{
+ char *src = pSrc->devPrivate.ptr;
+ int src_pitch = exaGetPixmapPitch(pSrc);
+
+ int bpp = pSrc->drawable.bitsPerPixel;
+ int cpp = (bpp + 7) / 8;
+ int wBytes = w * cpp;
+
+ exaWaitSync(pSrc->drawable.pScreen);
+
+ src += (x * cpp) + (y * src_pitch);
+
+ while (h--) {
+ memcpy(dst, src, wBytes);
+ src += src_pitch;
+ dst += dst_pitch;
+ }
+
+ return TRUE;
+}
+
+#include "atimach64render.c"
+
+/* Compute log base 2 of val. */
+static __inline__ int Mach64Log2(int val)
+{
+ int bits;
+
+ for (bits = 0; val != 0; val >>= 1, ++bits)
+ ;
+ return bits - 1;
+}
+
+/*
+ * Memory layour for EXA with DRI (no local_textures):
+ * | front | back | depth | textures | pixmaps, xv | c |
+ *
+ * 1024x768@16bpp with 8 MB:
+ * | 1.5 MB | 1.5 MB | 1.5 MB | 0 | ~3.5 MB | c |
+ *
+ * 1024x768@32bpp with 8 MB:
+ * | 3.0 MB | 3.0 MB | 1.5 MB | 0 | ~0.5 MB | c |
+ *
+ * "c" is the hw cursor which occupies 1KB
+ */
+static void
+Mach64SetupMemEXA(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ int cpp = (pScreenInfo->bitsPerPixel + 7) / 8;
+ /* front and back buffer */
+ int bufferSize = pScreenInfo->virtualY * pScreenInfo->displayWidth * cpp;
+ /* always 16-bit z-buffer */
+ int depthSize = pScreenInfo->virtualY * pScreenInfo->displayWidth * 2;
+
+ ExaDriverPtr pExa = pATI->pExa;
+
+ pExa->memoryBase = pATI->pMemory;
+ pExa->memorySize = pScreenInfo->videoRam * 1024;
+ pExa->offScreenBase = bufferSize;
+
+#ifdef XF86DRI_DEVEL
+ if (pATI->directRenderingEnabled)
+ {
+ ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
+ Bool is_pci = pATIDRIServer->IsPCI;
+
+ int textureSize = 0;
+ int pixmapCache = 0;
+ int next = 0;
+
+ /* front buffer */
+ pATIDRIServer->frontOffset = 0;
+ pATIDRIServer->frontPitch = pScreenInfo->displayWidth;
+ next += bufferSize;
+
+ /* back buffer */
+ pATIDRIServer->backOffset = next;
+ pATIDRIServer->backPitch = pScreenInfo->displayWidth;
+ next += bufferSize;
+
+ /* depth buffer */
+ pATIDRIServer->depthOffset = next;
+ pATIDRIServer->depthPitch = pScreenInfo->displayWidth;
+ next += depthSize;
+
+ /* ATIScreenInit does check for the this condition. */
+ if (next > pExa->memorySize)
+ {
+ xf86DrvMsg(pScreen->myNum, X_WARNING,
+ "DRI static buffer allocation failed, disabling DRI --"
+ "need at least %d kB video memory\n", next / 1024 );
+ ATIDRICloseScreen(pScreen);
+ pATI->directRenderingEnabled = FALSE;
+ }
+
+ /* local textures */
+
+ /* Reserve approx. half of offscreen memory for local textures */
+ textureSize = (pExa->memorySize - next) / 2;
+
+ /* In case DRI requires more offscreen memory than available,
+ * should not happen as ATIScreenInit would have not enabled DRI */
+ if (textureSize < 0)
+ textureSize = 0;
+
+ /* Try for enough pixmap cache for a full viewport */
+ pixmapCache = (pExa->memorySize - next) - textureSize;
+ if (pixmapCache < bufferSize)
+ textureSize = 0;
+
+ /* Don't allocate a local texture heap for AGP unless requested */
+ if ( !is_pci && !pATI->OptionLocalTextures )
+ textureSize = 0;
+
+ if (textureSize > 0)
+ {
+ int l = Mach64Log2(textureSize / MACH64_NR_TEX_REGIONS);
+ if (l < MACH64_LOG_TEX_GRANULARITY)
+ l = MACH64_LOG_TEX_GRANULARITY;
+ pATIDRIServer->logTextureGranularity = l;
+
+ /* Round the texture size down to the nearest whole number of
+ * texture regions.
+ */
+ textureSize = (textureSize >> l) << l;
+ }
+
+ /* Set a minimum usable local texture heap size. This will fit
+ * two 256x256 textures. We check this after any rounding of
+ * the texture area.
+ */
+ if (textureSize < 256*256 * cpp * 2)
+ textureSize = 0;
+
+ /* Disable DRI for PCI if cannot allocate a local texture heap */
+ if ( is_pci && textureSize == 0 )
+ {
+ xf86DrvMsg(pScreen->myNum, X_WARNING,
+ "Not enough memory for local textures, disabling DRI\n");
+ ATIDRICloseScreen(pScreen);
+ pATI->directRenderingEnabled = FALSE;
+ }
+
+ pATIDRIServer->textureOffset = next;
+ pATIDRIServer->textureSize = textureSize;
+ next += textureSize;
+
+ if (pATI->directRenderingEnabled)
+ pExa->offScreenBase = next;
+ }
+#endif /* XF86DRI_DEVEL */
+
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "EXA memory management initialized\n"
+ "\t base : %10p\n"
+ "\t offscreen: +%10lx\n"
+ "\t size : +%10lx\n"
+ "\t cursor : %10p\n",
+ pExa->memoryBase,
+ pExa->offScreenBase,
+ pExa->memorySize,
+ pATI->pCursorImage);
+
+ if (TRUE || xf86GetVerbosity() > 1)
+ {
+ int offscreen = pExa->memorySize - pExa->offScreenBase;
+ int viewport = bufferSize;
+ int dvdframe = 720*480*cpp; /* enough for single-buffered DVD */
+
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "Will use %d kB of offscreen memory for EXA\n"
+ "\t\t or %5.2f viewports (composite)\n"
+ "\t\t or %5.2f dvdframes (xvideo)\n",
+ offscreen / 1024,
+ 1.0 * offscreen / viewport,
+ 1.0 * offscreen / dvdframe);
+ }
+
+#ifdef XF86DRI_DEVEL
+ if (pATI->directRenderingEnabled)
+ {
+ ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
+
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "Will use back buffer at offset 0x%x\n",
+ pATIDRIServer->backOffset);
+
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "Will use depth buffer at offset 0x%x\n",
+ pATIDRIServer->depthOffset);
+
+ if (pATIDRIServer->textureSize > 0)
+ {
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "Will use %d kB for local textures at offset 0x%x\n",
+ pATIDRIServer->textureSize/1024,
+ pATIDRIServer->textureOffset);
+ }
+ }
+#endif /* XF86DRI_DEVEL */
+
+ pExa->pixmapOffsetAlign = 64;
+ pExa->pixmapPitchAlign = 64;
+
+ pExa->flags = EXA_OFFSCREEN_PIXMAPS;
+
+ pExa->maxX = ATIMach64MaxX;
+ pExa->maxY = ATIMach64MaxY;
+}
+
+Bool ATIMach64ExaInit(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ ExaDriverPtr pExa;
+
+ /* FIXME: which chips support EXA ? */
+ if (pATI->Chip < ATI_CHIP_264CT)
+ {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
+ "EXA is not supported for ATI chips earlier than "
+ "the ATI Mach64.\n");
+ return FALSE;
+ }
+
+ pExa = exaDriverAlloc();
+ if (!pExa)
+ return FALSE;
+
+ pATI->pExa = pExa;
+
+ pExa->exa_major = 2;
+ pExa->exa_minor = 0;
+
+ Mach64SetupMemEXA(pScreen);
+
+ pExa->WaitMarker = Mach64WaitMarker;
+
+ pExa->PrepareSolid = Mach64PrepareSolid;
+ pExa->Solid = Mach64Solid;
+ pExa->DoneSolid = Mach64DoneSolid;
+
+ pExa->PrepareCopy = Mach64PrepareCopy;
+ pExa->Copy = Mach64Copy;
+ pExa->DoneCopy = Mach64DoneCopy;
+
+ /* EXA hits more optimized paths when it does not have to fallback because
+ * of missing UTS/DFS, hook memcpy-based UTS/DFS.
+ */
+ pExa->UploadToScreen = Mach64UploadToScreen;
+ pExa->DownloadFromScreen = Mach64DownloadFromScreen;
+
+ if (pATI->RenderAccelEnabled) {
+ if (pATI->Chip >= ATI_CHIP_264GTPRO) {
+ /* 3D Rage Pro does not support NPOT textures. */
+ pExa->flags |= EXA_OFFSCREEN_ALIGN_POT;
+
+ pExa->CheckComposite = Mach64CheckComposite;
+ pExa->PrepareComposite = Mach64PrepareComposite;
+ pExa->Composite = Mach64Composite;
+ pExa->DoneComposite = Mach64DoneComposite;
+ } else {
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "Render acceleration is not supported for ATI chips "
+ "earlier than the ATI 3D Rage Pro.\n");
+ pATI->RenderAccelEnabled = FALSE;
+ }
+ }
+
+ xf86DrvMsg(pScreen->myNum, X_INFO, "Render acceleration %s\n",
+ pATI->RenderAccelEnabled ? "enabled" : "disabled");
+
+ if (!exaDriverInit(pScreen, pATI->pExa)) {
+ xfree(pATI->pExa);
+ pATI->pExa = NULL;
+ return FALSE;
+ }
+
+ return TRUE;
+}
+#endif
diff --git a/src/atimach64io.h b/src/atimach64io.h
index 9dbf244..e2d3c7c 100644
--- a/src/atimach64io.h
+++ b/src/atimach64io.h
@@ -206,6 +206,10 @@ extern void ATIMach64PollEngineStatus(ATIPtr);
#ifdef XF86DRI_DEVEL
+/*
+ * DRI Sync and Lock definitions.
+ */
+
#define ATIDRIWaitForIdle(_pATI) \
do { \
ATIDRIServerInfoPtr pATIDRIServer = _pATI->pDRIServerInfo; \
@@ -226,6 +230,53 @@ do { \
} \
} while (0)
+/*
+ * Set upon DRISwapContext and when DRI accesses the GPU engine
+ * from within the server, see DRIInitBuffers/DRIMoveBuffers.
+ *
+ * Forces the EXA/XAA software paths to sync before accessing the FB memory.
+ */
+static __inline__ void ATIDRIMarkSyncInt(ScrnInfoPtr _pScrInfo)
+{
+ ATIPtr _pATI=ATIPTR(_pScrInfo);
+#ifdef USE_EXA
+ if (_pATI->useEXA)
+ exaMarkSync(_pScrInfo->pScreen);
+#endif
+#ifdef USE_XAA
+ if (!_pATI->useEXA)
+ SET_SYNC_FLAG(_pATI->pXAAInfo); /* NeedToSync = TRUE */
+#endif
+}
+
+/*
+ * Set upon DRISwapContext and when the server acquires the DRI lock.
+ *
+ * Forces the EXA/XAA accelerated paths to sync before accessing the GPU engine.
+ */
+static __inline__ void ATIDRIMarkSyncExt(ScrnInfoPtr _pScrInfo)
+{
+ ATIPtr _pATI=ATIPTR(_pScrInfo);
+ _pATI->NeedDRISync = TRUE;
+}
+
+static __inline__ void ATIDRISync(ScrnInfoPtr _pScrInfo)
+{
+ ATIPtr _pATI=ATIPTR(_pScrInfo);
+#ifdef USE_EXA
+ if (_pATI->directRenderingEnabled && _pATI->pExa)
+ {
+ if (_pATI->NeedDRISync) exaWaitSync(_pScrInfo->pScreen);
+ }
+#endif
+#ifdef USE_XAA
+ if (_pATI->directRenderingEnabled && _pATI->pXAAInfo)
+ {
+ if (_pATI->NeedDRISync) (*_pATI->pXAAInfo->Sync)(_pScrInfo);
+ }
+#endif
+}
+
#define ATIDRILock(_pScrInfo) \
do \
{ \
@@ -233,7 +284,7 @@ do \
if (_pATI->directRenderingEnabled) \
{ \
DRILock(_pScrInfo->pScreen, 0); \
- pATI->NeedDRISync = TRUE; \
+ ATIDRIMarkSyncExt(_pScrInfo); \
} \
} while (0)
@@ -247,16 +298,6 @@ do \
} \
} while (0)
-#define ATIDRISync(_pScrInfo) \
-do \
-{ \
- ATIPtr _pATI=ATIPTR(_pScrInfo); \
- if (_pATI->directRenderingEnabled && _pATI->pXAAInfo) \
- { \
- if (_pATI->NeedDRISync) (*_pATI->pXAAInfo->Sync)(_pScrInfo); \
- } \
-} while (0)
-
#else /* XF86DRI_DEVEL */
@@ -368,4 +409,11 @@ extern void ATIMach64AccessPLLReg(ATIPtr, const CARD8, const Bool);
#endif
+/*
+ * Return the MMIO address of register, used for HOST_DATA_X only.
+ */
+#define ATIHostDataAddr(_Register) \
+ ((CARD8 *)pATI->pBlock[GetBits(_Register, BLOCK_SELECT)] + \
+ ((_Register) & MM_IO_SELECT))
+
#endif /* ___ATIMACH64IO_H___ */
diff --git a/src/atimach64render.c b/src/atimach64render.c
new file mode 100644
index 0000000..8a6ebbc
--- /dev/null
+++ b/src/atimach64render.c
@@ -0,0 +1,891 @@
+/*
+ * Copyright 2006 George Sapountzis
+ * All Rights Reserved.
+ *
+ * Based on the mach64 DRI and DRM drivers:
+ * Copyright 2000 Gareth Hughes
+ * Copyright 2002-2003 Leif Delgass
+ * All Rights Reserved.
+ *
+ * Based on the ati hw/kdrive driver:
+ * Copyright 2003 Eric Anholt, Anders Carlsson
+ *
+ * Based on the via hw/xfree86 driver:
+ * Copyright 2006 Thomas Hellstrom. 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 (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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS 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:
+ * George Sapountzis <gsap7@yahoo.gr>
+ */
+
+/*
+ * Interesting cases for RENDER acceleration:
+ *
+ * cursor : ARGB8888 (24x24) Over
+ * RGB565
+ *
+ * glyph : A8 (9x10) Add
+ * A8 (420x13)
+ * glyph set : ARGB8888 (1x1 R) In
+ * A8 (420x13) Over
+ * RGB565
+ *
+ * shadow : ARGB8888 (1x1 R) In
+ * A8 (670x362) Over
+ * RGB565
+ * translucent : RGB565 (652x344) In
+ * A8 (1x1 R) Over
+ * RGB565
+ *
+ * In all interesting cases one of src/mask is "1x1 R".
+ */
+
+/*
+ * Assumptions and limitations of mach64 RENDER acceleration:
+ *
+ * RENDER acceleration is supported for GTPRO and later chips using the 3D
+ * triangle setup, i.e. the VERTEX_? registers (see the dri driver). According
+ * to atiregs.h, SCALE_3D_CNTL and TEX_?_OFF appear in GT, thus chips as old
+ * as GT should be capable of RENDER acceleration, using the S_?_INC, T_?_INC
+ * registers for texture mapping (see the directfb driver).
+ *
+ * GTPRO added a triangle setup engine and multitexturing. However, it seems
+ * that none of the 8bpp mach64 formats expands the 8bit value to the alpha
+ * channel in texture mapping, RGB8 appears to expand to (I,I,I,0). This makes
+ * GTPRO multitexturing unsuitable for emulating the IN operation. Moreover,
+ * it seems that GT/GTPRO has a muxltiplexer instead of a blender for computing
+ * the final alpha channel which forbids destinations with an alpha channel and
+ * generic two-pass compositing.
+ *
+ * A texture unit combines the fragment color (VERTEX_?_ARGB) coming in from
+ * triangle rasterization with the texel from the texture according to the
+ * texture environment (TEX_LIGHT_FCN_). "1x1 R" textures may come in as frag-
+ * ment colors, eliminating the need for multitexturing in all interesting
+ * cases (via also uses this optimization).
+ *
+ * Texture registers are saved/restored and cached (see atimach64.c). TEX_CNTL
+ * cannot be cached because it flushes the texture cache. TEX_?_OFF are also
+ * not cached because I am not sure whether writing at some offset register
+ * affects the value at another offset.
+ *
+ * Vertex registers are not saved/restored. This shouldn't be a problem though
+ * either for DRI or VT switch because vertex registers are set and used within
+ * a signle acceleration hook. Synchronization between the DDX and DRI is based
+ * on calling ATIDRISync() at the beginning of each DDX acceleration hook,
+ * which suggests the assumption that individual acceleration hooks are not
+ * interrupted.
+ */
+
+#include <string.h>
+#include <stdio.h>
+
+/*
+ * Helper functions copied from exa and via.
+ */
+
+#if 0
+static void
+Mach64ExaCompositePictDesc(PicturePtr pict, char *string, int n)
+{
+ char format[20];
+ char size[20];
+
+ if (!pict) {
+ snprintf(string, n, "None");
+ return;
+ }
+
+ switch (pict->format) {
+ case PICT_x8r8g8b8:
+ snprintf(format, 20, "RGB8888 ");
+ break;
+ case PICT_x8b8g8r8:
+ snprintf(format, 20, "BGR8888 ");
+ break;
+ case PICT_a8r8g8b8:
+ snprintf(format, 20, "ARGB8888");
+ break;
+ case PICT_a8b8g8r8:
+ snprintf(format, 20, "ABGR8888");
+ break;
+ case PICT_r5g6b5:
+ snprintf(format, 20, "RGB565 ");
+ break;
+ case PICT_x1r5g5b5:
+ snprintf(format, 20, "RGB555 ");
+ break;
+ case PICT_a8:
+ snprintf(format, 20, "A8 ");
+ break;
+ case PICT_a1:
+ snprintf(format, 20, "A1 ");
+ break;
+ default:
+ snprintf(format, 20, "0x%x", (int)pict->format);
+ break;
+ }
+
+ snprintf(size, 20, "%dx%d%s%s",
+ pict->pDrawable->width,
+ pict->pDrawable->height,
+ pict->repeat ? " R" : "",
+ pict->componentAlpha ? " C" : ""
+ );
+
+ snprintf(string, n, "%-10p: fmt %s (%s)", (void *)pict->pDrawable, format, size);
+}
+
+static void
+Mach64ExaPrintComposite(CARD8 op,
+ PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, char *string)
+{
+ char sop[20];
+ char srcdesc[40], maskdesc[40], dstdesc[40];
+
+ switch (op) {
+ case PictOpSrc:
+ sprintf(sop, "Src");
+ break;
+ case PictOpOver:
+ sprintf(sop, "Over");
+ break;
+ case PictOpInReverse:
+ sprintf(sop, "InR");
+ break;
+ case PictOpOutReverse:
+ sprintf(sop, "OutR");
+ break;
+ case PictOpAdd:
+ sprintf(sop, "Add");
+ break;
+ default:
+ sprintf(sop, "0x%x", (int)op);
+ break;
+ }
+
+ Mach64ExaCompositePictDesc(pSrc, srcdesc, 40);
+ Mach64ExaCompositePictDesc(pMask, maskdesc, 40);
+ Mach64ExaCompositePictDesc(pDst, dstdesc, 40);
+
+ sprintf(string, "op %s, \n"
+ " src %s\n"
+ " mask %s\n"
+ " dst %s\n", sop, srcdesc, maskdesc, dstdesc);
+}
+#endif
+
+static __inline__ CARD32
+viaBitExpandHelper(CARD32 component, CARD32 bits)
+{
+ CARD32 tmp, mask;
+
+ mask = (1 << (8 - bits)) - 1;
+ tmp = component << (8 - bits);
+ return ((component & 1) ? tmp | mask : tmp);
+}
+
+static __inline__ void
+Mach64PixelARGB(PixmapPtr pPixmap, CARD32 format, CARD32 *argb)
+{
+ CARD32 pixel;
+ CARD8 comp;
+ int bits, shift;
+
+ /* Ensure that texture drawing has completed. */
+ exaWaitSync(pPixmap->drawable.pScreen);
+
+ /* exaGetPixmapFirstPixel() */
+
+ switch (pPixmap->drawable.bitsPerPixel) {
+ case 32:
+ pixel = *(CARD32 *)(pPixmap->devPrivate.ptr);
+ break;
+ case 16:
+ pixel = *(CARD16 *)(pPixmap->devPrivate.ptr);
+ break;
+ default:
+ pixel = *(CARD8 *)(pPixmap->devPrivate.ptr);
+ break;
+ }
+
+ /* exaGetRGBAFromPixel()/viaPixelARGB8888() */
+
+ switch (PICT_FORMAT_TYPE(format)) {
+ case PICT_TYPE_A:
+ shift = 0;
+ bits = PICT_FORMAT_A(format);
+ comp = (pixel >> shift) & ((1 << bits) - 1);
+ comp = viaBitExpandHelper(comp, bits);
+ *argb = comp << 24;
+ break;
+ case PICT_TYPE_ARGB:
+ shift = 0;
+ bits = PICT_FORMAT_B(format);
+ comp = (pixel >> shift) & ((1 << bits) - 1);
+ comp = viaBitExpandHelper(comp, bits);
+ *argb = comp;
+
+ shift += bits;
+ bits = PICT_FORMAT_G(format);
+ comp = (pixel >> shift) & ((1 << bits) - 1);
+ comp = viaBitExpandHelper(comp, bits);
+ *argb |= comp << 8;
+
+ shift += bits;
+ bits = PICT_FORMAT_R(format);
+ comp = (pixel >> shift) & ((1 << bits) - 1);
+ comp = viaBitExpandHelper(comp, bits);
+ *argb |= comp << 16;
+
+ shift += bits;
+ bits = PICT_FORMAT_A(format);
+ if (bits) {
+ comp = (pixel >> shift) & ((1 << bits) - 1);
+ comp = viaBitExpandHelper(comp, bits);
+ } else {
+ comp = 0xff;
+ }
+ *argb |= comp << 24;
+ break;
+ case PICT_TYPE_ABGR:
+ break;
+ default:
+ break;
+ }
+}
+
+/*
+ * RENDER acceleration for mach64
+ */
+
+typedef struct {
+ Bool supported;
+ CARD32 scale_3d_cntl;
+} Mach64BlendOp;
+
+static Mach64BlendOp Mach64BlendOps[] = {
+ /* Clear */
+ {1, MACH64_ALPHA_BLEND_SRC_ZERO | MACH64_ALPHA_BLEND_DST_ZERO},
+ /* Src */
+ {1, MACH64_ALPHA_BLEND_SRC_ONE | MACH64_ALPHA_BLEND_DST_ZERO},
+ /* Dst */
+ {1, MACH64_ALPHA_BLEND_SRC_ZERO | MACH64_ALPHA_BLEND_DST_ONE},
+ /* Over */
+ {1, MACH64_ALPHA_BLEND_SRC_ONE | MACH64_ALPHA_BLEND_DST_INVSRCALPHA},
+ /* OverReverse */
+ {1, MACH64_ALPHA_BLEND_SRC_INVDSTALPHA | MACH64_ALPHA_BLEND_DST_ONE},
+ /* In */
+ {1, MACH64_ALPHA_BLEND_SRC_DSTALPHA | MACH64_ALPHA_BLEND_DST_ZERO},
+ /* InReverse */
+ {1, MACH64_ALPHA_BLEND_SRC_ZERO | MACH64_ALPHA_BLEND_DST_SRCALPHA},
+ /* Out */
+ {1, MACH64_ALPHA_BLEND_SRC_INVDSTALPHA | MACH64_ALPHA_BLEND_DST_ZERO},
+ /* OutReverse */
+ {1, MACH64_ALPHA_BLEND_SRC_ZERO | MACH64_ALPHA_BLEND_DST_INVSRCALPHA},
+ /* Atop */
+ {0, MACH64_ALPHA_BLEND_SRC_DSTALPHA | MACH64_ALPHA_BLEND_DST_INVSRCALPHA},
+ /* AtopReverse */
+ {0, MACH64_ALPHA_BLEND_SRC_INVDSTALPHA | MACH64_ALPHA_BLEND_DST_SRCALPHA},
+ /* Xor */
+ {1, MACH64_ALPHA_BLEND_SRC_INVDSTALPHA | MACH64_ALPHA_BLEND_DST_INVSRCALPHA},
+ /* Add */
+ {1, MACH64_ALPHA_BLEND_SRC_ONE | MACH64_ALPHA_BLEND_DST_ONE}
+};
+
+#define MACH64_NR_BLEND_OPS \
+ (sizeof(Mach64BlendOps) / sizeof(Mach64BlendOps[0]))
+
+typedef struct {
+ CARD32 pictFormat;
+ CARD32 dstFormat;
+ CARD32 texFormat;
+} Mach64TexFormat;
+
+static Mach64TexFormat Mach64TexFormats[] = {
+ {PICT_a8r8g8b8, -1, MACH64_DATATYPE_ARGB8888},
+ {PICT_x8r8g8b8, MACH64_DATATYPE_ARGB8888, MACH64_DATATYPE_ARGB8888},
+ {PICT_a1r5g5b5, -1, MACH64_DATATYPE_ARGB1555},
+ {PICT_x1r5g5b5, MACH64_DATATYPE_ARGB1555, MACH64_DATATYPE_ARGB1555},
+ {PICT_r5g6b5, MACH64_DATATYPE_RGB565, MACH64_DATATYPE_RGB565 },
+ {PICT_a8, MACH64_DATATYPE_RGB8, MACH64_DATATYPE_RGB8 }
+};
+
+#define MACH64_NR_TEX_FORMATS \
+ (sizeof(Mach64TexFormats) / sizeof(Mach64TexFormats[0]))
+
+#define MACH64_PICT_IS_1x1R(_pPict) \
+ ((_pPict) && \
+ (_pPict)->pDrawable->width == 1 && \
+ (_pPict)->pDrawable->height == 1 && \
+ (_pPict)->repeat)
+
+/*
+ * CheckComposite hook helper functions.
+ */
+static __inline__ Bool
+Mach64GetOrder(int val, int *shift)
+{
+ *shift = 0;
+
+ while (val > (1 << *shift))
+ (*shift)++;
+
+ return (val == (1 << *shift));
+}
+
+static Bool
+Mach64CheckTexture(PicturePtr pPict)
+{
+ int w = pPict->pDrawable->width;
+ int h = pPict->pDrawable->height;
+ int l2w, l2h, level, i;
+
+ for (i = 0; i < MACH64_NR_TEX_FORMATS; i++) {
+ if (Mach64TexFormats[i].pictFormat == pPict->format)
+ break;
+ }
+
+ if (i == MACH64_NR_TEX_FORMATS)
+ MACH64_FALLBACK(("Unsupported picture format 0x%x\n",
+ (int)pPict->format));
+
+ /* l2w equals l2p (pitch) for all interesting cases (w >= 64) */
+ Mach64GetOrder(w, &l2w);
+ Mach64GetOrder(h, &l2h);
+
+ level = (l2w > l2h) ? l2w : l2h;
+
+ if (level > 10)
+ MACH64_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h));
+
+ return TRUE;
+}
+
+/*
+ * CheckComposite acceleration hook.
+ */
+Bool
+Mach64CheckComposite
+(
+ int op,
+ PicturePtr pSrcPicture,
+ PicturePtr pMaskPicture,
+ PicturePtr pDstPicture
+)
+{
+ Bool src_solid, mask_solid, mask_comp, op_comp;
+ int i;
+
+ if (op >= MACH64_NR_BLEND_OPS || !Mach64BlendOps[op].supported)
+ return FALSE;
+
+ if (!Mach64CheckTexture(pSrcPicture))
+ return FALSE;
+
+ if (pMaskPicture && !Mach64CheckTexture(pMaskPicture))
+ return FALSE;
+
+ /* Check destination format */
+
+ for (i = 0; i < MACH64_NR_TEX_FORMATS; i++) {
+ if (Mach64TexFormats[i].pictFormat == pDstPicture->format)
+ break;
+ }
+
+ if (i == MACH64_NR_TEX_FORMATS || Mach64TexFormats[i].dstFormat == -1)
+ MACH64_FALLBACK(("Unsupported dst format 0x%x\n",
+ (int)pDstPicture->format));
+
+ /* Check that A8 src/dst appears only as "A8 ADD A8" */
+
+ if (pDstPicture->format == PICT_a8) {
+ if (pMaskPicture || pSrcPicture->format != PICT_a8 || op != PictOpAdd)
+ MACH64_FALLBACK(("A8 dst with mask or non-A8 src.\n"));
+ }
+
+ if (pDstPicture->format != PICT_a8) {
+ if (pSrcPicture->format == PICT_a8)
+ MACH64_FALLBACK(("A8 src with non-A8 dst.\n"));
+ }
+
+ /* Check that one of src/mask can come in as the fragment color. */
+
+ src_solid = MACH64_PICT_IS_1x1R(pSrcPicture);
+
+ mask_solid = MACH64_PICT_IS_1x1R(pMaskPicture);
+
+ mask_comp = pMaskPicture && pMaskPicture->componentAlpha;
+
+ op_comp = op == PictOpAdd ||
+ op == PictOpInReverse ||
+ op == PictOpOutReverse;
+
+ if (mask_solid && src_solid)
+ MACH64_FALLBACK(("Bad one-pixel IN composite operation.\n"));
+
+ if (pMaskPicture) {
+ if (!mask_solid && !src_solid)
+ MACH64_FALLBACK(("Multitexturing required.\n"));
+
+ if (!mask_solid && !op_comp)
+ MACH64_FALLBACK(("Non-solid mask.\n"));
+
+ if (mask_comp && !src_solid)
+ MACH64_FALLBACK(("Component-alpha mask.\n"));
+
+ if (!mask_comp && pMaskPicture->format != PICT_a8)
+ MACH64_FALLBACK(("Non-A8 mask.\n"));
+
+ if (mask_comp && pMaskPicture->format != PICT_a8r8g8b8)
+ MACH64_FALLBACK(("Non-ARGB mask.\n"));
+ }
+
+ return TRUE;
+}
+
+/*
+ * This function setups the fragment color from a solid pixmap in the presence
+ * of a mask.
+ */
+static __inline__ Bool
+Mach64PrepareMask
+(
+ Mach64ContextRegs3D *m3d,
+ int op,
+ PicturePtr pSrcPicture,
+ PicturePtr pMaskPicture,
+ PixmapPtr pSrc,
+ PixmapPtr pMask
+)
+{
+ Bool mask_solid, src_solid;
+ CARD32 argb = 0;
+
+ mask_solid = MACH64_PICT_IS_1x1R(pMaskPicture);
+
+ src_solid = MACH64_PICT_IS_1x1R(pSrcPicture);
+
+ if (mask_solid) {
+ Mach64PixelARGB(pMask, pMaskPicture->format, &argb);
+ argb >>= 24;
+ argb &= 0xff;
+
+ m3d->frag_mask = TRUE;
+ m3d->frag_color = (argb << 24) | (argb << 16) | (argb << 8) | argb;
+ return TRUE;
+ }
+
+ if (src_solid) {
+ /* We can only handle cases where either the src color (e.g. ADD) or
+ * the src alpha (e.g. IN_REV, OUT_REV) is used but not both.
+ *
+ * (ARGB8888 IN A8) OVER RGB565 is implemented as:
+ * (ARGB8888 IN A8) ADD ((ARGB8888 IN A8) OUT_REV RGB565).
+ */
+ if (op == PictOpInReverse || op == PictOpOutReverse) {
+ Mach64PixelARGB(pSrc, pSrcPicture->format, &argb);
+ argb >>= 24;
+ argb &= 0xff;
+
+ m3d->frag_src = TRUE;
+ m3d->frag_color = (argb << 24) | (argb << 16) | (argb << 8) | argb;
+ m3d->color_alpha = TRUE;
+ return TRUE;
+ }
+
+ if (op == PictOpAdd) {
+ Mach64PixelARGB(pSrc, pSrcPicture->format, &argb);
+
+ m3d->frag_src = TRUE;
+ m3d->frag_color = argb;
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+/*
+ * This function setups the texturing and blending environments. It also
+ * manipulates blend control for non-solid masks.
+ */
+static void __inline__
+Mach64BlendCntl(Mach64ContextRegs3D *m3d, int op)
+{
+ m3d->scale_3d_cntl |= MACH64_SCALE_PIX_EXPAND_DYNAMIC_RANGE |
+ MACH64_SCALE_DITHER_2D_TABLE |
+ MACH64_DITHER_INIT_RESET;
+
+ m3d->scale_3d_cntl |= Mach64BlendOps[op].scale_3d_cntl;
+
+ if (m3d->color_alpha) {
+ /* A8 uses RGB8 which expands to (I,I,I,0). Thus, we use the color
+ * channels instead of the alpha channel as the alpha factor. We also
+ * use the color channels for ARGB8888 masks with component-alpha.
+ */
+ CARD32 Ad = m3d->scale_3d_cntl & MACH64_ALPHA_BLEND_DST_MASK;
+
+ /* InReverse */
+ if (Ad == MACH64_ALPHA_BLEND_DST_SRCALPHA) {
+ m3d->scale_3d_cntl &= ~MACH64_ALPHA_BLEND_DST_MASK;
+ m3d->scale_3d_cntl |= MACH64_ALPHA_BLEND_DST_SRCCOLOR;
+ }
+
+ /* OutReverse */
+ if (Ad == MACH64_ALPHA_BLEND_DST_INVSRCALPHA) {
+ m3d->scale_3d_cntl &= ~MACH64_ALPHA_BLEND_DST_MASK;
+ m3d->scale_3d_cntl |= MACH64_ALPHA_BLEND_DST_INVSRCCOLOR;
+ }
+ }
+
+ /* Can't color mask and blend at the same time */
+ m3d->dp_write_mask = 0xffffffff;
+
+ /* Can't fog and blend at the same time */
+ m3d->scale_3d_cntl |= MACH64_ALPHA_FOG_EN_ALPHA;
+
+ /* Enable texture mapping mode */
+ m3d->scale_3d_cntl |= MACH64_SCALE_3D_FCN_TEXTURE;
+ m3d->scale_3d_cntl |= MACH64_MIP_MAP_DISABLE;
+
+ /* Setup the texture environment */
+ m3d->scale_3d_cntl |= MACH64_TEX_LIGHT_FCN_MODULATE;
+
+ /* Initialize texture unit */
+ m3d->tex_cntl |= MACH64_TEX_ST_DIRECT |
+ MACH64_TEX_SRC_LOCAL |
+ MACH64_TEX_UNCOMPRESSED |
+ MACH64_TEX_CACHE_FLUSH |
+ MACH64_TEX_CACHE_SIZE_4K;
+}
+
+/*
+ * This function setups the texture unit.
+ */
+static Bool
+Mach64PrepareTexture(PicturePtr pPict, PixmapPtr pPix)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pPix->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ Mach64ContextRegs3D *m3d = &pATI->m3d;
+
+ CARD32 texFormat;
+
+ int w = pPict->pDrawable->width;
+ int h = pPict->pDrawable->height;
+ int l2w, l2h, l2p, level, pitch, cpp, i;
+
+ /* Prepare picture format */
+ for (i = 0; i < MACH64_NR_TEX_FORMATS; i++) {
+ if (Mach64TexFormats[i].pictFormat == pPict->format)
+ break;
+ }
+ texFormat = Mach64TexFormats[i].texFormat;
+
+ /* Prepare picture size */
+ cpp = PICT_FORMAT_BPP(pPict->format) / 8;
+ pitch = exaGetPixmapPitch(pPix) / cpp;
+
+ Mach64GetOrder(w, &l2w);
+ Mach64GetOrder(h, &l2h);
+ Mach64GetOrder(pitch, &l2p);
+
+ if (pPict->repeat && w == 1 && h == 1)
+ l2p = 0;
+ else if (pPict->repeat)
+ MACH64_FALLBACK(("Repeat not supported for w,h != 1,1\n"));
+
+ l2w = l2p;
+
+ level = (l2w > l2h) ? l2w : l2h;
+
+ m3d->tex_width = (1 << l2w);
+ m3d->tex_height = (1 << l2h);
+
+ /* Update hw state */
+ m3d->dp_pix_width |= SetBits(texFormat, DP_SCALE_PIX_WIDTH);
+
+ m3d->tex_size_pitch = (l2w << 0) |
+ (level << 4) |
+ (l2h << 8);
+
+ m3d->tex_offset = exaGetPixmapOffset(pPix);
+
+ if (PICT_FORMAT_A(pPict->format))
+ m3d->scale_3d_cntl |= MACH64_TEX_MAP_AEN;
+
+ switch (pPict->filter) {
+ case PictFilterNearest:
+ m3d->scale_3d_cntl |= MACH64_TEX_BLEND_FCN_NEAREST;
+ break;
+ case PictFilterBilinear:
+ /* FIXME */
+#if 0
+ m3d->scale_3d_cntl |= MACH64_TEX_BLEND_FCN_LINEAR;
+ m3d->scale_3d_cntl |= MACH64_BILINEAR_TEX_EN;
+#endif
+ MACH64_FALLBACK(("Bilinear filter 0x%x\n", pPict->filter));
+ break;
+ default:
+ MACH64_FALLBACK(("Bad filter 0x%x\n", pPict->filter));
+ }
+
+ m3d->transform = pPict->transform;
+
+ return TRUE;
+}
+
+/*
+ * PrepareComposite acceleration hook.
+ */
+Bool
+Mach64PrepareComposite
+(
+ int op,
+ PicturePtr pSrcPicture,
+ PicturePtr pMaskPicture,
+ PicturePtr pDstPicture,
+ PixmapPtr pSrc,
+ PixmapPtr pMask,
+ PixmapPtr pDst
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pDst->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ Mach64ContextRegs3D *m3d = &pATI->m3d;
+
+ CARD32 dstFormat;
+ int offset, i;
+
+ ATIDRISync(pScreenInfo);
+
+ /* Initialize state */
+ m3d->dp_mix = SetBits(MIX_SRC, DP_BKGD_MIX) |
+ SetBits(MIX_SRC, DP_FRGD_MIX);
+
+ m3d->dp_src = SetBits(SRC_SCALER_3D, DP_BKGD_SRC) |
+ SetBits(SRC_SCALER_3D, DP_FRGD_SRC) |
+ DP_MONO_SRC_ALLONES;
+
+ Mach64GetPixmapOffsetPitch(pDst, &m3d->dst_pitch_offset);
+
+ m3d->scale_3d_cntl = 0;
+ m3d->tex_cntl = 0;
+
+ m3d->frag_src = FALSE;
+ m3d->frag_mask = FALSE;
+ m3d->frag_color = 0xffffffff;
+
+ m3d->color_alpha = FALSE;
+
+ m3d->transform = NULL;
+
+ /* Compute state */
+ if (pMaskPicture && !Mach64PrepareMask(m3d, op, pSrcPicture, pMaskPicture,
+ pSrc, pMask))
+ return FALSE;
+
+ Mach64BlendCntl(m3d, op);
+
+ for (i = 0; i < MACH64_NR_TEX_FORMATS; i++) {
+ if (Mach64TexFormats[i].pictFormat == pDstPicture->format)
+ break;
+ }
+ dstFormat = Mach64TexFormats[i].dstFormat;
+
+ m3d->dp_pix_width = SetBits(dstFormat, DP_DST_PIX_WIDTH) |
+ SetBits(dstFormat, DP_SRC_PIX_WIDTH) |
+ SetBits(dstFormat, DP_HOST_PIX_WIDTH);
+
+ if (!m3d->frag_src) {
+ if (!Mach64PrepareTexture(pSrcPicture, pSrc))
+ return FALSE;
+ }
+
+ if (pMaskPicture && !m3d->frag_mask) {
+ if (!Mach64PrepareTexture(pMaskPicture, pMask))
+ return FALSE;
+ }
+
+ offset = TEX_LEVEL(m3d->tex_size_pitch);
+
+ /* Emit state */
+ ATIMach64WaitForFIFO(pATI, 12);
+ outf(DP_SRC, m3d->dp_src);
+ outf(DP_MIX, m3d->dp_mix);
+
+ outf(CLR_CMP_CNTL, CLR_CMP_FN_FALSE);
+ outf(DST_CNTL, DST_X_DIR | DST_Y_DIR);
+ outf(DST_OFF_PITCH, m3d->dst_pitch_offset);
+
+ outf(SCALE_3D_CNTL, m3d->scale_3d_cntl);
+ outf(DP_WRITE_MASK, m3d->dp_write_mask);
+ outf(DP_PIX_WIDTH, m3d->dp_pix_width);
+
+ outf(SETUP_CNTL, 0);
+
+ outf(TEX_SIZE_PITCH, m3d->tex_size_pitch);
+ outf(TEX_CNTL, m3d->tex_cntl);
+ outf(TEX_0_OFF + offset, m3d->tex_offset);
+
+ return TRUE;
+}
+
+/*
+ * Vertex format, setup and emission.
+ */
+typedef struct {
+ float s0; /* normalized texture coords */
+ float t0;
+ float x; /* quarter-pixels */
+ float y;
+ CARD32 argb; /* fragment color */
+} Mach64Vertex;
+
+#define VTX_SET(_v, _col, _dstX, _dstY, _srcX, _dx, _srcY, _dy) \
+do { \
+ _v.s0 = ((float)(_srcX) + _dx) / m3d->tex_width; \
+ _v.t0 = ((float)(_srcY) + _dy) / m3d->tex_height; \
+ _v.x = ((float)(_dstX) * 4.0); \
+ _v.y = ((float)(_dstY) * 4.0); \
+ _v.argb = _col; \
+} while (0)
+
+#define FVAL(_fval) (*(CARD32 *)&(_fval))
+
+#define VTX_OUT(_v, n) \
+do { \
+ float w = 1.0; \
+ CARD32 z = 0xffff << 15; \
+ CARD32 x_y = ((CARD16)_v.x << 16) | \
+ ((CARD16)_v.y & 0xffff); \
+ \
+ ATIMach64WaitForFIFO(pATI, 6); \
+ outf(VERTEX_##n##_S, FVAL(_v.s0)); \
+ outf(VERTEX_##n##_T, FVAL(_v.t0)); \
+ outf(VERTEX_##n##_W, FVAL(w)); \
+ \
+ outf(VERTEX_##n##_Z, z); \
+ outf(VERTEX_##n##_ARGB, _v.argb); \
+ outf(VERTEX_##n##_X_Y, x_y); \
+} while (0)
+
+/*
+ * Composite acceleration hook.
+ */
+void
+Mach64Composite
+(
+ PixmapPtr pDst,
+ int srcX,
+ int srcY,
+ int maskX,
+ int maskY,
+ int dstX,
+ int dstY,
+ int w,
+ int h
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pDst->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ Mach64ContextRegs3D *m3d = &pATI->m3d;
+
+ Mach64Vertex v0, v1, v2, v3;
+ float ooa;
+ CARD32 col;
+ PictVector v;
+ int srcXend, srcYend;
+ float dxy = 0.0, dwh = 0.0;
+
+ ATIDRISync(pScreenInfo);
+
+ /* Disable clipping if it gets in the way */
+ ATIMach64ValidateClip(pATI, dstX, dstX + w - 1, dstY, dstY + h - 1);
+
+ /* Handle solid textures which come in as fragment color */
+ col = m3d->frag_color;
+ if (m3d->frag_src) {
+ srcX = maskX;
+ srcY = maskY;
+ }
+
+ /* Handle transform */
+ srcXend = srcX + w;
+ srcYend = srcY + h;
+ if (m3d->transform) {
+ v.vector[0] = IntToxFixed(srcX);
+ v.vector[1] = IntToxFixed(srcY);
+ v.vector[2] = xFixed1;
+ PictureTransformPoint(m3d->transform, &v);
+ srcX = xFixedToInt(v.vector[0]);
+ srcY = xFixedToInt(v.vector[1]);
+
+ v.vector[0] = IntToxFixed(srcXend);
+ v.vector[1] = IntToxFixed(srcYend);
+ v.vector[2] = xFixed1;
+ PictureTransformPoint(m3d->transform, &v);
+ srcXend = xFixedToInt(v.vector[0]);
+ srcYend = xFixedToInt(v.vector[1]);
+
+#if 0
+ /* Bilinear needs manipulation of texture coordinates */
+ if (m3d->scale_3d_cntl & MACH64_BILINEAR_TEX_EN) {
+ dxy = 0.5;
+ dwh = -1.0;
+ }
+#endif
+ }
+
+ /* Create vertices in clock-wise order */
+ VTX_SET(v0, col, dstX, dstY, srcX, dxy, srcY, dxy);
+ VTX_SET(v1, col, dstX + w, dstY, srcXend, dwh, srcY, dxy);
+ VTX_SET(v2, col, dstX + w, dstY + h, srcXend, dwh, srcYend, dwh);
+ VTX_SET(v3, col, dstX, dstY + h, srcX, dxy, srcYend, dwh);
+
+ /* Setup upper triangle (v0, v1, v3) */
+ VTX_OUT(v0, 1);
+ VTX_OUT(v1, 2);
+ VTX_OUT(v3, 3);
+
+ ooa = 1.0 / (w * h);
+ outf(ONE_OVER_AREA, FVAL(ooa));
+
+ /* Setup lower triangle (v2, v1, v3) */
+ VTX_OUT(v2, 1);
+
+ ooa = -ooa;
+ outf(ONE_OVER_AREA, FVAL(ooa));
+}
+
+/*
+ * DoneComposite acceleration hook.
+ */
+void
+Mach64DoneComposite(PixmapPtr pDst)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[pDst->drawable.pScreen->myNum];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIDRISync(pScreenInfo);
+
+ outf(SCALE_3D_CNTL, 0);
+}
diff --git a/src/atimach64xv.c b/src/atimach64xv.c
index cba6f99..b72f88f 100644
--- a/src/atimach64xv.c
+++ b/src/atimach64xv.c
@@ -25,6 +25,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atiaccel.h"
#include "atichip.h"
@@ -499,6 +501,25 @@ ATIMach64GetPortAttribute
return Success;
}
+static pointer
+ATIMach64XVMemAlloc
+(
+ ScreenPtr pScreen,
+ pointer pVideo,
+ int size,
+ int *offset,
+ ATIPtr pATI
+);
+
+static void
+ATIMach64XVMemFree
+(
+ ScreenPtr pScreen,
+ pointer pVideo,
+ ATIPtr pATI
+);
+
+#ifdef USE_XAA
/*
* ATIMach64RemoveLinearCallback --
*
@@ -517,6 +538,7 @@ ATIMach64RemoveLinearCallback
pATI->pXVBuffer = NULL;
outf(OVERLAY_SCALE_CNTL, SCALE_EN);
}
+#endif /* USE_XAA */
/*
* ATIMach64StopVideo --
@@ -541,19 +563,23 @@ ATIMach64StopVideo
REGION_EMPTY(pScreen, &pATI->VideoClip);
- if (!Cleanup)
+#ifdef USE_XAA
+ if (!pATI->useEXA && !Cleanup)
{
/*
* Free offscreen buffer if/when its allocation is needed by XAA's
* pixmap cache.
*/
- if (pATI->pXVBuffer)
- pATI->pXVBuffer->RemoveLinearCallback =
+ FBLinearPtr linear = (FBLinearPtr)pATI->pXVBuffer;
+ if (linear)
+ linear->RemoveLinearCallback =
ATIMach64RemoveLinearCallback;
return;
}
+#endif /* USE_XAA */
- pATI->pXVBuffer = ATIResizeOffscreenLinear(pScreen, pATI->pXVBuffer, 0);
+ ATIMach64XVMemFree(pScreen, pATI->pXVBuffer, pATI);
+ pATI->pXVBuffer = NULL;
outf(OVERLAY_SCALE_CNTL, SCALE_EN);
}
@@ -942,7 +968,8 @@ ATIMach64PutImage
short Height,
Bool Synchronise,
RegionPtr pClip,
- pointer Data
+ pointer Data,
+ DrawablePtr pDraw
)
{
ATIPtr pATI = Data;
@@ -953,6 +980,7 @@ ATIMach64PutImage
int SrcTop, SrcLeft, DstWidth, DstHeight;
int Top, Bottom, Left, Right, nLine, nPixel, Offset;
int OffsetV, OffsetU;
+ int XVOffset;
int tmp;
CARD8 *pDst;
@@ -978,11 +1006,11 @@ ATIMach64PutImage
*/
DstPitch = /* bytes */
(DstWidth + DstWidth + 15) & ~15;
- DstSize = /* pixels */
- ((DstPitch * DstHeight) + pATI->AdjustDepth - 1) / pATI->AdjustDepth;
+ DstSize = /* bytes */
+ (DstPitch * DstHeight);
- pATI->pXVBuffer = ATIResizeOffscreenLinear(pScreen, pATI->pXVBuffer,
- (pATI->DoubleBuffer + 1) * DstSize);
+ pATI->pXVBuffer = ATIMach64XVMemAlloc(pScreen, pATI->pXVBuffer,
+ (pATI->DoubleBuffer + 1) * DstSize, &XVOffset, pATI);
if (!pATI->pXVBuffer)
{
@@ -990,7 +1018,7 @@ ATIMach64PutImage
return BadAlloc;
pATI->pXVBuffer =
- ATIResizeOffscreenLinear(pScreen, pATI->pXVBuffer, DstSize);
+ ATIMach64XVMemAlloc(pScreen, pATI->pXVBuffer, DstSize, &XVOffset, pATI);
if (!pATI->pXVBuffer)
return BadAlloc;
@@ -1009,8 +1037,7 @@ ATIMach64PutImage
/* Synchronise video memory accesses */
ATIMach64Sync(pScreenInfo);
- Offset = (pATI->pXVBuffer->offset * pATI->AdjustDepth) +
- (pATI->CurrentBuffer * DstSize * pATI->AdjustDepth);
+ Offset = XVOffset + pATI->CurrentBuffer * DstSize;
pDst = pATI->pMemoryLE;
pDst += Offset;
@@ -1110,6 +1137,7 @@ ATIMach64AllocateSurface
{
ScreenPtr pScreen;
ATIPtr pATI = ATIPTR(pScreenInfo);
+ int XVOffset;
if (pATI->ActiveSurface)
return BadAlloc;
@@ -1123,13 +1151,12 @@ ATIMach64AllocateSurface
pScreen = pScreenInfo->pScreen;
- pATI->pXVBuffer = ATIResizeOffscreenLinear(pScreen, pATI->pXVBuffer,
- ((Height * pATI->SurfacePitch) + pATI->AdjustDepth - 1) /
- pATI->AdjustDepth);
+ pATI->pXVBuffer = ATIMach64XVMemAlloc(pScreen, pATI->pXVBuffer,
+ Height * pATI->SurfacePitch, &XVOffset, pATI);
if (!pATI->pXVBuffer)
return BadAlloc;
- pATI->SurfaceOffset = pATI->pXVBuffer->offset * pATI->AdjustDepth;
+ pATI->SurfaceOffset = XVOffset;
pSurface->pScrn = pScreenInfo;
pSurface->id = ImageID;
@@ -1164,8 +1191,8 @@ ATIMach64FreeSurface
return Success;
outf(OVERLAY_SCALE_CNTL, SCALE_EN);
- pATI->pXVBuffer = ATIResizeOffscreenLinear(pSurface->pScrn->pScreen,
- pATI->pXVBuffer, 0);
+ ATIMach64XVMemFree(pSurface->pScrn->pScreen, pATI->pXVBuffer, pATI);
+ pATI->pXVBuffer = NULL;
pATI->ActiveSurface = FALSE;
return Success;
@@ -1495,3 +1522,84 @@ ATIMach64CloseXVideo
REGION_UNINIT(pScreen, &pATI->VideoClip);
}
+
+static pointer
+ATIMach64XVMemAlloc
+(
+ ScreenPtr pScreen,
+ pointer pVideo,
+ int size,
+ int *offset,
+ ATIPtr pATI
+)
+{
+#ifdef USE_EXA
+ if (pATI->useEXA) {
+ ExaOffscreenArea *area = (ExaOffscreenArea *)pVideo;
+
+ if (area != NULL) {
+ if (area->size >= size) {
+ *offset = area->offset;
+ return area;
+ }
+
+ exaOffscreenFree(pScreen, area);
+ }
+
+ area = exaOffscreenAlloc(pScreen, size, 64, TRUE, NULL, NULL);
+ if (area != NULL) {
+ *offset = area->offset;
+ return area;
+ }
+ }
+#endif /* USE_EXA */
+
+#ifdef USE_XAA
+ if (!pATI->useEXA) {
+ FBLinearPtr linear = (FBLinearPtr)pVideo;
+ int cpp = pATI->AdjustDepth;
+
+ /* XAA allocates in units of pixels at the screen bpp, so adjust size
+ * appropriately.
+ */
+ size = (size + cpp - 1) / cpp;
+
+ linear = ATIResizeOffscreenLinear(pScreen, linear, size);
+ if (linear != NULL) {
+ *offset = linear->offset * cpp;
+ return linear;
+ }
+ }
+#endif /* USE_XAA */
+
+ *offset = 0;
+ return NULL;
+}
+
+static void
+ATIMach64XVMemFree
+(
+ ScreenPtr pScreen,
+ pointer pVideo,
+ ATIPtr pATI
+)
+{
+#ifdef USE_EXA
+ if (pATI->useEXA) {
+ ExaOffscreenArea *area = (ExaOffscreenArea *)pVideo;
+
+ if (area != NULL)
+ exaOffscreenFree(pScreen, area);
+ }
+#endif /* USE_EXA */
+
+#ifdef USE_XAA
+ if (!pATI->useEXA) {
+ FBLinearPtr linear = (FBLinearPtr)pVideo;
+
+ if (linear != NULL)
+ ATIResizeOffscreenLinear(pScreen, linear, 0);
+ }
+#endif /* USE_XAA */
+}
+
diff --git a/src/atimisc.c b/src/atimisc.c
index de118c0..ee4b518 100644
--- a/src/atimisc.c
+++ b/src/atimisc.c
@@ -127,7 +127,19 @@ ATISetup
ATIfbSymbols,
ATIshadowfbSymbols,
+
+#ifdef USE_EXA
+
+ ATIexaSymbols,
+
+#endif /* USE_EXA */
+
+#ifdef USE_XAA
+
ATIxaaSymbols,
+
+#endif /* USE_XAA */
+
ATIramdacSymbols,
ATIi2cSymbols,
NULL);
diff --git a/src/atimode.c b/src/atimode.c
index 098659e..17210de 100644
--- a/src/atimode.c
+++ b/src/atimode.c
@@ -24,6 +24,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atichip.h"
@@ -998,7 +1000,7 @@ ATISetVBEMode
#endif
default:
xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "Mode not supported for TV-Out: depth: %ld HDisplay: %ld\n",
+ "Mode not supported for TV-Out: depth: %d HDisplay: %d\n",
modekey>>16, modekey & 0xffff);
return;
}
diff --git a/src/atimodule.h b/src/atimodule.h
index 1a203ae..833e421 100644
--- a/src/atimodule.h
+++ b/src/atimodule.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h,v 1.9 2003/01/01 19:16:32 tsi Exp $ */
/*
- * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atimono.h b/src/atimono.h
index f050ceb..6325cbe 100644
--- a/src/atimono.h
+++ b/src/atimono.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h,v 1.7 2003/01/01 19:16:33 tsi Exp $ */
/*
- * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atioption.c b/src/atioption.c
index 6c862ed..bc1129b 100644
--- a/src/atioption.c
+++ b/src/atioption.c
@@ -219,6 +219,20 @@ const OptionInfoRec ATIPublicOptions[] =
FALSE,
},
{
+ ATI_OPTION_ACCELMETHOD,
+ "AccelMethod",
+ OPTV_STRING,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_RENDER_ACCEL,
+ "RenderAccel",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
-1,
NULL,
OPTV_NONE,
diff --git a/src/atioption.h b/src/atioption.h
index 51778a4..808d90d 100644
--- a/src/atioption.h
+++ b/src/atioption.h
@@ -69,7 +69,9 @@ typedef enum
ATI_OPTION_PROBE_CLOCKS,
ATI_OPTION_REFERENCE_CLOCK,
ATI_OPTION_SHADOW_FB,
- ATI_OPTION_SWCURSOR
+ ATI_OPTION_SWCURSOR,
+ ATI_OPTION_ACCELMETHOD,
+ ATI_OPTION_RENDER_ACCEL
} ATIPublicOptionType;
#ifdef TV_OUT
diff --git a/src/atipciids.h b/src/atipciids.h
index eb3bc53..0e6a290 100644
--- a/src/atipciids.h
+++ b/src/atipciids.h
@@ -1,4 +1,4 @@
-/* $XdotOrg: driver/xf86-video-ati/src/atipciids.h,v 1.1.2.1 2006/03/12 06:57:12 benh Exp $ */
+/* $XdotOrg: driver/xf86-video-ati/src/atipciids.c, Exp $ */
/*
* Copyright (c) 1995-2003 by The XFree86 Project, Inc.
diff --git a/src/atipreinit.c b/src/atipreinit.c
index 1f0b016..8609f25 100644
--- a/src/atipreinit.c
+++ b/src/atipreinit.c
@@ -26,6 +26,9 @@
#include "config.h"
#endif
+#include <string.h>
+#include <stdio.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atiadjust.h"
diff --git a/src/atiprint.c b/src/atiprint.c
index f611e9a..d785101 100644
--- a/src/atiprint.c
+++ b/src/atiprint.c
@@ -25,6 +25,9 @@
#include "config.h"
#endif
+#include <string.h>
+#include <ctype.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atichip.h"
diff --git a/src/atipriv.h b/src/atipriv.h
index 723bf9a..69341ba 100644
--- a/src/atipriv.h
+++ b/src/atipriv.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h,v 1.5 2003/01/01 19:16:33 tsi Exp $ */
/*
- * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiprobe.c b/src/atiprobe.c
index 5c347bb..da214d4 100644
--- a/src/atiprobe.c
+++ b/src/atiprobe.c
@@ -25,6 +25,9 @@
#include "config.h"
#endif
+#include <string.h>
+#include <stdio.h>
+
#include "ati.h"
#include "atiadapter.h"
#include "atiadjust.h"
@@ -994,10 +997,8 @@ ATIProbe
ATIPtr pATI, *ATIPtrs = NULL;
GDevPtr *GDevs, pGDev;
pciVideoPtr pVideo, *xf86PciVideoInfo = xf86GetPciVideoInfo();
- pciConfigPtr pPCI;
ATIGDev *ATIGDevs = NULL, *pATIGDev;
ScrnInfoPtr pScreenInfo;
- CARD32 PciReg;
Bool ProbeSuccess = FALSE;
Bool DoRage128 = FALSE, DoRadeon = FALSE;
int i, j, k;
@@ -1005,10 +1006,18 @@ ATIProbe
int Chipset;
ATIChipType Chip;
+#if !defined(AVOID_NON_PCI) || !defined(AVOID_CPIO)
+ pciConfigPtr pPCI;
+ CARD32 PciReg;
+#endif /* AVOID_NON_PCI || AVOID_CPIO */
+
+#ifndef AVOID_NON_PCI
+ ATIPtr pMach64[3] = {NULL, NULL, NULL};
+#endif
+
#ifndef AVOID_CPIO
ATIPtr pVGA = NULL, p8514 = NULL;
- ATIPtr pMach64[3] = {NULL, NULL, NULL};
pciConfigPtr *xf86PciInfo = xf86GetPciConfigInfo();
PortPtr PCIPorts = NULL;
int nPCIPort = 0;
diff --git a/src/atiregs.h b/src/atiregs.h
index f9730c7..8ab8340 100644
--- a/src/atiregs.h
+++ b/src/atiregs.h
@@ -692,6 +692,19 @@
/* ? 0xf8000000ul */
#define TIMER_CONFIG BlockIOTag(0x0au) /* VTB/GTB/LT */
#define MEM_BUF_CNTL BlockIOTag(0x0bu) /* VTB/GTB/LT */
+#define Z_WB_FLUSH 0x00000007ul
+#define Z_WB_FLUSH_P 0x0000000ful /* GTPro */
+#define VID_WB_FLUSH_P 0x000000f0ul /* GTPro */
+#define VID_WB_FLUSH_MSB 0x00000100ul
+#define GUI_WB_FLUSH_P 0x00001f00ul /* GTPro */
+#define HST_WB_FLUSH_P 0x0000e000ul /* GTPro */
+#define SCL_MIN_BURST_LEN 0x001f0000ul
+#define SCL_THRESH 0x003f0000ul /* GTPro */
+/* ? 0x00400000ul */
+#define INVALIDATE_RB_CACHE 0x00800000ul
+#define HST_WB_FLUSH 0x03000000ul
+#define VID_WB_FLUSH 0x1c000000ul
+#define GUI_WB_FLUSH 0xe0000000ul
#define SHARED_CNTL BlockIOTag(0x0cu) /* VTB/GTB/LT */
#define SHARED_MEM_CONFIG BlockIOTag(0x0du) /* VTB/GTB/LT */
#define MEM_ADDR_CONFIG BlockIOTag(0x0du) /* GTPro */
@@ -2738,4 +2751,132 @@
/* ? 0x06u */
/* ? 0x07u */
+/* 3D Engine for render acceleration (from Mach64 DRI driver) */
+
+/* SCALE_3D_CNTL */
+#define MACH64_SCALE_PIX_EXPAND_ZERO_EXTEND (0 << 0)
+#define MACH64_SCALE_PIX_EXPAND_DYNAMIC_RANGE (1 << 0)
+#define MACH64_SCALE_DITHER_ERROR_DIFFUSE (0 << 1)
+#define MACH64_SCALE_DITHER_2D_TABLE (1 << 1)
+#define MACH64_DITHER_EN (1 << 2)
+#define MACH64_DITHER_INIT_CURRENT (O << 3)
+#define MACH64_DITHER_INIT_RESET (1 << 3)
+#define MACH64_ROUND_EN (1 << 4)
+
+#define MACH64_TEX_CACHE_DIS (1 << 5)
+
+#define MACH64_SCALE_3D_FCN_MASK (3 << 6)
+#define MACH64_SCALE_3D_FCN_NOP (0 << 6)
+#define MACH64_SCALE_3D_FCN_SCALE (1 << 6)
+#define MACH64_SCALE_3D_FCN_TEXTURE (2 << 6)
+#define MACH64_SCALE_3D_FCN_SHADE (3 << 6)
+#define MACH64_TEXTURE_DISABLE (1 << 6)
+
+#define MACH64_EDGE_ANTI_ALIAS (1 << 8)
+#define MACH64_TEX_CACHE_SPLIT (1 << 9)
+#define MACH64_APPLE_YUV_MODE (1 << 10)
+
+#define MACH64_ALPHA_FOG_EN_MASK (3 << 11)
+#define MACH64_ALPHA_FOG_DIS (0 << 11)
+#define MACH64_ALPHA_FOG_EN_ALPHA (1 << 11)
+#define MACH64_ALPHA_FOG_EN_FOG (2 << 11)
+
+#define MACH64_ALPHA_BLEND_SAT (1 << 13)
+#define MACH64_RED_DITHER_MAX (1 << 14)
+#define MACH64_SIGNED_DST_CLAMP (1 << 15)
+
+#define MACH64_ALPHA_BLEND_SRC_MASK (7 << 16)
+#define MACH64_ALPHA_BLEND_SRC_ZERO (0 << 16)
+#define MACH64_ALPHA_BLEND_SRC_ONE (1 << 16)
+#define MACH64_ALPHA_BLEND_SRC_DSTCOLOR (2 << 16)
+#define MACH64_ALPHA_BLEND_SRC_INVDSTCOLOR (3 << 16)
+#define MACH64_ALPHA_BLEND_SRC_SRCALPHA (4 << 16)
+#define MACH64_ALPHA_BLEND_SRC_INVSRCALPHA (5 << 16)
+#define MACH64_ALPHA_BLEND_SRC_DSTALPHA (6 << 16)
+#define MACH64_ALPHA_BLEND_SRC_INVDSTALPHA (7 << 16)
+#define MACH64_ALPHA_BLEND_DST_MASK (7 << 19)
+#define MACH64_ALPHA_BLEND_DST_ZERO (0 << 19)
+#define MACH64_ALPHA_BLEND_DST_ONE (1 << 19)
+#define MACH64_ALPHA_BLEND_DST_SRCCOLOR (2 << 19)
+#define MACH64_ALPHA_BLEND_DST_INVSRCCOLOR (3 << 19)
+#define MACH64_ALPHA_BLEND_DST_SRCALPHA (4 << 19)
+#define MACH64_ALPHA_BLEND_DST_INVSRCALPHA (5 << 19)
+#define MACH64_ALPHA_BLEND_DST_DSTALPHA (6 << 19)
+#define MACH64_ALPHA_BLEND_DST_INVDSTALPHA (7 << 19)
+
+#define MACH64_TEX_LIGHT_FCN_MASK (3 << 22)
+#define MACH64_TEX_LIGHT_FCN_REPLACE (0 << 22)
+#define MACH64_TEX_LIGHT_FCN_MODULATE (1 << 22)
+#define MACH64_TEX_LIGHT_FCN_ALPHA_DECAL (2 << 22)
+
+#define MACH64_MIP_MAP_DISABLE (1 << 24)
+
+#define MACH64_BILINEAR_TEX_EN (1 << 25)
+#define MACH64_TEX_BLEND_FCN_MASK (3 << 26)
+#define MACH64_TEX_BLEND_FCN_NEAREST (0 << 26)
+#define MACH64_TEX_BLEND_FCN_LINEAR (2 << 26)
+#define MACH64_TEX_BLEND_FCN_TRILINEAR (3 << 26)
+
+#define MACH64_TEX_AMASK_AEN (1 << 28)
+#define MACH64_TEX_AMASK_BLEND_EDGE (1 << 29)
+#define MACH64_TEX_MAP_AEN (1 << 30)
+#define MACH64_SRC_3D_HOST_FIFO (1 << 31)
+
+/* TEX_CNTL */
+#define MACH64_LOD_BIAS_SHIFT 0
+#define MACH64_LOD_BIAS_MASK (0xf << 0)
+#define MACH64_COMP_FACTOR_SHIFT 4
+#define MACH64_COMP_FACTOR_MASK (0xf << 4)
+
+#define MACH64_TEXTURE_COMPOSITE (1 << 8)
+
+#define MACH64_COMP_COMBINE_BLEND (0 << 9)
+#define MACH64_COMP_COMBINE_MODULATE (1 << 9)
+#define MACH64_COMP_BLEND_NEAREST (0 << 11)
+#define MACH64_COMP_BLEND_BILINEAR (1 << 11)
+#define MACH64_COMP_FILTER_NEAREST (0 << 12)
+#define MACH64_COMP_FILTER_BILINEAR (1 << 12)
+#define MACH64_COMP_ALPHA (1 << 13)
+
+#define MACH64_TEXTURE_TILING (1 << 14)
+#define MACH64_COMPOSITE_TEX_TILING (1 << 15)
+#define MACH64_TEX_COLLISION_DISABLE (1 << 16)
+
+#define MACH64_TEXTURE_CLAMP_S (1 << 17)
+#define MACH64_TEXTURE_CLAMP_T (1 << 18)
+#define MACH64_TEX_ST_MULT_W (0 << 19)
+#define MACH64_TEX_ST_DIRECT (1 << 19)
+#define MACH64_TEX_SRC_LOCAL (0 << 20)
+#define MACH64_TEX_SRC_AGP (1 << 20)
+#define MACH64_TEX_UNCOMPRESSED (0 << 21)
+#define MACH64_TEX_VQ_COMPRESSED (1 << 21)
+#define MACH64_COMP_TEX_UNCOMPRESSED (0 << 22)
+#define MACH64_COMP_TEX_VQ_COMPRESSED (1 << 22)
+#define MACH64_TEX_CACHE_FLUSH (1 << 23)
+#define MACH64_SEC_TEX_CLAMP_S (1 << 24)
+#define MACH64_SEC_TEX_CLAMP_T (1 << 25)
+#define MACH64_TEX_WRAP_S (1 << 28)
+#define MACH64_TEX_WRAP_T (1 << 29)
+#define MACH64_TEX_CACHE_SIZE_4K (1 << 30)
+#define MACH64_TEX_CACHE_SIZE_2K (1 << 30)
+#define MACH64_SECONDARY_STW (1 << 31)
+
+/* DP_PIX_WIDTH (superset of PIX_WIDTH_?BPP) */
+#define MACH64_DATATYPE_CI8 2
+#define MACH64_DATATYPE_ARGB1555 3
+#define MACH64_DATATYPE_RGB565 4
+#define MACH64_DATATYPE_ARGB8888 6
+#define MACH64_DATATYPE_RGB332 7
+#define MACH64_DATATYPE_Y8 8
+#define MACH64_DATATYPE_RGB8 9
+#define MACH64_DATATYPE_VYUY422 11
+#define MACH64_DATATYPE_YVYU422 12
+#define MACH64_DATATYPE_AYUV444 14
+#define MACH64_DATATYPE_ARGB4444 15
+
+/* Extract texture level from TEX_SIZE_PITCH and shift appropriately for
+ * addition to TEX_0_OFF.
+ */
+#define TEX_LEVEL(_tex_size_pitch) (((_tex_size_pitch) & 0xf0) >> 2)
+
#endif /* ___ATIREGS_H___ */
diff --git a/src/atiscreen.c b/src/atiscreen.c
index effeb66..3297df5 100644
--- a/src/atiscreen.c
+++ b/src/atiscreen.c
@@ -30,6 +30,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "ati.h"
#include "atibus.h"
#include "atichip.h"
@@ -123,6 +125,235 @@ ATIMinBits
for (bits = 0; val; val >>= 1, ++bits);
return bits;
}
+
+#ifdef USE_XAA
+static Bool
+ATIMach64SetupMemXAA_NoDRI
+(
+ int iScreen,
+ ScreenPtr pScreen
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[iScreen];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ int maxScanlines = ATIMach64MaxY;
+ int maxPixelArea, PixelArea;
+
+#ifndef AVOID_CPIO
+
+ if (!pATI->BankInfo.BankSize)
+
+#endif /* AVOID_CPIO */
+ {
+ /*
+ * Note: If PixelArea exceeds the engine's maximum, the excess is
+ * never used, even though it would be useful for such things
+ * as XVideo buffers.
+ */
+ maxPixelArea = maxScanlines * pScreenInfo->displayWidth;
+ PixelArea = pScreenInfo->videoRam * 1024 * 8 / pATI->bitsPerPixel;
+ if (PixelArea > maxPixelArea)
+ PixelArea = maxPixelArea;
+ xf86InitFBManagerArea(pScreen, PixelArea, 2);
+ }
+
+ return TRUE;
+}
+
+#ifdef XF86DRI_DEVEL
+/*
+ * Memory layour for XAA with DRI (no local_textures):
+ * | front | pixmaps, xv | back | depth | textures | c |
+ *
+ * 1024x768@16bpp with 8 MB:
+ * | 1.5 MB | ~3.5 MB | 1.5 MB | 1.5 MB | 0 | c |
+ *
+ * 1024x768@32bpp with 8 MB:
+ * | 3.0 MB | ~0.5 MB | 3.0 MB | 1.5 MB | 0 | c |
+ *
+ * "c" is the hw cursor which occupies 1KB
+ */
+static Bool
+ATIMach64SetupMemXAA
+(
+ int iScreen,
+ ScreenPtr pScreen
+)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[iScreen];
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
+ int cpp = pATI->bitsPerPixel >> 3;
+ int widthBytes = pScreenInfo->displayWidth * cpp;
+ int zWidthBytes = pScreenInfo->displayWidth * 2; /* always 16-bit z-buffer */
+ int fbSize = pScreenInfo->videoRam * 1024;
+ int bufferSize = pScreenInfo->virtualY * widthBytes;
+ int zBufferSize = pScreenInfo->virtualY * zWidthBytes;
+ int offscreenBytes, total, scanlines;
+
+ pATIDRIServer->fbX = 0;
+ pATIDRIServer->fbY = 0;
+ pATIDRIServer->frontOffset = 0;
+ pATIDRIServer->frontPitch = pScreenInfo->displayWidth;
+
+ /* Calculate memory remaining for pixcache and textures after
+ * front, back, and depth buffers
+ */
+ offscreenBytes = fbSize - ( 2 * bufferSize + zBufferSize );
+
+ if ( !pATIDRIServer->IsPCI && !pATI->OptionLocalTextures ) {
+ /* Don't allocate a local texture heap for AGP unless requested */
+ pATIDRIServer->textureSize = 0;
+ } else {
+ int l, maxPixcache;
+
+#ifdef XvExtension
+
+ int xvBytes;
+
+ /* Try for enough pixmap cache for DVD and a full viewport
+ */
+ xvBytes = 720*480*cpp; /* enough for single-buffered DVD */
+ maxPixcache = xvBytes > bufferSize ? xvBytes : bufferSize;
+
+#else /* XvExtension */
+
+ /* Try for one viewport */
+ maxPixcache = bufferSize;
+
+#endif /* XvExtension */
+
+ pATIDRIServer->textureSize = offscreenBytes - maxPixcache;
+
+ /* If that gives us less than half the offscreen mem available for textures, split
+ * the available mem between textures and pixmap cache
+ */
+ if (pATIDRIServer->textureSize < (offscreenBytes/2)) {
+ pATIDRIServer->textureSize = offscreenBytes/2;
+ }
+
+ if (pATIDRIServer->textureSize <= 0)
+ pATIDRIServer->textureSize = 0;
+
+ l = ATIMinBits((pATIDRIServer->textureSize-1) / MACH64_NR_TEX_REGIONS);
+ if (l < MACH64_LOG_TEX_GRANULARITY) l = MACH64_LOG_TEX_GRANULARITY;
+
+ /* Round the texture size up to the nearest whole number of
+ * texture regions. Again, be greedy about this, don't round
+ * down.
+ */
+ pATIDRIServer->logTextureGranularity = l;
+ pATIDRIServer->textureSize =
+ (pATIDRIServer->textureSize >> l) << l;
+ }
+
+ total = fbSize - pATIDRIServer->textureSize;
+ scanlines = total / widthBytes;
+ if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
+
+ /* Recalculate the texture offset and size to accomodate any
+ * rounding to a whole number of scanlines.
+ * FIXME: Is this actually needed?
+ */
+ pATIDRIServer->textureOffset = scanlines * widthBytes;
+ pATIDRIServer->textureSize = fbSize - pATIDRIServer->textureOffset;
+
+ /* Set a minimum usable local texture heap size. This will fit
+ * two 256x256 textures. We check this after any rounding of
+ * the texture area.
+ */
+ if (pATIDRIServer->textureSize < 256*256 * cpp * 2) {
+ pATIDRIServer->textureOffset = 0;
+ pATIDRIServer->textureSize = 0;
+ scanlines = fbSize / widthBytes;
+ if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
+ }
+
+ pATIDRIServer->depthOffset = scanlines * widthBytes - zBufferSize;
+ pATIDRIServer->depthPitch = pScreenInfo->displayWidth;
+ pATIDRIServer->depthY = pATIDRIServer->depthOffset/widthBytes;
+ pATIDRIServer->depthX = (pATIDRIServer->depthOffset -
+ (pATIDRIServer->depthY * widthBytes)) / cpp;
+
+ pATIDRIServer->backOffset = pATIDRIServer->depthOffset - bufferSize;
+ pATIDRIServer->backPitch = pScreenInfo->displayWidth;
+ pATIDRIServer->backY = pATIDRIServer->backOffset/widthBytes;
+ pATIDRIServer->backX = (pATIDRIServer->backOffset -
+ (pATIDRIServer->backY * widthBytes)) / cpp;
+
+ scanlines = fbSize / widthBytes;
+ if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
+
+ if ( pATIDRIServer->IsPCI && pATIDRIServer->textureSize == 0 ) {
+ xf86DrvMsg(iScreen, X_WARNING,
+ "Not enough memory for local textures, disabling DRI\n");
+ ATIDRICloseScreen(pScreen);
+ pATI->directRenderingEnabled = FALSE;
+ } else {
+ BoxRec ScreenArea;
+
+ ScreenArea.x1 = 0;
+ ScreenArea.y1 = 0;
+ ScreenArea.x2 = pATI->displayWidth;
+ ScreenArea.y2 = scanlines;
+
+ if (!xf86InitFBManager(pScreen, &ScreenArea)) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
+ "Memory manager initialization to (%d,%d) (%d,%d) failed\n",
+ ScreenArea.x1, ScreenArea.y1,
+ ScreenArea.x2, ScreenArea.y2);
+ return FALSE;
+ } else {
+ int width, height;
+
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Memory manager initialized to (%d,%d) (%d,%d)\n",
+ ScreenArea.x1, ScreenArea.y1, ScreenArea.x2, ScreenArea.y2);
+
+ if (xf86QueryLargestOffscreenArea(pScreen, &width, &height, 0, 0, 0)) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Largest offscreen area available: %d x %d\n",
+ width, height);
+
+ /* lines in offscreen area needed for depth buffer and textures */
+ pATI->depthTexLines = scanlines
+ - pATIDRIServer->depthOffset / widthBytes;
+ pATI->backLines = scanlines
+ - pATIDRIServer->backOffset / widthBytes
+ - pATI->depthTexLines;
+ pATI->depthTexArea = NULL;
+ pATI->backArea = NULL;
+ } else {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
+ "Unable to determine largest offscreen area available\n");
+ return FALSE;
+ }
+
+ }
+
+ xf86DrvMsg(iScreen, X_INFO, "Will use %d kB of offscreen memory for XAA\n",
+ (offscreenBytes - pATIDRIServer->textureSize)/1024);
+
+ xf86DrvMsg(iScreen, X_INFO, "Will use back buffer at offset 0x%x\n",
+ pATIDRIServer->backOffset);
+
+ xf86DrvMsg(iScreen, X_INFO, "Will use depth buffer at offset 0x%x\n",
+ pATIDRIServer->depthOffset);
+
+ if (pATIDRIServer->textureSize > 0) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Will use %d kB for local textures at offset 0x%x\n",
+ pATIDRIServer->textureSize/1024,
+ pATIDRIServer->textureOffset);
+ }
+ }
+
+ return TRUE;
+}
+#endif /* XF86DRI_DEVEL */
+#endif /* USE_XAA */
/*
* ATIScreenInit --
@@ -142,9 +373,6 @@ ATIScreenInit
ATIPtr pATI = ATIPTR(pScreenInfo);
pointer pFB;
int VisualMask;
-#ifdef XF86DRI_DEVEL
- BoxRec ScreenArea;
-#endif
/* Set video hardware state */
if (!ATIEnterGraphics(pScreen, pScreenInfo, pATI))
@@ -327,185 +555,44 @@ ATIScreenInit
#endif /* AVOID_CPIO */
- /* Memory manager setup */
+#ifdef USE_XAA
-#ifdef XF86DRI_DEVEL
+ if (!pATI->useEXA) {
+ /* Memory manager setup */
+
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
- ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
- int cpp = pATI->bitsPerPixel >> 3;
- int widthBytes = pScreenInfo->displayWidth * cpp;
- int zWidthBytes = pScreenInfo->displayWidth * 2; /* always 16-bit z-buffer */
- int fbSize = pScreenInfo->videoRam * 1024;
- int bufferSize = pScreenInfo->virtualY * widthBytes;
- int zBufferSize = pScreenInfo->virtualY * zWidthBytes;
- int offscreenBytes, total, scanlines;
-
- pATIDRIServer->fbX = 0;
- pATIDRIServer->fbY = 0;
- pATIDRIServer->frontOffset = 0;
- pATIDRIServer->frontPitch = pScreenInfo->displayWidth;
-
- /* Calculate memory remaining for pixcache and textures after
- * front, back, and depth buffers
- */
- offscreenBytes = fbSize - ( 2 * bufferSize + zBufferSize );
-
- if ( !pATIDRIServer->IsPCI && !pATI->OptionLocalTextures ) {
- /* Don't allocate a local texture heap for AGP unless requested */
- pATIDRIServer->textureSize = 0;
- } else {
- int l, maxPixcache;
-
-#ifdef XvExtension
-
- int xvBytes;
-
- /* Try for enough pixmap cache for DVD and a full viewport
- */
- xvBytes = 720*480*cpp; /* enough for single-buffered DVD */
- maxPixcache = xvBytes > bufferSize ? xvBytes : bufferSize;
-
-#else /* XvExtension */
-
- /* Try for one viewport */
- maxPixcache = bufferSize;
-
-#endif /* XvExtension */
-
- pATIDRIServer->textureSize = offscreenBytes - maxPixcache;
-
- /* If that gives us less than half the offscreen mem available for textures, split
- * the available mem between textures and pixmap cache
- */
- if (pATIDRIServer->textureSize < (offscreenBytes/2)) {
- pATIDRIServer->textureSize = offscreenBytes/2;
- }
-
- if (pATIDRIServer->textureSize <= 0)
- pATIDRIServer->textureSize = 0;
-
- l = ATIMinBits((pATIDRIServer->textureSize-1) / MACH64_NR_TEX_REGIONS);
- if (l < MACH64_LOG_TEX_GRANULARITY) l = MACH64_LOG_TEX_GRANULARITY;
-
- /* Round the texture size up to the nearest whole number of
- * texture regions. Again, be greedy about this, don't round
- * down.
- */
- pATIDRIServer->logTextureGranularity = l;
- pATIDRIServer->textureSize =
- (pATIDRIServer->textureSize >> l) << l;
- }
-
- total = fbSize - pATIDRIServer->textureSize;
- scanlines = total / widthBytes;
- if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
-
- /* Recalculate the texture offset and size to accomodate any
- * rounding to a whole number of scanlines.
- * FIXME: Is this actually needed?
- */
- pATIDRIServer->textureOffset = scanlines * widthBytes;
- pATIDRIServer->textureSize = fbSize - pATIDRIServer->textureOffset;
-
- /* Set a minimum usable local texture heap size. This will fit
- * two 256x256 textures. We check this after any rounding of
- * the texture area.
- */
- if (pATIDRIServer->textureSize < 256*256 * cpp * 2) {
- pATIDRIServer->textureOffset = 0;
- pATIDRIServer->textureSize = 0;
- scanlines = fbSize / widthBytes;
- if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
- }
-
- pATIDRIServer->depthOffset = scanlines * widthBytes - zBufferSize;
- pATIDRIServer->depthPitch = pScreenInfo->displayWidth;
- pATIDRIServer->depthY = pATIDRIServer->depthOffset/widthBytes;
- pATIDRIServer->depthX = (pATIDRIServer->depthOffset -
- (pATIDRIServer->depthY * widthBytes)) / cpp;
-
- pATIDRIServer->backOffset = pATIDRIServer->depthOffset - bufferSize;
- pATIDRIServer->backPitch = pScreenInfo->displayWidth;
- pATIDRIServer->backY = pATIDRIServer->backOffset/widthBytes;
- pATIDRIServer->backX = (pATIDRIServer->backOffset -
- (pATIDRIServer->backY * widthBytes)) / cpp;
-
- scanlines = fbSize / widthBytes;
- if (scanlines > ATIMach64MaxY) scanlines = ATIMach64MaxY;
-
- if ( pATIDRIServer->IsPCI && pATIDRIServer->textureSize == 0 ) {
- xf86DrvMsg(iScreen, X_WARNING,
- "Not enough memory for local textures, disabling DRI\n");
- ATIDRICloseScreen(pScreen);
- pATI->directRenderingEnabled = FALSE;
- } else {
-
- ScreenArea.x1 = 0;
- ScreenArea.y1 = 0;
- ScreenArea.x2 = pATI->displayWidth;
- ScreenArea.y2 = scanlines;
-
- if (!xf86InitFBManager(pScreen, &ScreenArea)) {
- xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
- "Memory manager initialization to (%d,%d) (%d,%d) failed\n",
- ScreenArea.x1, ScreenArea.y1,
- ScreenArea.x2, ScreenArea.y2);
- return FALSE;
- } else {
- int width, height;
-
- xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "Memory manager initialized to (%d,%d) (%d,%d)\n",
- ScreenArea.x1, ScreenArea.y1, ScreenArea.x2, ScreenArea.y2);
+ if (!ATIMach64SetupMemXAA(iScreen, pScreen))
+ return FALSE;
+ }
+ else
+#endif /* XF86DRI_DEVEL */
+ {
+ if (!ATIMach64SetupMemXAA_NoDRI(iScreen, pScreen))
+ return FALSE;
+ }
- if (xf86QueryLargestOffscreenArea(pScreen, &width, &height, 0, 0, 0)) {
- xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "Largest offscreen area available: %d x %d\n",
- width, height);
+ /* Setup acceleration */
- /* lines in offscreen area needed for depth buffer and textures */
- pATI->depthTexLines = scanlines
- - pATIDRIServer->depthOffset / widthBytes;
- pATI->backLines = scanlines
- - pATIDRIServer->backOffset / widthBytes
- - pATI->depthTexLines;
- pATI->depthTexArea = NULL;
- pATI->backArea = NULL;
- } else {
- xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
- "Unable to determine largest offscreen area available\n");
- return FALSE;
- }
+ if (!ATIInitializeAcceleration(pScreen, pScreenInfo, pATI))
+ return FALSE;
- }
+ }
- xf86DrvMsg(iScreen, X_INFO, "Will use %d kB of offscreen memory for XAA\n",
- (offscreenBytes - pATIDRIServer->textureSize)/1024);
+#endif /* USE_XAA */
- xf86DrvMsg(iScreen, X_INFO, "Will use back buffer at offset 0x%x\n",
- pATIDRIServer->backOffset);
+#ifdef USE_EXA
- xf86DrvMsg(iScreen, X_INFO, "Will use depth buffer at offset 0x%x\n",
- pATIDRIServer->depthOffset);
+ if (pATI->useEXA) {
+ /* EXA setups both memory manager and acceleration here */
- if (pATIDRIServer->textureSize > 0) {
- xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "Will use %d kB for local textures at offset 0x%x\n",
- pATIDRIServer->textureSize/1024,
- pATIDRIServer->textureOffset);
- }
- }
+ if (pATI->OptionAccel && !ATIMach64ExaInit(pScreen))
+ return FALSE;
}
-#endif /* XF86DRI_DEVEL */
-
- /* Setup acceleration */
- /* If direct rendering is not enabled, the framebuffer memory
- * manager is initialized by this function call */
- if (!ATIInitializeAcceleration(pScreen, pScreenInfo, pATI))
- return FALSE;
+#endif /* USE_EXA */
#ifndef AVOID_DGA
@@ -621,11 +708,21 @@ ATICloseScreen
ATICloseXVideo(pScreen, pScreenInfo, pATI);
+#ifdef USE_EXA
+ if (pATI->pExa)
+ {
+ exaDriverFini(pScreen);
+ xfree(pATI->pExa);
+ pATI->pExa = NULL;
+ }
+#endif
+#ifdef USE_XAA
if (pATI->pXAAInfo)
{
XAADestroyInfoRec(pATI->pXAAInfo);
pATI->pXAAInfo = NULL;
}
+#endif
if ((pScreen->CloseScreen = pATI->CloseScreen))
{
@@ -643,9 +740,14 @@ ATICloseScreen
ATILeaveGraphics(pScreenInfo, pATI);
- xfree(pATI->ExpansionBitmapScanlinePtr[1]);
- pATI->ExpansionBitmapScanlinePtr[0] =
+#ifdef USE_XAA
+ if (!pATI->useEXA)
+ {
+ xfree(pATI->ExpansionBitmapScanlinePtr[1]);
+ pATI->ExpansionBitmapScanlinePtr[0] = NULL;
pATI->ExpansionBitmapScanlinePtr[1] = NULL;
+ }
+#endif
xfree(pATI->pShadow);
pATI->pShadow = NULL;
diff --git a/src/atistruct.h b/src/atistruct.h
index 0aa37b5..08f6a5b 100644
--- a/src/atistruct.h
+++ b/src/atistruct.h
@@ -52,7 +52,12 @@
#endif /* TV_OUT */
+#ifdef USE_EXA
+#include "exa.h"
+#endif
+#ifdef USE_XAA
#include "xaa.h"
+#endif
#include "xf86Cursor.h"
#include "xf86Pci.h"
#include "xf86Resources.h"
@@ -110,7 +115,7 @@ typedef struct _ATIHWRec
/* Mach64 CPIO registers */
CARD32 crtc_h_total_disp, crtc_h_sync_strt_wid,
crtc_v_total_disp, crtc_v_sync_strt_wid,
- crtc_off_pitch, crtc_gen_cntl, dsp_config, dsp_on_off,
+ crtc_off_pitch, crtc_gen_cntl, dsp_config, dsp_on_off, mem_buf_cntl,
ovr_clr, ovr_wid_left_right, ovr_wid_top_bottom,
cur_clr0, cur_clr1, cur_offset,
cur_horz_vert_posn, cur_horz_vert_off,
@@ -142,6 +147,8 @@ typedef struct _ATIHWRec
CARD32 clr_cmp_clr, clr_cmp_msk, clr_cmp_cntl;
CARD32 context_mask, context_load_cntl;
+ CARD32 scale_3d_cntl, tex_size_pitch, tex_cntl, tex_offset;
+
/* Mach64 MMIO Block 1 registers */
CARD32 overlay_y_x_start, overlay_y_x_end, overlay_graphics_key_clr,
overlay_graphics_key_msk, overlay_key_cntl, overlay_scale_inc,
@@ -171,6 +178,38 @@ typedef struct _ATIHWRec
} ATIHWRec;
+#ifdef USE_EXA
+/*
+ * Card engine state for communication across RENDER acceleration hooks.
+ */
+typedef struct _Mach64ContextRegs3D
+{
+ CARD32 dp_mix;
+ CARD32 dp_src;
+ CARD32 dp_write_mask;
+ CARD32 dp_pix_width;
+ CARD32 dst_pitch_offset;
+
+ CARD32 scale_3d_cntl;
+
+ CARD32 tex_cntl;
+ CARD32 tex_size_pitch;
+ CARD32 tex_offset;
+
+ int tex_width; /* src/mask texture width (pixels) */
+ int tex_height; /* src/mask texture height (pixels) */
+
+ Bool frag_src; /* solid src uses fragment color */
+ Bool frag_mask; /* solid mask uses fragment color */
+ CARD32 frag_color; /* solid src/mask color */
+
+ Bool color_alpha; /* the alpha value is contained in the color
+ channels instead of the alpha channel */
+
+ PictTransform *transform;
+} Mach64ContextRegs3D;
+#endif /* USE_EXA */
+
/*
* This structure defines the driver's private area.
*/
@@ -296,15 +335,27 @@ typedef struct _ATIRec
/*
* XAA interface.
*/
+ Bool useEXA;
+#ifdef USE_EXA
+ ExaDriverPtr pExa;
+#endif
+#ifdef USE_XAA
XAAInfoRecPtr pXAAInfo;
+#endif
int nAvailableFIFOEntries, nFIFOEntries, nHostFIFOEntries;
CARD8 EngineIsBusy, EngineIsLocked, XModifier;
CARD32 dst_cntl; /* For SetupFor/Subsequent communication */
CARD32 sc_left_right, sc_top_bottom;
CARD16 sc_left, sc_right, sc_top, sc_bottom; /* Current scissors */
pointer pHOST_DATA; /* Current HOST_DATA_* transfer window address */
+#ifdef USE_XAA
CARD32 *ExpansionBitmapScanlinePtr[2];
int ExpansionBitmapWidth;
+#endif
+#ifdef USE_EXA
+ Bool RenderAccelEnabled;
+ Mach64ContextRegs3D m3d;
+#endif
/*
* Cursor-related definitions.
@@ -382,7 +433,8 @@ typedef struct _ATIRec
* XVideo-related data.
*/
DevUnion XVPortPrivate[1];
- FBLinearPtr pXVBuffer;
+ pointer pXVBuffer; /* USE_EXA: ExaOffscreenArea*
+ USE_XAA: FBLinearPtr */
RegionRec VideoClip;
int SurfacePitch, SurfaceOffset;
CARD8 AutoPaint, DoubleBuffer, CurrentBuffer, ActiveSurface;
@@ -430,16 +482,16 @@ typedef struct _ATIRec
/*
* Driver options.
*/
- CARD8 OptionAccel:1; /* Use hardware draw engine */
- CARD8 OptionBIOSDisplay:1; /* Allow BIOS interference */
- CARD8 OptionBlend:1; /* Force horizontal blending */
- CARD8 OptionCRTDisplay:1; /* Display on both CRT and digital panel */
- CARD8 OptionCSync:1; /* Use composite sync */
- CARD8 OptionDevel:1; /* Intentionally undocumented */
+ unsigned int OptionAccel:1; /* Use hardware draw engine */
+ unsigned int OptionBIOSDisplay:1; /* Allow BIOS interference */
+ unsigned int OptionBlend:1; /* Force horizontal blending */
+ unsigned int OptionCRTDisplay:1; /* Display on both CRT & DFP */
+ unsigned int OptionCSync:1; /* Use composite sync */
+ unsigned int OptionDevel:1; /* Intentionally undocumented */
#ifndef AVOID_CPIO
- CARD8 OptionLinear:1; /* Use linear fb aperture when available */
+ unsigned int OptionLinear:1; /* Use linear aperture if available */
#endif /* AVOID_CPIO */
@@ -450,12 +502,12 @@ typedef struct _ATIRec
#endif /* TV_OUT */
- CARD8 OptionMMIOCache:1; /* Cache MMIO writes */
- CARD8 OptionTestMMIOCache:1;/* Test MMIO cache integrity */
- CARD8 OptionPanelDisplay:1; /* Prefer digital panel over CRT */
- CARD8 OptionProbeClocks:1; /* Force probe for fixed clocks */
- CARD8 OptionShadowFB:1; /* Use shadow frame buffer */
- CARD8 OptionLCDSync:1; /* Temporary */
+ unsigned int OptionMMIOCache:1; /* Cache MMIO writes */
+ unsigned int OptionTestMMIOCache:1;/* Test MMIO cache integrity */
+ unsigned int OptionPanelDisplay:1; /* Prefer digital panel over CRT */
+ unsigned int OptionProbeClocks:1; /* Force probe for fixed clocks */
+ unsigned int OptionShadowFB:1; /* Use shadow frame buffer */
+ unsigned int OptionLCDSync:1; /* Temporary */
/*
* State flags.
@@ -485,10 +537,12 @@ typedef struct _ATIRec
Bool have3DWindows;
/* offscreen memory management */
+#ifdef USE_XAA
int backLines;
FBAreaPtr backArea;
int depthTexLines;
FBAreaPtr depthTexArea;
+#endif
CARD8 OptionIsPCI; /* Force PCI mode */
CARD8 OptionDMAMode; /* async, sync, mmio */
CARD8 OptionAGPMode; /* AGP mode */
diff --git a/src/atituner.h b/src/atituner.h
index 2b40d30..0c3c67f 100644
--- a/src/atituner.h
+++ b/src/atituner.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h,v 1.1 2003/07/24 22:08:28 tsi Exp $ */
/*
- * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/ativersion.h b/src/ativersion.h
index 59c5995..b822072 100644
--- a/src/ativersion.h
+++ b/src/ativersion.h
@@ -26,9 +26,6 @@
#undef ATI_NAME
#undef ATI_DRIVER_NAME
-#undef ATI_VERSION_MAJOR
-#undef ATI_VERSION_MINOR
-#undef ATI_VERSION_PATCH
#undef ATI_VERSION_CURRENT
#undef ATI_VERSION_EVALUATE
#undef ATI_VERSION_STRINGIFY
@@ -37,10 +34,6 @@
#define ATI_NAME "ATI"
#define ATI_DRIVER_NAME "ati"
-#define ATI_VERSION_MAJOR 6
-#define ATI_VERSION_MINOR 5
-#define ATI_VERSION_PATCH 8
-
#ifndef ATI_VERSION_EXTRA
#define ATI_VERSION_EXTRA ""
#endif
diff --git a/src/ativga.c b/src/ativga.c
index 91ac302..f9e57d1 100644
--- a/src/ativga.c
+++ b/src/ativga.c
@@ -1,5 +1,5 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c,v 1.20 2003/04/23 21:51:31 tsi Exp $ */
-/* $XdotOrg: driver/xf86-video-ati/src/ativga.c,v 1.6 2005/07/11 02:29:45 ajax Exp $ */
+/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c,v 1.4 2005/06/04 20:26:28 alanc Exp $ */
/*
* Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
diff --git a/src/r128.h b/src/r128.h
index eced5c7..6398340 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -38,6 +38,7 @@
#ifndef _R128_H_
#define _R128_H_
+#include <unistd.h>
#include "xf86str.h"
/* PCI support */
@@ -337,7 +338,7 @@ typedef struct {
Bool IsPCI; /* Current card is a PCI card */
drmSize pciSize;
drm_handle_t pciMemHandle;
- unsigned char *PCI; /* Map */
+ drmAddress PCI; /* Map */
Bool allowPageFlip; /* Enable 3d page flipping */
Bool have3DWindows; /* Are there any 3d clients? */
@@ -346,7 +347,7 @@ typedef struct {
drmSize agpSize;
drm_handle_t agpMemHandle; /* Handle from drmAgpAlloc */
unsigned long agpOffset;
- unsigned char *AGP; /* Map */
+ drmAddress AGP; /* Map */
int agpMode;
Bool CCEInUse; /* CCE is currently active */
@@ -360,20 +361,20 @@ typedef struct {
drm_handle_t ringHandle; /* Handle from drmAddMap */
drmSize ringMapSize; /* Size of map */
int ringSize; /* Size of ring (in MB) */
- unsigned char *ring; /* Map */
+ drmAddress ring; /* Map */
int ringSizeLog2QW;
unsigned long ringReadOffset; /* Offset into AGP space */
drm_handle_t ringReadPtrHandle; /* Handle from drmAddMap */
drmSize ringReadMapSize; /* Size of map */
- unsigned char *ringReadPtr; /* Map */
+ drmAddress ringReadPtr; /* Map */
/* CCE vertex/indirect buffer data */
unsigned long bufStart; /* Offset into AGP space */
drm_handle_t bufHandle; /* Handle from drmAddMap */
drmSize bufMapSize; /* Size of map */
int bufSize; /* Size of buffers (in MB) */
- unsigned char *buf; /* Map */
+ drmAddress buf; /* Map */
int bufNumBufs; /* Number of buffers */
drmBufMapPtr buffers; /* Buffer map */
@@ -382,7 +383,7 @@ typedef struct {
drm_handle_t agpTexHandle; /* Handle from drmAddMap */
drmSize agpTexMapSize; /* Size of map */
int agpTexSize; /* Size of AGP tex space (in MB) */
- unsigned char *agpTex; /* Map */
+ drmAddress agpTex; /* Map */
int log2AGPTexGran;
/* CCE 2D accleration */
diff --git a/src/r128_accel.c b/src/r128_accel.c
index fe284e1..351594b 100644
--- a/src/r128_accel.c
+++ b/src/r128_accel.c
@@ -84,6 +84,8 @@
#define R128_TRAPEZOIDS 0 /* Trapezoids don't work */
/* Driver data structures */
+#include <errno.h>
+
#include "r128.h"
#include "r128_reg.h"
#include "r128_probe.h"
@@ -219,6 +221,9 @@ void R128WaitForIdle(ScrnInfoPtr pScrn)
INREG(R128_GUI_PROBE)));
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Idle timed out, resetting engine...\n");
+#ifdef XF86DRI
+ R128CCE_STOP(pScrn, info);
+#endif
R128EngineReset(pScrn);
#ifdef XF86DRI
R128CCE_RESET(pScrn, info);
diff --git a/src/r128_dga.c b/src/r128_dga.c
index ec85480..ffc2533 100644
--- a/src/r128_dga.c
+++ b/src/r128_dga.c
@@ -9,6 +9,8 @@
#include "config.h"
#endif
+#include <string.h>
+
/* Driver data structures */
#include "r128.h"
#include "r128_probe.h"
diff --git a/src/r128_dri.c b/src/r128_dri.c
index c516bec..f3915f6 100644
--- a/src/r128_dri.c
+++ b/src/r128_dri.c
@@ -32,6 +32,9 @@
#include "config.h"
#endif
+#include <string.h>
+#include <stdio.h>
+
/*
* Authors:
* Kevin E. Martin <martin@valinux.com>
@@ -486,7 +489,7 @@ static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[agp] %d kB allocated with handle 0x%08lx\n",
+ "[agp] %d kB allocated with handle 0x%08x\n",
info->agpSize*1024, info->agpMemHandle);
if (drmAgpBind(info->drmFD, info->agpMemHandle, info->agpOffset) < 0) {
@@ -529,7 +532,7 @@ static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
"[agp] ring handle = 0x%08x\n", info->ringHandle);
if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
- (drmAddressPtr)&info->ring) < 0) {
+ &info->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n");
return FALSE;
}
@@ -548,7 +551,7 @@ static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
info->ringReadPtrHandle);
if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
- (drmAddressPtr)&info->ringReadPtr) < 0) {
+ &info->ringReadPtr) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map ring read ptr\n");
return FALSE;
@@ -564,11 +567,11 @@ static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[agp] vertex/indirect buffers handle = 0x%08lx\n",
+ "[agp] vertex/indirect buffers handle = 0x%08x\n",
info->bufHandle);
if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
- (drmAddressPtr)&info->buf) < 0) {
+ &info->buf) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map vertex/indirect buffers\n");
return FALSE;
@@ -584,11 +587,11 @@ static Bool R128DRIAgpInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[agp] AGP texture map handle = 0x%08lx\n",
+ "[agp] AGP texture map handle = 0x%08x\n",
info->agpTexHandle);
if (drmMap(info->drmFD, info->agpTexHandle, info->agpTexMapSize,
- (drmAddressPtr)&info->agpTex) < 0) {
+ &info->agpTex) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map AGP texture map\n");
return FALSE;
@@ -646,7 +649,7 @@ static Bool R128DRIPciInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[pci] %d kB allocated with handle 0x%08lx\n",
+ "[pci] %d kB allocated with handle 0x%08x\n",
info->agpSize*1024, info->pciMemHandle);
/* Initialize the CCE ring buffer data */
@@ -670,10 +673,10 @@ static Bool R128DRIPciInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[pci] ring handle = 0x%08lx\n", info->ringHandle);
+ "[pci] ring handle = 0x%08x\n", info->ringHandle);
if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
- (drmAddressPtr)&info->ring) < 0) {
+ &info->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n");
return FALSE;
}
@@ -691,11 +694,11 @@ static Bool R128DRIPciInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[pci] ring read ptr handle = 0x%08lx\n",
+ "[pci] ring read ptr handle = 0x%08x\n",
info->ringReadPtrHandle);
if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
- (drmAddressPtr)&info->ringReadPtr) < 0) {
+ &info->ringReadPtr) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map ring read ptr\n");
return FALSE;
@@ -714,11 +717,11 @@ static Bool R128DRIPciInit(R128InfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[pci] vertex/indirect buffers handle = 0x%08lx\n",
+ "[pci] vertex/indirect buffers handle = 0x%08x\n",
info->bufHandle);
if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
- (drmAddressPtr)&info->buf) < 0) {
+ &info->buf) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map vertex/indirect buffers\n");
return FALSE;
@@ -1034,7 +1037,7 @@ Bool R128DRIScreenInit(ScreenPtr pScreen)
pDRIInfo->ddxDriverMajorVersion = R128_VERSION_MAJOR;
pDRIInfo->ddxDriverMinorVersion = R128_VERSION_MINOR;
pDRIInfo->ddxDriverPatchVersion = R128_VERSION_PATCH;
- pDRIInfo->frameBufferPhysicalAddress = info->LinearAddr;
+ pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr;
pDRIInfo->frameBufferSize = info->FbMapSize;
pDRIInfo->frameBufferStride = (pScrn->displayWidth *
info->CurrentLayout.pixel_bytes);
diff --git a/src/r128_dripriv.h b/src/r128_dripriv.h
index 043e7bd..7f84987 100644
--- a/src/r128_dripriv.h
+++ b/src/r128_dripriv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.2 2000/11/09 03:24:35 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.3 2000/11/18 19:37:11 tsi Exp $ */
/*
* Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
* Precision Insight, Inc., Cedar Park, Texas, and
diff --git a/src/r128_driver.c b/src/r128_driver.c
index c4fc27d..49c0d86 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -63,6 +63,8 @@
* Dualhead support - Alex Deucher <agd5f@yahoo.com>
*/
+#include <string.h>
+#include <stdio.h>
/* Driver data structures */
#include "r128.h"
@@ -1375,8 +1377,10 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn)
static Bool R128PreInitDDC(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10)
{
+#if !defined(__powerpc__) && !defined(__alpha__)
R128InfoPtr info = R128PTR(pScrn);
vbeInfoPtr pVbe;
+#endif
if (!xf86LoadSubModule(pScrn, "ddc")) return FALSE;
xf86LoaderReqSymLists(ddcSymbols, NULL);
@@ -3519,7 +3523,7 @@ static Bool R128InitCrtcRegisters(ScrnInfoPtr pScrn, R128SavePtr save,
int vsync_wid;
int hsync_fudge_default[] = { 0x00, 0x12, 0x09, 0x09, 0x06, 0x05 };
int hsync_fudge_fp[] = { 0x12, 0x11, 0x09, 0x09, 0x05, 0x05 };
- int hsync_fudge_fp_crt[] = { 0x12, 0x10, 0x08, 0x08, 0x04, 0x04 };
+// int hsync_fudge_fp_crt[] = { 0x12, 0x10, 0x08, 0x08, 0x04, 0x04 };
switch (info->CurrentLayout.pixel_code) {
case 4: format = 1; break;
diff --git a/src/r128_probe.c b/src/r128_probe.c
index ff6f75e..daad9db 100644
--- a/src/r128_probe.c
+++ b/src/r128_probe.c
@@ -32,6 +32,8 @@
#include "config.h"
#endif
+#include <string.h>
+
/*
* Authors:
* Rickard E. Faith <faith@valinux.com>
@@ -48,7 +50,6 @@
#include "atipciids.h"
#include "xf86.h"
-#include "xf86_ansic.h"
#include "xf86Resources.h"
#include "r128_chipset.h"
diff --git a/src/r128_reg.h b/src/r128_reg.h
index 721a72c..5dc2628 100644
--- a/src/r128_reg.h
+++ b/src/r128_reg.h
@@ -48,9 +48,6 @@
#ifndef _R128_REG_H_
#define _R128_REG_H_
-#ifdef XFree86Module
-#include "xf86_ansic.h"
-#endif
#include "compiler.h"
/* Memory mapped register access macros */
diff --git a/src/r128_version.h b/src/r128_version.h
index 1bdcae3..9e5f740 100644
--- a/src/r128_version.h
+++ b/src/r128_version.h
@@ -38,8 +38,8 @@
#define R128_DRIVER_NAME "r128"
#define R128_VERSION_MAJOR 4
-#define R128_VERSION_MINOR 0
-#define R128_VERSION_PATCH 4
+#define R128_VERSION_MINOR 1
+#define R128_VERSION_PATCH 0
#ifndef R128_VERSION_EXTRA
#define R128_VERSION_EXTRA ""
diff --git a/src/r128_video.c b/src/r128_video.c
index 7f4912f..c814e49 100644
--- a/src/r128_video.c
+++ b/src/r128_video.c
@@ -4,6 +4,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "r128.h"
#include "r128_reg.h"
@@ -35,7 +37,7 @@ static void R128QueryBestSize(ScrnInfoPtr, Bool, short, short, short, short,
unsigned int *, unsigned int *, pointer);
static int R128PutImage(ScrnInfoPtr, short, short, short, short, short,
short, short, short, int, unsigned char*, short,
- short, Bool, RegionPtr, pointer);
+ short, Bool, RegionPtr, pointer, DrawablePtr);
static int R128QueryImageAttributes(ScrnInfoPtr, int, unsigned short *,
unsigned short *, int *, int *);
@@ -769,7 +771,8 @@ R128PutImage(
int id, unsigned char* buf,
short width, short height,
Bool Sync,
- RegionPtr clipBoxes, pointer data
+ RegionPtr clipBoxes, pointer data,
+ DrawablePtr pDraw
){
R128InfoPtr info = R128PTR(pScrn);
R128PortPrivPtr pPriv = (R128PortPrivPtr)data;
diff --git a/src/radeon.h b/src/radeon.h
index 02098b6..6402e48 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -38,8 +38,10 @@
#ifndef _RADEON_H_
#define _RADEON_H_
+#include <stdlib.h> /* For abs() */
+#include <unistd.h> /* For usleep() */
+
#include "xf86str.h"
-#include "xf86_ansic.h"
#include "compiler.h"
#include "xf86fbman.h"
@@ -77,6 +79,74 @@
#include "picturestr.h"
#endif
+typedef enum {
+ OPTION_NOACCEL,
+ OPTION_SW_CURSOR,
+ OPTION_DAC_6BIT,
+ OPTION_DAC_8BIT,
+#ifdef XF86DRI
+ OPTION_BUS_TYPE,
+ OPTION_CP_PIO,
+ OPTION_USEC_TIMEOUT,
+ OPTION_AGP_MODE,
+ OPTION_AGP_FW,
+ OPTION_GART_SIZE,
+ OPTION_GART_SIZE_OLD,
+ OPTION_RING_SIZE,
+ OPTION_BUFFER_SIZE,
+ OPTION_DEPTH_MOVE,
+ OPTION_PAGE_FLIP,
+ OPTION_NO_BACKBUFFER,
+ OPTION_XV_DMA,
+ OPTION_FBTEX_PERCENT,
+ OPTION_DEPTH_BITS,
+#ifdef USE_EXA
+ OPTION_ACCEL_DFS,
+#endif
+#endif
+ OPTION_PANEL_OFF,
+ OPTION_DDC_MODE,
+ OPTION_MONITOR_LAYOUT,
+ OPTION_IGNORE_EDID,
+ OPTION_FBDEV,
+ OPTION_MERGEDFB,
+ OPTION_CRT2HSYNC,
+ OPTION_CRT2VREFRESH,
+ OPTION_CRT2POS,
+ OPTION_METAMODES,
+ OPTION_MERGEDDPI,
+ OPTION_RADEONXINERAMA,
+ OPTION_CRT2ISSCRN0,
+ OPTION_MERGEDFBNONRECT,
+ OPTION_MERGEDFBMOUSER,
+ OPTION_DISP_PRIORITY,
+ OPTION_PANEL_SIZE,
+ OPTION_MIN_DOTCLOCK,
+ OPTION_COLOR_TILING,
+#ifdef XvExtension
+ OPTION_VIDEO_KEY,
+ OPTION_RAGE_THEATRE_CRYSTAL,
+ OPTION_RAGE_THEATRE_TUNER_PORT,
+ OPTION_RAGE_THEATRE_COMPOSITE_PORT,
+ OPTION_RAGE_THEATRE_SVIDEO_PORT,
+ OPTION_TUNER_TYPE,
+ OPTION_RAGE_THEATRE_MICROC_PATH,
+ OPTION_RAGE_THEATRE_MICROC_TYPE,
+#endif
+#ifdef RENDER
+ OPTION_RENDER_ACCEL,
+ OPTION_SUBPIXEL_ORDER,
+#endif
+ OPTION_SHOWCACHE,
+ OPTION_DYNAMIC_CLOCKS,
+ OPTION_BIOS_HOTKEYS,
+ OPTION_VGA_ACCESS,
+ OPTION_REVERSE_DDC,
+ OPTION_LVDS_PROBE_PLL,
+ OPTION_ACCELMETHOD,
+ OPTION_CONSTANTDPI
+} RADEONOpts;
+
/* ------- mergedfb support ------------- */
/* Psuedo Xinerama support */
#define NEED_REPLIES /* ? */
@@ -105,7 +175,6 @@ typedef struct _region {
#define RADEON_DEBUG 1 /* Turn off debugging output */
#define RADEON_IDLE_RETRY 16 /* Fall out of idle loops after this count */
#define RADEON_TIMEOUT 2000000 /* Fall out of wait loops after this count */
-#define RADEON_MMIOSIZE 0x80000
/* Buffer are aligned on 4096 byte boundaries */
#define RADEON_BUFFER_ALIGN 0x00000fff
@@ -333,7 +402,8 @@ typedef struct {
unsigned long LinearAddr; /* Frame buffer physical address */
unsigned long MMIOAddr; /* MMIO region physical address */
unsigned long BIOSAddr; /* BIOS physical address */
- unsigned int fbLocation;
+ CARD32 fbLocation;
+ CARD32 gartLocation;
CARD32 mc_fb_location;
CARD32 mc_agp_location;
@@ -347,6 +417,7 @@ typedef struct {
CARD32 MemCntl;
CARD32 BusCntl;
+ unsigned long MMIOSize; /* MMIO region physical address */
unsigned long FbMapSize; /* Size of frame buffer, in bytes */
unsigned long FbSecureSize; /* Size of secured fb area at end of
framebuffer */
@@ -409,21 +480,21 @@ typedef struct {
Bool PaletteSavedOnVT; /* Palette saved on last VT switch */
#ifdef USE_EXA
- ExaDriverRec exa;
+ ExaDriverPtr exa;
int engineMode;
#define EXA_ENGINEMODE_UNKNOWN 0
#define EXA_ENGINEMODE_2D 1
#define EXA_ENGINEMODE_3D 2
+#ifdef XF86DRI
+ Bool accelDFS;
+#endif
#endif
#ifdef USE_XAA
XAAInfoRecPtr accel;
#endif
Bool accelOn;
xf86CursorInfoPtr cursor;
-#ifdef USE_EXA
- ExaOffscreenArea *cursorArea;
-#endif
- unsigned long cursor_offset;
+ CARD32 cursor_offset;
#ifdef USE_XAA
unsigned long cursor_end;
#endif
@@ -539,20 +610,20 @@ typedef struct {
drm_handle_t ringHandle; /* Handle from drmAddMap */
drmSize ringMapSize; /* Size of map */
int ringSize; /* Size of ring (in MB) */
- unsigned char *ring; /* Map */
+ drmAddress ring; /* Map */
int ringSizeLog2QW;
unsigned long ringReadOffset; /* Offset into GART space */
drm_handle_t ringReadPtrHandle; /* Handle from drmAddMap */
drmSize ringReadMapSize; /* Size of map */
- unsigned char *ringReadPtr; /* Map */
+ drmAddress ringReadPtr; /* Map */
/* CP vertex/indirect buffer data */
unsigned long bufStart; /* Offset into GART space */
drm_handle_t bufHandle; /* Handle from drmAddMap */
drmSize bufMapSize; /* Size of map */
int bufSize; /* Size of buffers (in MB) */
- unsigned char *buf; /* Map */
+ drmAddress buf; /* Map */
int bufNumBufs; /* Number of buffers */
drmBufMapPtr buffers; /* Buffer map */
@@ -561,7 +632,7 @@ typedef struct {
drm_handle_t gartTexHandle; /* Handle from drmAddMap */
drmSize gartTexMapSize; /* Size of map */
int gartTexSize; /* Size of GART tex space (in MB) */
- unsigned char *gartTex; /* Map */
+ drmAddress gartTex; /* Map */
int log2GARTTexGran;
/* CP accleration */
@@ -582,6 +653,7 @@ typedef struct {
int backPitch;
int depthOffset;
int depthPitch;
+ int depthBits;
int textureOffset;
int textureSize;
int log2TexGran;
@@ -709,6 +781,11 @@ typedef struct {
Bool NonRect, HaveNonRect, HaveOffsRegions, MouseRestrictions;
region NonRectDead, OffDead1, OffDead2;
+ int constantDPI; /* -1 = auto, 0 = off, 1 = on */
+ int RADEONDPIVX, RADEONDPIVY;
+ RADEONScrn2Rel MergedDPISRel;
+ int RADEONMergedDPIVX, RADEONMergedDPIVY, RADEONMergedDPIRot;
+
/* special handlings for DELL triple-head server */
Bool IsDellServer;
@@ -777,6 +854,13 @@ extern void R300CGWorkaround(ScrnInfoPtr pScrn);
extern void RADEONPllErrataAfterIndex(RADEONInfoPtr info);
extern void RADEONPllErrataAfterData(RADEONInfoPtr info);
+extern Bool RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10);
+extern Bool RADEONGetConnectorInfoFromBIOS (ScrnInfoPtr pScrn);
+extern Bool RADEONGetClockInfoFromBIOS (ScrnInfoPtr pScrn);
+extern Bool RADEONGetLVDSInfoFromBIOS (ScrnInfoPtr pScrn);
+extern Bool RADEONGetTMDSInfoFromBIOS (ScrnInfoPtr pScrn);
+extern Bool RADEONGetHardCodedEDIDFromBIOS (ScrnInfoPtr pScrn);
+
#ifdef XF86DRI
#ifdef USE_XAA
extern void RADEONAccelInitCP(ScreenPtr pScreen, XAAInfoRecPtr a);
@@ -795,9 +879,12 @@ extern void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard);
extern void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn);
extern int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info);
-extern CARD8* RADEONHostDataBlit(ScrnInfoPtr pScrn, unsigned int bpp,
- unsigned int w, CARD32 dstPitch,
- CARD32 *bufPitch, CARD8 **dst,
+extern void RADEONHostDataParams(ScrnInfoPtr pScrn, CARD8 *dst,
+ CARD32 pitch, int cpp,
+ CARD32 *dstPitchOffset, int *x, int *y);
+extern CARD8* RADEONHostDataBlit(ScrnInfoPtr pScrn, unsigned int cpp,
+ unsigned int w, CARD32 dstPitchOff,
+ CARD32 *bufPitch, int x, int *y,
unsigned int *h, unsigned int *hpass);
extern void RADEONHostDataBlitCopyPass(ScrnInfoPtr pScrn,
unsigned int bpp,
@@ -808,13 +895,6 @@ extern void RADEONHostDataBlitCopyPass(ScrnInfoPtr pScrn,
extern void RADEONCopySwap(CARD8 *dst, CARD8 *src, unsigned int size,
int swap);
-extern Bool RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10);
-extern Bool RADEONGetConnectorInfoFromBIOS (ScrnInfoPtr pScrn);
-extern Bool RADEONGetClockInfoFromBIOS (ScrnInfoPtr pScrn);
-extern Bool RADEONGetLVDSInfoFromBIOS (ScrnInfoPtr pScrn);
-extern Bool RADEONGetTMDSInfoFromBIOS (ScrnInfoPtr pScrn);
-extern Bool RADEONGetHardCodedEDIDFromBIOS (ScrnInfoPtr pScrn);
-
#define RADEONCP_START(pScrn, info) \
do { \
int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_START); \
@@ -882,7 +962,7 @@ do { \
#define BEGIN_RING(n) do { \
if (RADEON_VERBOSE) { \
xf86DrvMsg(pScrn->scrnIndex, X_INFO, \
- "BEGIN_RING(%d) in %s\n", n, __FUNCTION__); \
+ "BEGIN_RING(%d) in %s\n", (unsigned int)n, __FUNCTION__);\
} \
if (++info->dma_begin_count != 1) { \
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, \
diff --git a/src/radeon_accel.c b/src/radeon_accel.c
index 0e0ede9..6309771 100644
--- a/src/radeon_accel.c
+++ b/src/radeon_accel.c
@@ -74,6 +74,8 @@
*
*/
+#include <errno.h>
+#include <string.h>
/* Driver data structures */
#include "radeon.h"
#include "radeon_reg.h"
@@ -94,6 +96,7 @@
#include "xf86.h"
+#ifdef USE_XAA
static struct {
int rop;
int pattern;
@@ -115,6 +118,7 @@ static struct {
{ RADEON_ROP3_DSan, RADEON_ROP3_DPan }, /* GXnand */
{ RADEON_ROP3_ONE, RADEON_ROP3_ONE } /* GXset */
};
+#endif
/* The FIFO has 64 slots. This routines waits until at least `entries'
* of these slots are empty.
@@ -131,7 +135,7 @@ void RADEONWaitForFifoFunction(ScrnInfoPtr pScrn, int entries)
INREG(RADEON_RBBM_STATUS) & RADEON_RBBM_FIFOCNT_MASK;
if (info->fifo_slots >= entries) return;
}
- RADEONTRACE(("FIFO timed out: %d entries, stat=0x%08x\n",
+ RADEONTRACE(("FIFO timed out: %u entries, stat=0x%08x\n",
INREG(RADEON_RBBM_STATUS) & RADEON_RBBM_FIFOCNT_MASK,
INREG(RADEON_RBBM_STATUS)));
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
@@ -154,16 +158,16 @@ void RADEONEngineFlush(ScrnInfoPtr pScrn)
unsigned char *RADEONMMIO = info->MMIO;
int i;
- OUTREGP(RADEON_RB2D_DSTCACHE_CTLSTAT,
- RADEON_RB2D_DC_FLUSH_ALL,
- ~RADEON_RB2D_DC_FLUSH_ALL);
+ OUTREGP(RADEON_RB3D_DSTCACHE_CTLSTAT,
+ RADEON_RB3D_DC_FLUSH_ALL,
+ ~RADEON_RB3D_DC_FLUSH_ALL);
for (i = 0; i < RADEON_TIMEOUT; i++) {
- if (!(INREG(RADEON_RB2D_DSTCACHE_CTLSTAT) & RADEON_RB2D_DC_BUSY))
+ if (!(INREG(RADEON_RB3D_DSTCACHE_CTLSTAT) & RADEON_RB3D_DC_BUSY))
break;
}
if (i == RADEON_TIMEOUT) {
RADEONTRACE(("DC flush timeout: %x\n",
- INREG(RADEON_RB2D_DSTCACHE_CTLSTAT)));
+ INREG(RADEON_RB3D_DSTCACHE_CTLSTAT)));
}
}
@@ -254,8 +258,8 @@ void RADEONEngineReset(ScrnInfoPtr pScrn)
RADEON_SOFT_RESET_E2));
INREG(RADEON_RBBM_SOFT_RESET);
OUTREG(RADEON_RBBM_SOFT_RESET, 0);
- tmp = INREG(RADEON_RB2D_DSTCACHE_MODE);
- OUTREG(RADEON_RB2D_DSTCACHE_MODE, tmp | (1 << 17)); /* FIXME */
+ tmp = INREG(RADEON_RB3D_DSTCACHE_MODE);
+ OUTREG(RADEON_RB3D_DSTCACHE_MODE, tmp | (1 << 17)); /* FIXME */
} else {
OUTREG(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset |
RADEON_SOFT_RESET_CP |
@@ -602,6 +606,22 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
&indirect, sizeof(drmRadeonIndirect));
}
+/** \brief Calculate HostDataBlit parameters from pointer and pitch
+ *
+ * This is a helper for the trivial HostDataBlit users that don't need to worry
+ * about tiling etc.
+ */
+void
+RADEONHostDataParams(ScrnInfoPtr pScrn, CARD8 *dst, CARD32 pitch, int cpp,
+ CARD32 *dstPitchOff, int *x, int *y)
+{
+ RADEONInfoPtr info = RADEONPTR( pScrn );
+ CARD32 dstOffs = dst - info->FB + info->fbLocation;
+
+ *dstPitchOff = pitch << 16 | (dstOffs & ~RADEON_BUFFER_ALIGN) >> 10;
+ *y = ( dstOffs & RADEON_BUFFER_ALIGN ) / pitch;
+ *x = ( ( dstOffs & RADEON_BUFFER_ALIGN ) - ( *y * pitch ) ) / cpp;
+}
/* Set up a hostdata blit to transfer data from system memory to the
* framebuffer. Returns the address where the data can be written to and sets
@@ -610,16 +630,17 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
CARD8*
RADEONHostDataBlit(
ScrnInfoPtr pScrn,
- unsigned int bpp,
+ unsigned int cpp,
unsigned int w,
- CARD32 dstPitch,
+ CARD32 dstPitchOff,
CARD32 *bufPitch,
- CARD8* *dst,
+ int x,
+ int *y,
unsigned int *h,
unsigned int *hpass
){
RADEONInfoPtr info = RADEONPTR( pScrn );
- CARD32 format, dst_offs, dwords, x, y;
+ CARD32 format, dwords;
CARD8 *ret;
RING_LOCALS;
@@ -628,7 +649,7 @@ RADEONHostDataBlit(
return NULL;
}
- switch ( bpp )
+ switch ( cpp )
{
case 4:
format = RADEON_GMC_DST_32BPP;
@@ -636,17 +657,15 @@ RADEONHostDataBlit(
break;
case 2:
format = RADEON_GMC_DST_16BPP;
- w = (w + 1) & ~1;
- *bufPitch = 2 * w;
+ *bufPitch = 2 * ((w + 1) & ~1);
break;
case 1:
format = RADEON_GMC_DST_8BPP_CI;
- w = (w + 3) & ~3;
- *bufPitch = w;
+ *bufPitch = (w + 3) & ~3;
break;
default:
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
- "%s: Unsupported bpp %d!\n", __func__, bpp );
+ "%s: Unsupported cpp %d!\n", __func__, cpp );
return NULL;
}
@@ -656,10 +675,10 @@ RADEONHostDataBlit(
*/
if (info->ChipFamily < CHIP_FAMILY_R300) {
BEGIN_RING(2);
- if (bpp == 2)
+ if (cpp == 2)
OUT_RING_REG(RADEON_RBBM_GUICNTL,
RADEON_HOST_DATA_SWAP_HDW);
- else if (bpp == 1)
+ else if (cpp == 1)
OUT_RING_REG(RADEON_RBBM_GUICNTL,
RADEON_HOST_DATA_SWAP_32BIT);
else
@@ -672,16 +691,13 @@ RADEONHostDataBlit(
/*RADEON_PURGE_CACHE();
RADEON_WAIT_UNTIL_IDLE();*/
- dst_offs = *dst - info->FB + info->fbLocation;
- *hpass = min( *h, ( ( RADEON_BUFFER_SIZE - 8 * 4 ) / *bufPitch ) );
+ *hpass = min( *h, ( ( RADEON_BUFFER_SIZE - 10 * 4 ) / *bufPitch ) );
dwords = *hpass * *bufPitch / 4;
- y = ( dst_offs & 1023 ) / dstPitch;
- x = ( ( dst_offs & 1023 ) - ( y * dstPitch ) ) / bpp;
-
- BEGIN_RING( dwords + 8 );
- OUT_RING( CP_PACKET3( RADEON_CP_PACKET3_CNTL_HOSTDATA_BLT, dwords + 8 - 2 ) );
+ BEGIN_RING( dwords + 10 );
+ OUT_RING( CP_PACKET3( RADEON_CP_PACKET3_CNTL_HOSTDATA_BLT, dwords + 10 - 2 ) );
OUT_RING( RADEON_GMC_DST_PITCH_OFFSET_CNTL
+ | RADEON_GMC_DST_CLIPPING
| RADEON_GMC_BRUSH_NONE
| format
| RADEON_GMC_SRC_DATATYPE_COLOR
@@ -689,11 +705,13 @@ RADEONHostDataBlit(
| RADEON_DP_SRC_SOURCE_HOST_DATA
| RADEON_GMC_CLR_CMP_CNTL_DIS
| RADEON_GMC_WR_MSK_DIS );
- OUT_RING( dstPitch << 16 | dst_offs >> 10 );
+ OUT_RING( dstPitchOff );
+ OUT_RING( (*y << 16) | x );
+ OUT_RING( ((*y + *hpass) << 16) | (x + w) );
OUT_RING( 0xffffffff );
OUT_RING( 0xffffffff );
- OUT_RING( y << 16 | x );
- OUT_RING( *hpass << 16 | w );
+ OUT_RING( *y << 16 | x );
+ OUT_RING( *hpass << 16 | (*bufPitch / cpp) );
OUT_RING( dwords );
ret = ( CARD8* )&__head[__count];
@@ -701,7 +719,7 @@ RADEONHostDataBlit(
__count += dwords;
ADVANCE_RING();
- *dst += *hpass * dstPitch;
+ *y += *hpass;
*h -= *hpass;
return ret;
@@ -761,7 +779,7 @@ void RADEONCopySwap(CARD8 *dst, CARD8 *src, unsigned int size, int swap)
void
RADEONHostDataBlitCopyPass(
ScrnInfoPtr pScrn,
- unsigned int bpp,
+ unsigned int cpp,
CARD8 *dst,
CARD8 *src,
unsigned int hpass,
@@ -769,7 +787,9 @@ RADEONHostDataBlitCopyPass(
unsigned int srcPitch
){
+#if X_BYTE_ORDER == X_BIG_ENDIAN
RADEONInfoPtr info = RADEONPTR( pScrn );
+#endif
/* RADEONHostDataBlitCopy can return NULL ! */
if( (dst==NULL) || (src==NULL)) return;
@@ -778,7 +798,7 @@ RADEONHostDataBlitCopyPass(
{
#if X_BYTE_ORDER == X_BIG_ENDIAN
if (info->ChipFamily >= CHIP_FAMILY_R300) {
- switch(bpp) {
+ switch(cpp) {
case 1:
RADEONCopySwap(dst, src, hpass * dstPitch,
RADEON_HOST_DATA_SWAP_32BIT);
@@ -799,7 +819,7 @@ RADEONHostDataBlitCopyPass(
{
#if X_BYTE_ORDER == X_BIG_ENDIAN
if (info->ChipFamily >= CHIP_FAMILY_R300) {
- switch(bpp) {
+ switch(cpp) {
case 1:
RADEONCopySwap(dst, src, minPitch,
RADEON_HOST_DATA_SWAP_32BIT);
@@ -812,7 +832,9 @@ RADEONHostDataBlitCopyPass(
}
#endif
memcpy( dst, src, minPitch );
+#if X_BYTE_ORDER == X_BIG_ENDIAN
next:
+#endif
src += srcPitch;
dst += dstPitch;
}
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index aec55b7..1ea0550 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -30,6 +30,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -554,6 +556,17 @@ Bool RADEONGetTMDSInfoFromBIOS (ScrnInfoPtr pScrn)
info->tmds_pll[i].freq = RADEON_BIOS16(tmp+i*10+0x10);
}
return TRUE;
+ } else if (RADEON_BIOS8(tmp) == 4) {
+ int stride = 0;
+ n = RADEON_BIOS8(tmp + 5) + 1;
+ if (n > 4) n = 4;
+ for (i=0; i<n; i++) {
+ info->tmds_pll[i].value = RADEON_BIOS32(tmp+stride+0x08);
+ info->tmds_pll[i].freq = RADEON_BIOS16(tmp+stride+0x10);
+ if (i == 0) stride += 10;
+ else stride += 6;
+ }
+ return TRUE;
}
/* revision 4 has some problem as it appears in RV280,
diff --git a/src/radeon_common.h b/src/radeon_common.h
index 1160a29..74ce50e 100644
--- a/src/radeon_common.h
+++ b/src/radeon_common.h
@@ -31,7 +31,7 @@
* Converted to common header format:
* Jens Owen <jens@tungstengraphics.com>
*
- * $XdotOrg: driver/xf86-video-ati/src/radeon_common.h,v 1.8 2006/02/16 23:27:44 benh Exp $
+ * $XdotOrg: driver/xf86-video-ati/src/radeon_common.h,v 1.7 2005/09/11 08:51:38 airlied Exp $
* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h,v 1.8tsi Exp $
*
*/
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 7b72004..14260c9 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -171,7 +171,7 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn)
return;
}
}
- RADEONTRACE(("Idle timed out: %d entries, stat=0x%08x\n",
+ RADEONTRACE(("Idle timed out: %u entries, stat=0x%08x\n",
INREG(RADEON_RBBM_STATUS) & RADEON_RBBM_FIFOCNT_MASK,
INREG(RADEON_RBBM_STATUS)));
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 3c748a8..0154c30 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -106,45 +106,6 @@ static CARD32 mono_cursor_color[] = {
#endif
-#ifdef USE_EXA
-static void
-RADEONCursorSave(ScreenPtr pScreen, ExaOffscreenArea *area)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
-
- info->cursorArea = NULL;
- info->cursor_offset = 0;
-}
-
-static void
-RADEONCursorAllocEXA(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
-
- info->cursorArea = exaOffscreenAlloc(pScreen,
- CURSOR_WIDTH * 4 * CURSOR_HEIGHT,
- 128, TRUE, RADEONCursorSave, info);
-
- if (!info->cursorArea) {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Hardware cursor temporarily disabled"
- " due to insufficient offscreen memory\n");
- info->cursor_offset = 0;
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Using hardware cursor\n",
- info->cursor_offset = info->cursorArea->offset);
-
- RADEONCTRACE(("%s (0x%08x-0x%08x)\n", __func__,
- info->cursor_offset,
- info->cursor_offset + info->cursorArea->size));
- }
-}
-#endif
-
-
/* Set cursor foreground and background colors */
static void RADEONSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
{
@@ -155,9 +116,6 @@ static void RADEONSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
RADEONCTRACE(("RADEONSetCursorColors\n"));
- if (info->cursor_offset == 0)
- return;
-
#ifdef ARGB_CURSOR
/* Don't recolour cursors set with SetCursorARGB. */
if (info->cursor_argb)
@@ -200,9 +158,6 @@ static void RADEONSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
int total_y = pScrn->frameY1 - pScrn->frameY0;
int stride = 256;
- if (info->cursor_offset == 0)
- return;
-
if(info->MergedFB) {
RADEONCTRACE(("RADEONSetCursorPositionMerged\n"));
RADEONSetCursorPositionMerged(pScrn, x, y);
@@ -255,9 +210,6 @@ static void RADEONLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *image)
CARD8 chunk;
CARD32 i, j;
- if (info->cursor_offset == 0)
- return;
-
RADEONCTRACE(("RADEONLoadCursorImage (at %x)\n", info->cursor_offset));
if (!info->IsSecondary) {
@@ -342,14 +294,7 @@ static Bool RADEONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
- #ifdef USE_EXA
- if (!info->cursor_offset && info->useEXA && info->cursor)
- {
- RADEONCursorAllocEXA(pScreen);
- }
-#endif
-
- return info->cursor_offset ? TRUE : FALSE;
+ return info->cursor ? TRUE : FALSE;
}
#ifdef ARGB_CURSOR
@@ -357,9 +302,6 @@ static Bool RADEONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
static Bool RADEONUseHWCursorARGB (ScreenPtr pScreen, CursorPtr pCurs)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
-
if (RADEONUseHWCursor(pScreen, pCurs) &&
pCurs->bits->height <= CURSOR_HEIGHT && pCurs->bits->width <= CURSOR_WIDTH)
return TRUE;
@@ -379,9 +321,6 @@ static void RADEONLoadCursorARGB (ScrnInfoPtr pScrn, CursorPtr pCurs)
RADEONCTRACE(("RADEONLoadCursorARGB\n"));
- if (info->cursor_offset == 0)
- return;
-
if (!info->IsSecondary) {
save1 = INREG(RADEON_CRTC_GEN_CNTL) & ~(CARD32) (3 << 20);
save1 |= (CARD32) (2 << 20);
@@ -477,11 +416,6 @@ Bool RADEONCursorInit(ScreenPtr pScreen)
width_bytes = width * (pScrn->bitsPerPixel / 8);
height = (size_bytes + width_bytes - 1) / width_bytes;
-#ifdef USE_EXA
- if (info->useEXA) {
- RADEONCursorAllocEXA(pScreen);
- }
-#endif /* USE_EXA */
#ifdef USE_XAA
if (!info->useEXA) {
FBAreaPtr fbarea;
diff --git a/src/radeon_dga.c b/src/radeon_dga.c
index 06fc62e..f084fd3 100644
--- a/src/radeon_dga.c
+++ b/src/radeon_dga.c
@@ -43,6 +43,8 @@
*
*/
+#include <string.h>
+
/* Driver data structures */
#include "radeon.h"
#include "radeon_probe.h"
@@ -59,9 +61,9 @@ static Bool RADEON_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
static Bool RADEON_SetMode(ScrnInfoPtr, DGAModePtr);
static int RADEON_GetViewport(ScrnInfoPtr);
static void RADEON_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef USE_XAA
static void RADEON_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
static void RADEON_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
-#ifdef USE_XAA
static void RADEON_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int,
unsigned long);
#endif
@@ -361,6 +363,8 @@ static void RADEON_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags)
}
+#ifdef USE_XAA
+
static void RADEON_FillRect(ScrnInfoPtr pScrn,
int x, int y, int w, int h,
unsigned long color)
@@ -420,7 +424,6 @@ static void RADEON_BlitRect(ScrnInfoPtr pScrn,
#endif /* USE_XAA */
}
-#ifdef USE_XAA
static void RADEON_BlitTransRect(ScrnInfoPtr pScrn,
int srcx, int srcy, int w, int h,
int dstx, int dsty, unsigned long color)
@@ -441,6 +444,7 @@ static void RADEON_BlitTransRect(ScrnInfoPtr pScrn,
if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel)
RADEON_MARK_SYNC(info, pScrn);
}
+
#endif /* USE_XAA */
static Bool RADEON_OpenFramebuffer(ScrnInfoPtr pScrn,
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 7e5840c..944fddd 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -39,6 +39,8 @@
*
*/
+#include <string.h>
+#include <stdio.h>
/* Driver data structures */
#include "radeon.h"
@@ -69,7 +71,9 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen);
static void RADEONDRITransitionMultiToSingle3d(ScreenPtr pScreen);
static void RADEONDRITransitionSingleToMulti3d(ScreenPtr pScreen);
+#ifdef USE_XAA
static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+#endif
/* Initialize the visual configs that are supported by the hardware.
* These are combined with the visual configs that the indirect
@@ -127,7 +131,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
}
i = 0;
- for (db = 0; db <= use_db; db++) {
+ for (db = use_db; db >= 0; db--) {
for (accum = 0; accum <= RADEON_USE_ACCUM; accum++) {
for (stencil = 0; stencil <= RADEON_USE_STENCIL; stencil++) {
pRADEONConfigPtrs[i] = &pRADEONConfigs[i];
@@ -160,14 +164,17 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
pConfigs[i].doubleBuffer = FALSE;
pConfigs[i].stereo = FALSE;
pConfigs[i].bufferSize = 16;
- pConfigs[i].depthSize = 16;
- if (stencil)
+ pConfigs[i].depthSize = info->depthBits;
+ if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil)
+ : stencil) {
pConfigs[i].stencilSize = 8;
- else
+ } else {
pConfigs[i].stencilSize = 0;
+ }
pConfigs[i].auxBuffers = 0;
pConfigs[i].level = 0;
- if (accum || stencil) {
+ if (accum ||
+ (pConfigs[i].stencilSize && pConfigs[i].depthSize == 16)) {
pConfigs[i].visualRating = GLX_SLOW_CONFIG;
} else {
pConfigs[i].visualRating = GLX_NONE;
@@ -210,7 +217,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
}
i = 0;
- for (db = 0; db <= use_db; db++) {
+ for (db = use_db; db >= 0; db--) {
for (accum = 0; accum <= RADEON_USE_ACCUM; accum++) {
for (stencil = 0; stencil <= RADEON_USE_STENCIL; stencil++) {
pRADEONConfigPtrs[i] = &pRADEONConfigs[i];
@@ -243,16 +250,17 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
pConfigs[i].doubleBuffer = FALSE;
pConfigs[i].stereo = FALSE;
pConfigs[i].bufferSize = 32;
- if (stencil) {
- pConfigs[i].depthSize = 24;
+ pConfigs[i].depthSize = info->depthBits;
+ if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil)
+ : stencil) {
pConfigs[i].stencilSize = 8;
} else {
- pConfigs[i].depthSize = 24;
pConfigs[i].stencilSize = 0;
}
pConfigs[i].auxBuffers = 0;
pConfigs[i].level = 0;
- if (accum) {
+ if (accum ||
+ (pConfigs[i].stencilSize && pConfigs[i].depthSize == 16)) {
pConfigs[i].visualRating = GLX_SLOW_CONFIG;
} else {
pConfigs[i].visualRating = GLX_NONE;
@@ -423,6 +431,10 @@ static void RADEONLeaveServer(ScreenPtr pScreen)
info->CPInUse = FALSE;
}
+
+#ifdef USE_EXA
+ info->engineMode = EXA_ENGINEMODE_UNKNOWN;
+#endif
}
/* Contexts can be swapped by the X server if necessary. This callback
@@ -447,6 +459,8 @@ static void RADEONDRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
}
}
+#ifdef USE_XAA
+
/* The Radeon has depth tiling on all the time. Rely on surface regs to
* translate the addresses (only works if allowColorTiling is true).
*/
@@ -507,6 +521,8 @@ static void RADEONScreenToScreenCopyDepth(ScrnInfoPtr pScrn,
}
}
+#endif /* USE_XAA */
+
/* Initialize the state of the back and depth buffers */
static void RADEONDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx)
{
@@ -726,8 +742,9 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
mode &= ~RADEON_AGP_MODE_MASK;
if ((mode & RADEON_AGPv3_MODE) &&
(INREG(RADEON_AGP_STATUS) & RADEON_AGPv3_MODE)) {
+ /* only set one mode bit for AGPv3 */
switch (info->agpMode) {
- case 8: mode |= RADEON_AGPv3_8X_MODE;
+ case 8: mode |= RADEON_AGPv3_8X_MODE; break;
case 4: default: mode |= RADEON_AGPv3_4X_MODE;
}
/*TODO: need to take care of other bits valid for v3 mode
@@ -813,7 +830,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[agp] %d kB allocated with handle 0x%08lx\n",
+ "[agp] %d kB allocated with handle 0x%08x\n",
info->gartSize*1024, info->agpMemHandle);
if (drmAgpBind(info->drmFD,
@@ -834,7 +851,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[agp] ring handle = 0x%08x\n", info->ringHandle);
if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
- (drmAddressPtr)&info->ring) < 0) {
+ &info->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n");
return FALSE;
}
@@ -853,7 +870,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->ringReadPtrHandle);
if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
- (drmAddressPtr)&info->ringReadPtr) < 0) {
+ &info->ringReadPtr) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map ring read ptr\n");
return FALSE;
@@ -873,7 +890,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->bufHandle);
if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
- (drmAddressPtr)&info->buf) < 0) {
+ &info->buf) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map vertex/indirect buffers\n");
return FALSE;
@@ -893,7 +910,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->gartTexHandle);
if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
- (drmAddressPtr)&info->gartTex) < 0) {
+ &info->gartTex) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not map GART texture map\n");
return FALSE;
@@ -922,7 +939,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[pci] %d kB allocated with handle 0x%08lx\n",
+ "[pci] %d kB allocated with handle 0x%08x\n",
info->gartSize*1024, info->pciMemHandle);
RADEONDRIInitGARTValues(info);
@@ -937,7 +954,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[pci] ring handle = 0x%08x\n", info->ringHandle);
if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
- (drmAddressPtr)&info->ring) < 0) {
+ &info->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n");
return FALSE;
}
@@ -959,7 +976,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->ringReadPtrHandle);
if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
- (drmAddressPtr)&info->ringReadPtr) < 0) {
+ &info->ringReadPtr) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map ring read ptr\n");
return FALSE;
@@ -982,7 +999,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->bufHandle);
if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
- (drmAddressPtr)&info->buf) < 0) {
+ &info->buf) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map vertex/indirect buffers\n");
return FALSE;
@@ -1005,7 +1022,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
info->gartTexHandle);
if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
- (drmAddressPtr)&info->gartTex) < 0) {
+ &info->gartTex) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map GART texture map\n");
return FALSE;
@@ -1023,13 +1040,13 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen)
{
/* Map registers */
- info->registerSize = RADEON_MMIOSIZE;
+ info->registerSize = info->MMIOSize;
if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize,
DRM_REGISTERS, DRM_READ_ONLY, &info->registerHandle) < 0) {
return FALSE;
}
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] register handle = 0x%08lx\n", info->registerHandle);
+ "[drm] register handle = 0x%08x\n", info->registerHandle);
return TRUE;
}
@@ -1058,14 +1075,14 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
drmInfo.usec_timeout = info->CPusecTimeout;
drmInfo.fb_bpp = info->CurrentLayout.pixel_code;
- drmInfo.depth_bpp = info->CurrentLayout.pixel_code;
+ drmInfo.depth_bpp = (info->depthBits - 8) * 2;
drmInfo.front_offset = info->frontOffset;
drmInfo.front_pitch = info->frontPitch * cpp;
drmInfo.back_offset = info->backOffset;
drmInfo.back_pitch = info->backPitch * cpp;
drmInfo.depth_offset = info->depthOffset;
- drmInfo.depth_pitch = info->depthPitch * cpp;
+ drmInfo.depth_pitch = info->depthPitch * drmInfo.depth_bpp / 8;
drmInfo.fb_offset = info->fbHandle;
drmInfo.mmio_offset = info->registerHandle;
@@ -1092,24 +1109,18 @@ static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen)
drmRadeonMemInitHeap drmHeap;
/* Start up the simple memory manager for GART space */
- if (info->pKernelDRMVersion->version_minor >= 6) {
- drmHeap.region = RADEON_MEM_REGION_GART;
- drmHeap.start = 0;
- drmHeap.size = info->gartTexMapSize;
-
- if (drmCommandWrite(info->drmFD, DRM_RADEON_INIT_HEAP,
- &drmHeap, sizeof(drmHeap))) {
- xf86DrvMsg(pScreen->myNum, X_ERROR,
- "[drm] Failed to initialize GART heap manager\n");
- } else {
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Initialized kernel GART heap manager, %d\n",
- info->gartTexMapSize);
- }
+ drmHeap.region = RADEON_MEM_REGION_GART;
+ drmHeap.start = 0;
+ drmHeap.size = info->gartTexMapSize;
+
+ if (drmCommandWrite(info->drmFD, DRM_RADEON_INIT_HEAP,
+ &drmHeap, sizeof(drmHeap))) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR,
+ "[drm] Failed to initialize GART heap manager\n");
} else {
xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Kernel module too old (1.%d) for GART heap manager\n",
- info->pKernelDRMVersion->version_minor);
+ "[drm] Initialized kernel GART heap manager, %d\n",
+ info->gartTexMapSize);
}
}
@@ -1200,7 +1211,6 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
int major, minor, patch, fd;
int req_minor, req_patch;
char *busId;
- drmVersionPtr libVersion;
/* Check that the GLX, DRI, and DRM modules have been loaded by testing
* for known symbols in each module.
@@ -1294,11 +1304,8 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
} else if (info->IsIGP) {
req_minor = 10;
req_patch = 0;
- } else if (info->ChipFamily >= CHIP_FAMILY_R200) {
- req_minor = 5;
- req_patch = 0;
- } else {
- req_minor = 3;
+ } else { /* Many problems have been reported with 1.7 in the 2.4 kernel */
+ req_minor = 8;
req_patch = 0;
}
@@ -1338,7 +1345,6 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
RADEONInfoPtr info = RADEONPTR(pScrn);
DRIInfoPtr pDRIInfo;
RADEONDRIPtr pRADEONDRI;
- drmVersionPtr version;
info->DRICloseScreen = NULL;
@@ -1624,6 +1630,7 @@ void RADEONDRIInitPageFlip(ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
+#ifdef USE_XAA
/* Have shadowfb run only while there is 3d active. This must happen late,
* after XAAInit has been called
*/
@@ -1635,7 +1642,9 @@ void RADEONDRIInitPageFlip(ScreenPtr pScreen)
} else
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"ShadowFB initialized for Page Flipping\n");
- } else {
+ } else
+#endif /* USE_XAA */
+ {
info->allowPageFlip = 0;
}
}
@@ -1790,6 +1799,8 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
}
}
+#ifdef USE_XAA
+
/* Use callbacks from dri.c to support pageflipping mode for a single
* 3d context without need for any specific full-screen extension.
*
@@ -1825,7 +1836,6 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
if (!pSAREAPriv->pfAllowPageFlip && pSAREAPriv->pfCurrentPage == 0)
return;
-#ifdef USE_XAA
/* XXX: implement for EXA */
/* pretty much a hack. */
@@ -1851,16 +1861,17 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
}
}
info->dst_pitch_offset &= ~RADEON_DST_TILE_MACRO;
-#endif /* USE_XAA */
}
+#endif /* USE_XAA */
+
static void RADEONEnablePageFlip(ScreenPtr pScreen)
{
+#ifdef USE_XAA
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
RADEONSAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen);
-#ifdef USE_XAA
/* XXX: Fix in EXA case */
if (info->allowPageFlip) {
/* pretty much a hack. */
@@ -1911,10 +1922,10 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
+#ifdef USE_XAA
FBAreaPtr fbarea;
int width, height;
-#ifdef USE_XAA
/* EXA allocates these areas up front, so it doesn't do the following
* stuff.
*/
@@ -1988,7 +1999,7 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
RADEONChangeSurfaces(pScrn);
RADEONEnablePageFlip(pScreen);
- if (info->cursor_offset != 0)
+ if (info->cursor)
xf86ForceHWCursor (pScreen, TRUE);
}
@@ -2026,7 +2037,7 @@ static void RADEONDRITransitionTo2d(ScreenPtr pScreen)
RADEONChangeSurfaces(pScrn);
- if (info->cursor_offset != 0)
+ if (info->cursor)
xf86ForceHWCursor (pScreen, FALSE);
}
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 38ff68f..7155e42 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1,5 +1,5 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.117 2004/02/19 22:38:12 tsi Exp $ */
-/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.92.2.17 2006/04/24 07:46:37 benh Exp $ */
+/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.116 2006/04/29 21:30:23 daenzer Exp $ */
/*
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
* VA Linux Systems Inc., Fremont, California.
@@ -67,6 +67,9 @@
*
*/
+#include <string.h>
+#include <stdio.h>
+
/* Driver data structures */
#include "radeon.h"
#include "radeon_reg.h"
@@ -90,6 +93,7 @@
/* X and server generic header files */
#include "xf86.h"
+#include "xf86_ansic.h" /* For xf86getsecs() */
#include "xf86_OSproc.h"
#include "xf86RAC.h"
#include "xf86Resources.h"
@@ -129,77 +133,18 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn);
static void RADEONGetMergedFBOptions(ScrnInfoPtr pScrn);
static int RADEONValidateMergeModes(ScrnInfoPtr pScrn);
static void RADEONSetDynamicClock(ScrnInfoPtr pScrn, int mode);
+static void RADEONForceSomeClocks(ScrnInfoPtr pScrn);
static void RADEONUpdatePanelSize(ScrnInfoPtr pScrn);
static void RADEONSaveMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
+
+#ifdef XF86DRI
static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
+#endif
/* psuedo xinerama support */
extern Bool RADEONnoPanoramiXExtension;
-typedef enum {
- OPTION_NOACCEL,
- OPTION_SW_CURSOR,
- OPTION_DAC_6BIT,
- OPTION_DAC_8BIT,
-#ifdef XF86DRI
- OPTION_BUS_TYPE,
- OPTION_CP_PIO,
- OPTION_USEC_TIMEOUT,
- OPTION_AGP_MODE,
- OPTION_AGP_FW,
- OPTION_GART_SIZE,
- OPTION_GART_SIZE_OLD,
- OPTION_RING_SIZE,
- OPTION_BUFFER_SIZE,
- OPTION_DEPTH_MOVE,
- OPTION_PAGE_FLIP,
- OPTION_NO_BACKBUFFER,
- OPTION_XV_DMA,
- OPTION_FBTEX_PERCENT,
-#endif
- OPTION_PANEL_OFF,
- OPTION_DDC_MODE,
- OPTION_MONITOR_LAYOUT,
- OPTION_IGNORE_EDID,
- OPTION_FBDEV,
- OPTION_MERGEDFB,
- OPTION_CRT2HSYNC,
- OPTION_CRT2VREFRESH,
- OPTION_CRT2POS,
- OPTION_METAMODES,
- OPTION_MERGEDDPI,
- OPTION_RADEONXINERAMA,
- OPTION_CRT2ISSCRN0,
- OPTION_MERGEDFBNONRECT,
- OPTION_MERGEDFBMOUSER,
- OPTION_DISP_PRIORITY,
- OPTION_PANEL_SIZE,
- OPTION_MIN_DOTCLOCK,
- OPTION_COLOR_TILING,
-#ifdef XvExtension
- OPTION_VIDEO_KEY,
- OPTION_RAGE_THEATRE_CRYSTAL,
- OPTION_RAGE_THEATRE_TUNER_PORT,
- OPTION_RAGE_THEATRE_COMPOSITE_PORT,
- OPTION_RAGE_THEATRE_SVIDEO_PORT,
- OPTION_TUNER_TYPE,
- OPTION_RAGE_THEATRE_MICROC_PATH,
- OPTION_RAGE_THEATRE_MICROC_TYPE,
-#endif
-#ifdef RENDER
- OPTION_RENDER_ACCEL,
- OPTION_SUBPIXEL_ORDER,
-#endif
- OPTION_SHOWCACHE,
- OPTION_DYNAMIC_CLOCKS,
- OPTION_BIOS_HOTKEYS,
- OPTION_VGA_ACCESS,
- OPTION_REVERSE_DDC,
- OPTION_LVDS_PROBE_PLL,
- OPTION_ACCELMETHOD
-} RADEONOpts;
-
static const OptionInfoRec RADEONOptions[] = {
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE },
@@ -220,6 +165,10 @@ static const OptionInfoRec RADEONOptions[] = {
{ OPTION_NO_BACKBUFFER, "NoBackBuffer", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_XV_DMA, "DMAForXv", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_FBTEX_PERCENT, "FBTexPercent", OPTV_INTEGER, {0}, FALSE },
+ { OPTION_DEPTH_BITS, "DepthBits", OPTV_INTEGER, {0}, FALSE },
+#ifdef USE_EXA
+ { OPTION_ACCEL_DFS, "AccelDFS", OPTV_BOOLEAN, {0}, FALSE },
+#endif
#endif
{ OPTION_PANEL_OFF, "PanelOff", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_DDC_MODE, "DDCMode", OPTV_BOOLEAN, {0}, FALSE },
@@ -261,6 +210,7 @@ static const OptionInfoRec RADEONOptions[] = {
{ OPTION_REVERSE_DDC, "ReverseDDC", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_LVDS_PROBE_PLL, "LVDSProbePLL", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE },
+ { OPTION_CONSTANTDPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -324,6 +274,7 @@ static const char *fbSymbols[] = {
#ifdef USE_EXA
static const char *exaSymbols[] = {
+ "exaDriverAlloc",
"exaDriverInit",
"exaDriverFini",
"exaOffscreenAlloc",
@@ -518,7 +469,7 @@ static const RADEONTMDSPll default_tmds_pll[CHIP_FAMILY_LAST][4] =
{{15000, 0xa1b}, {0xffffffff, 0xa3f}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_R200*/
{{15500, 0x81b}, {0xffffffff, 0x83f}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_RV250*/
{{0, 0}, {0, 0}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_RS300*/
- {{13000, 0x400f4}, {15000, 0x400f7}, {0xffffffff, 0x400f7/*0x40111*/}, {0, 0}}, /*CHIP_FAMILY_RV280*/
+ {{13000, 0x400f4}, {15000, 0x400f7}, {0xffffffff, 0x40111}, {0, 0}}, /*CHIP_FAMILY_RV280*/
{{0xffffffff, 0xb01cb}, {0, 0}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_R300*/
{{0xffffffff, 0xb01cb}, {0, 0}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_R350*/
{{15000, 0xb0155}, {0xffffffff, 0xb01cb}, {0, 0}, {0, 0}}, /*CHIP_FAMILY_RV350*/
@@ -708,7 +659,7 @@ static Bool RADEONMapMMIO(ScrnInfoPtr pScrn)
VIDMEM_MMIO | VIDMEM_READSIDEEFFECT,
info->PciTag,
info->MMIOAddr,
- RADEON_MMIOSIZE);
+ info->MMIOSize);
}
if (!info->MMIO) return FALSE;
@@ -725,7 +676,7 @@ static Bool RADEONUnmapMMIO(ScrnInfoPtr pScrn)
if (info->FBDev)
fbdevHWUnmapMMIO(pScrn);
else {
- xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, RADEON_MMIOSIZE);
+ xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, info->MMIOSize);
}
info->MMIO = NULL;
return TRUE;
@@ -739,7 +690,7 @@ static Bool RADEONMapFB(ScrnInfoPtr pScrn)
if (info->FBDev) {
info->FB = fbdevHWMapVidmem(pScrn);
} else {
- RADEONTRACE(("Map: 0x%08x, 0x%08x\n", info->LinearAddr, info->FbMapSize));
+ RADEONTRACE(("Map: 0x%08lx, 0x%08lx\n", info->LinearAddr, info->FbMapSize));
info->FB = xf86MapPciMem(pScrn->scrnIndex,
VIDMEM_FRAMEBUFFER,
info->PciTag,
@@ -2295,7 +2246,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
- unsigned long agp_size, agp_base, mem_size;
+ unsigned long mem_size;
/* Default to existing values */
info->mc_fb_location = INREG(RADEON_MC_FB_LOCATION);
@@ -2360,8 +2311,6 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
RADEONTRACE(("RADEONInitMemoryMap() : \n"));
RADEONTRACE((" mem_size : 0x%08lx\n", mem_size));
- RADEONTRACE((" agp_size : 0x%08lx\n", agp_size));
- RADEONTRACE((" agp_base : 0x%08lx\n", agp_base));
RADEONTRACE((" MC_FB_LOCATION : 0x%08lx\n", info->mc_fb_location));
RADEONTRACE((" MC_AGP_LOCATION : 0x%08lx\n", info->mc_agp_location));
}
@@ -2414,9 +2363,6 @@ static void RADEONGetVRamType(ScrnInfoPtr pScrn)
static CARD32 RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
- EntityInfoPtr pEnt = info->pEnt;
- GDevPtr dev = pEnt->device;
- MessageType from;
unsigned char *RADEONMMIO = info->MMIO;
CARD32 aper_size = INREG(RADEON_CONFIG_APER_SIZE) / 1024;
@@ -2428,7 +2374,7 @@ static CARD32 RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn)
if (info->directRenderingEnabled &&
info->pKernelDRMVersion->version_minor < 23) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "[dri] limiting video memory to one aperture of %dK\n",
+ "[dri] limiting video memory to one aperture of %ldK\n",
aper_size);
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"[dri] detected radeon kernel module version 1.%d but"
@@ -2519,8 +2465,8 @@ static Bool RADEONPreInitVRAM(ScrnInfoPtr pScrn)
accessible = bar_size;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Detected total video RAM=%dK, accessible=%dK "
- "(PCI BAR=%dK)\n",
+ "Detected total video RAM=%dK, accessible=%ldK "
+ "(PCI BAR=%ldK)\n",
pScrn->videoRam, accessible, bar_size);
if (pScrn->videoRam > accessible)
pScrn->videoRam = accessible;
@@ -3011,8 +2957,9 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
"Option ShowCache enabled\n");
#ifdef RENDER
- info->RenderAccel = xf86ReturnOptValBool (info->Options,
- OPTION_RENDER_ACCEL, TRUE);
+ info->RenderAccel = xf86ReturnOptValBool(info->Options, OPTION_RENDER_ACCEL,
+ info->Chipset != PCI_CHIP_RN50_515E &&
+ info->Chipset != PCI_CHIP_RN50_5969);
#endif
return TRUE;
@@ -4355,10 +4302,13 @@ static Bool RADEONPreInitModes(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10)
/* Set DPI */
/* xf86SetDpi(pScrn, 0, 0); */
- if(info->MergedFB)
+ if (info->MergedFB) {
RADEONMergedFBSetDpi(pScrn, info->CRT2pScrn, info->CRT2Position);
- else
+ } else {
xf86SetDpi(pScrn, 0, 0);
+ info->RADEONDPIVX = pScrn->virtualX;
+ info->RADEONDPIVY = pScrn->virtualY;
+ }
/* Get ScreenInit function */
if (!xf86LoadSubModule(pScrn, "fb")) return FALSE;
@@ -4393,6 +4343,8 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn)
char *optstr;
#endif
+ info->useEXA = FALSE;
+
if (!xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE)) {
int errmaj = 0, errmin = 0;
@@ -4418,7 +4370,7 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn)
#ifdef USE_EXA
if (info->useEXA) {
- info->exaReq.majorversion = 1;
+ info->exaReq.majorversion = 2;
info->exaReq.minorversion = 0;
if (!LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL,
@@ -4460,13 +4412,32 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn)
static Bool RADEONPreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10)
{
+#if !defined(__powerpc__)
RADEONInfoPtr info = RADEONPTR(pScrn);
+ unsigned char *RADEONMMIO = info->MMIO;
+ CARD32 fp2_gen_ctl_save = 0;
-#if !defined(__powerpc__)
if (xf86LoadSubModule(pScrn, "int10")) {
xf86LoaderReqSymLists(int10Symbols, NULL);
+
+ /* The VGA BIOS on the RV100/QY cannot be read when the digital output
+ * is enabled. Clear and restore FP2_ON around int10 to avoid this.
+ */
+ if (info->PciInfo->chipType == PCI_CHIP_RV100_QY) {
+ fp2_gen_ctl_save = INREG(RADEON_FP2_GEN_CNTL);
+ if (fp2_gen_ctl_save & RADEON_FP2_ON) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "disabling digital out\n");
+ OUTREG(RADEON_FP2_GEN_CNTL, fp2_gen_ctl_save & ~RADEON_FP2_ON);
+ }
+ }
+
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"initializing int10\n");
*ppInt10 = xf86InitInt10(info->pEnt->index);
+
+ if (fp2_gen_ctl_save & RADEON_FP2_ON) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "re-enabling digital out\n");
+ OUTREG(RADEON_FP2_GEN_CNTL, fp2_gen_ctl_save);
+ }
}
#endif
return TRUE;
@@ -4497,6 +4468,26 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
if (info->IsSecondary)
return FALSE;
+ if (info->Chipset == PCI_CHIP_RN50_515E ||
+ info->Chipset == PCI_CHIP_RN50_5969) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Direct rendering not supported on RN50\n");
+ return FALSE;
+ }
+
+ if (info->Chipset == PCI_CHIP_RS400_5A41 ||
+ info->Chipset == PCI_CHIP_RS400_5A42 ||
+ info->Chipset == PCI_CHIP_RC410_5A61 ||
+ info->Chipset == PCI_CHIP_RC410_5A62 ||
+ info->Chipset == PCI_CHIP_RS480_5954 ||
+ info->Chipset == PCI_CHIP_RS480_5955 ||
+ info->Chipset == PCI_CHIP_RS482_5974 ||
+ info->Chipset == PCI_CHIP_RS482_5975) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Direct rendering broken on XPRESS 200 and 200M\n");
+ return FALSE;
+ }
+
if (xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE)) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"[dri] Acceleration disabled, not initializing the DRI\n");
@@ -4671,15 +4662,12 @@ static void RADEONPreInitColorTiling(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
+ info->allowColorTiling = xf86ReturnOptValBool(info->Options,
+ OPTION_COLOR_TILING, TRUE);
if (IS_R300_VARIANT) {
- /* false by default on R3/4xx */
- info->allowColorTiling = xf86ReturnOptValBool(info->Options,
- OPTION_COLOR_TILING, FALSE);
info->MaxSurfaceWidth = 3968; /* one would have thought 4096...*/
info->MaxLines = 4096;
} else {
- info->allowColorTiling = xf86ReturnOptValBool(info->Options,
- OPTION_COLOR_TILING, TRUE);
info->MaxSurfaceWidth = 2048;
info->MaxLines = 2048;
}
@@ -4816,7 +4804,7 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
const char *s;
char* microc_path = NULL;
char* microc_type = NULL;
-
+ MessageType from;
RADEONTRACE(("RADEONPreInit\n"));
if (pScrn->numEntities != 1) return FALSE;
@@ -4838,6 +4826,7 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
info->PciInfo->device,
info->PciInfo->func);
info->MMIOAddr = info->PciInfo->memBase[2] & 0xffffff00;
+ info->MMIOSize = (1 << info->PciInfo->size[2]);
if (info->pEnt->device->IOBase) {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"MMIO address override, using 0x%08lx instead of 0x%08lx\n",
@@ -4849,7 +4838,7 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
goto fail1;
}
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "MMIO registers at 0x%08lx\n", info->MMIOAddr);
+ "MMIO registers at 0x%08lx: size %ldKB\n", info->MMIOAddr, info->MMIOSize / 1024);
if(!RADEONMapMMIO(pScrn)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
@@ -5056,6 +5045,25 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
info->DispPriority = 1;
}
+ info->constantDPI = -1;
+ from = X_DEFAULT;
+ if (xf86GetOptValBool(info->Options, OPTION_CONSTANTDPI, &info->constantDPI)) {
+ from = X_CONFIG;
+ } else {
+ if (monitorResolution > 0) {
+ info->constantDPI = TRUE;
+ from = X_CMDLINE;
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "\"-dpi %d\" given in command line, assuming \"ConstantDPI\" set\n",
+ monitorResolution);
+ } else {
+ info->constantDPI = FALSE;
+ }
+ }
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "X server will %skeep DPI constant for all screen sizes\n",
+ info->constantDPI ? "" : "not ");
+
if (xf86ReturnOptValBool(info->Options, OPTION_FBDEV, FALSE)) {
/* check for Linux framebuffer device */
@@ -5337,6 +5345,7 @@ Bool RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
int cpp = info->CurrentLayout.pixel_bytes;
+ int depthCpp = (info->depthBits - 8) / 4;
int width_bytes = pScrn->displayWidth * cpp;
int bufferSize;
int depthSize;
@@ -5367,7 +5376,7 @@ Bool RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
*/
info->depthPitch = (pScrn->displayWidth + 31) & ~31;
depthSize = ((((pScrn->virtualY + 15) & ~15) * info->depthPitch
- * cpp + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
+ * depthCpp + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
switch (info->CPMode) {
case RADEON_DEFAULT_CP_PIO_MODE:
@@ -5581,7 +5590,7 @@ Bool RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
info->depthOffset);
if (info->cardType==CARD_PCIE)
xf86DrvMsg(scrnIndex, X_INFO,
- "Will use %d kb for PCI GART table at offset 0x%x\n",
+ "Will use %d kb for PCI GART table at offset 0x%lx\n",
info->pciGartSize/1024, info->pciGartOffset);
xf86DrvMsg(scrnIndex, X_INFO,
"Will use %d kb for textures at offset 0x%x\n",
@@ -5593,7 +5602,7 @@ Bool RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
info->backPitchOffset = (((info->backPitch * cpp / 64) << 22) |
((info->backOffset + info->fbLocation) >> 10));
- info->depthPitchOffset = (((info->depthPitch * cpp / 64) << 22) |
+ info->depthPitchOffset = (((info->depthPitch * depthCpp / 64) << 22) |
((info->depthOffset + info->fbLocation) >> 10));
return TRUE;
}
@@ -5673,11 +5682,13 @@ _X_EXPORT Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
char* s;
#endif
- RADEONTRACE(("RADEONScreenInit %x %d\n",
+ RADEONTRACE(("RADEONScreenInit %lx %ld\n",
pScrn->memPhysBase, pScrn->fbOffset));
info->accelOn = FALSE;
+#ifdef USE_XAA
info->accel = NULL;
+#endif
pScrn->fbOffset = 0;
if (info->IsSecondary) pScrn->fbOffset = pScrn->videoRam * 1024;
if (!RADEONMapMem(pScrn)) return FALSE;
@@ -5699,6 +5710,9 @@ _X_EXPORT Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
}
}
+ if ((!info->IsSecondary) && (IS_R300_VARIANT || IS_RV100_VARIANT))
+ RADEONForceSomeClocks(pScrn);
+
if (info->allowColorTiling && (pScrn->virtualX > info->MaxSurfaceWidth)) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Color tiling not supported with virtual x resolutions larger than %d, disabling\n",
@@ -5728,6 +5742,26 @@ _X_EXPORT Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
miSetPixmapDepths ();
#ifdef XF86DRI
+ if (info->directRenderingEnabled) {
+ MessageType from;
+
+ info->depthBits = pScrn->depth;
+
+ from = xf86GetOptValInteger(info->Options, OPTION_DEPTH_BITS,
+ &info->depthBits)
+ ? X_CONFIG : X_DEFAULT;
+
+ if (info->depthBits != 16 && info->depthBits != 24) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Value for Option \"DepthBits\" must be 16 or 24\n");
+ info->depthBits = pScrn->depth;
+ from = X_DEFAULT;
+ }
+
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "Using %d bit depth buffer\n", info->depthBits);
+ }
+
/* Setup DRI after visuals have been established, but before fbScreenInit is
* called. fbScreenInit will eventually call the driver's InitGLXVisuals
* call back. */
@@ -5891,21 +5925,36 @@ _X_EXPORT Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
#ifdef USE_EXA
if (info->useEXA) {
#ifdef XF86DRI
- /* Reserve approx. half of offscreen memory for local textures by
- * default, can be overridden with Option "FBTexPercent".
- * Round down to a whole number of texture regions.
- */
- info->textureSize = 50;
+ MessageType from = X_DEFAULT;
- if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
- &(info->textureSize))) {
- if (info->textureSize < 0 || info->textureSize > 100) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Illegal texture memory percentage: %dx, setting to default 50%\n",
- info->textureSize);
- info->textureSize = 50;
+ if (hasDRI) {
+ info->accelDFS = info->cardType != CARD_AGP;
+
+ if (xf86GetOptValInteger(info->Options, OPTION_ACCEL_DFS,
+ &info->accelDFS)) {
+ from = X_CONFIG;
+ }
+
+ /* Reserve approx. half of offscreen memory for local textures by
+ * default, can be overridden with Option "FBTexPercent".
+ * Round down to a whole number of texture regions.
+ */
+ info->textureSize = 50;
+
+ if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
+ &(info->textureSize))) {
+ if (info->textureSize < 0 || info->textureSize > 100) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Illegal texture memory percentage: %dx, setting to default 50%%\n",
+ info->textureSize);
+ info->textureSize = 50;
+ }
}
}
+
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "%ssing accelerated EXA DownloadFromScreen hook\n",
+ info->accelDFS ? "U" : "Not u");
#endif /* XF86DRI */
if (!RADEONSetupMemEXA(pScreen))
@@ -6127,7 +6176,7 @@ static void RADEONRestoreMemMapRegisters(ScrnInfoPtr pScrn,
{
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
- int i, timeout;
+ int timeout;
RADEONTRACE(("RADEONRestoreMemMapRegisters() : \n"));
RADEONTRACE((" MC_FB_LOCATION : 0x%08lx\n", restore->mc_fb_location));
@@ -6191,8 +6240,8 @@ static void RADEONRestoreMemMapRegisters(ScrnInfoPtr pScrn,
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Timeout trying to update memory controller settings !\n");
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "MC_STATUS = 0x%08x (on entry = 0x%08x)\n",
- INREG(RADEON_MC_STATUS), old_mc_status);
+ "MC_STATUS = 0x%08x (on entry = 0x%08x)\n",
+ INREG(RADEON_MC_STATUS), (unsigned int)old_mc_status);
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"You will probably crash now ... \n");
/* Nothing we can do except maybe try to kill the server,
@@ -6266,6 +6315,7 @@ static void RADEONRestoreMemMapRegisters(ScrnInfoPtr pScrn,
RADEONTRACE(("Memory map updated.\n"));
}
+#ifdef XF86DRI
static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -6300,7 +6350,30 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
if (fb_loc_changed)
RADEONRestoreMemMapRegisters(pScrn, save);
}
+
+#ifdef USE_EXA
+ if (info->accelDFS)
+ {
+ drmRadeonGetParam gp;
+ int gart_base;
+
+ memset(&gp, 0, sizeof(gp));
+ gp.param = RADEON_PARAM_GART_BASE;
+ gp.value = &gart_base;
+
+ if (drmCommandWriteRead(info->drmFD, DRM_RADEON_GETPARAM, &gp,
+ sizeof(gp)) < 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to determine GART area MC location, not using "
+ "accelerated DownloadFromScreen hook!\n");
+ info->accelDFS = FALSE;
+ } else {
+ info->gartLocation = gart_base;
+ }
+ }
+#endif /* USE_EXA */
}
+#endif
/* Write common registers */
static void RADEONRestoreCommonRegisters(ScrnInfoPtr pScrn,
@@ -6373,7 +6446,7 @@ static void RADEONRestoreCrtcRegisters(ScrnInfoPtr pScrn,
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
- RADEONTRACE(("Programming CRTC1, offset: 0x%08x\n",
+ RADEONTRACE(("Programming CRTC1, offset: 0x%08lx\n",
restore->crtc_offset));
/* We prevent the CRTC from hitting the memory controller until
@@ -6421,7 +6494,7 @@ static void RADEONRestoreCrtc2Registers(ScrnInfoPtr pScrn,
unsigned char *RADEONMMIO = info->MMIO;
CARD32 crtc2_gen_cntl;
- RADEONTRACE(("Programming CRTC2, offset: 0x%08x\n",
+ RADEONTRACE(("Programming CRTC2, offset: 0x%08lx\n",
restore->crtc2_offset));
crtc2_gen_cntl = INREG(RADEON_CRTC2_GEN_CNTL) &
@@ -6666,7 +6739,7 @@ static void RADEONRestorePLLRegisters(ScrnInfoPtr pScrn,
| RADEON_PPLL_ATOMIC_UPDATE_EN
| RADEON_PPLL_VGA_ATOMIC_UPDATE_EN));
- RADEONTRACE(("Wrote: 0x%08x 0x%08x 0x%08x (0x%08x)\n",
+ RADEONTRACE(("Wrote: 0x%08x 0x%08x 0x%08lx (0x%08x)\n",
restore->ppll_ref_div,
restore->ppll_div_3,
restore->htotal_cntl,
@@ -6725,12 +6798,12 @@ static void RADEONRestorePLL2Registers(ScrnInfoPtr pScrn,
| RADEON_P2PLL_ATOMIC_UPDATE_EN
| RADEON_P2PLL_VGA_ATOMIC_UPDATE_EN));
- RADEONTRACE(("Wrote: 0x%08x 0x%08x 0x%08x (0x%08x)\n",
+ RADEONTRACE(("Wrote: 0x%08lx 0x%08lx 0x%08lx (0x%08x)\n",
restore->p2pll_ref_div,
restore->p2pll_div_0,
restore->htotal_cntl2,
INPLL(pScrn, RADEON_P2PLL_CNTL)));
- RADEONTRACE(("Wrote: rd=%d, fd=%d, pd=%d\n",
+ RADEONTRACE(("Wrote: rd=%ld, fd=%ld, pd=%ld\n",
restore->p2pll_ref_div & RADEON_P2PLL_REF_DIV_MASK,
restore->p2pll_div_0 & RADEON_P2PLL_FB0_DIV_MASK,
(restore->p2pll_div_0 & RADEON_P2PLL_POST0_DIV_MASK) >>16));
@@ -6787,7 +6860,7 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
int width_bytes = pScrn->displayWidth * cpp;
int bufferSize = ((((pScrn->virtualY + 15) & ~15) * width_bytes
+ RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
- unsigned int depth_pattern, color_pattern, swap_pattern;
+ unsigned int color_pattern, swap_pattern;
if (!info->allowColorTiling)
return;
@@ -6806,28 +6879,21 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
#endif
if (info->ChipFamily < CHIP_FAMILY_R200) {
color_pattern = RADEON_SURF_TILE_COLOR_MACRO;
- if (cpp == 2)
- depth_pattern = RADEON_SURF_TILE_DEPTH_16BPP;
- else
- depth_pattern = RADEON_SURF_TILE_DEPTH_32BPP;
} else if (IS_R300_VARIANT) {
color_pattern = R300_SURF_TILE_COLOR_MACRO;
- if (cpp == 2)
- depth_pattern = R300_SURF_TILE_COLOR_MACRO;
- else
- depth_pattern = R300_SURF_TILE_COLOR_MACRO | R300_SURF_TILE_DEPTH_32BPP;
} else {
color_pattern = R200_SURF_TILE_COLOR_MACRO;
- if (cpp == 2)
- depth_pattern = R200_SURF_TILE_DEPTH_16BPP;
- else
- depth_pattern = R200_SURF_TILE_DEPTH_32BPP;
}
#ifdef XF86DRI
if (info->directRenderingInited) {
drmRadeonSurfaceFree drmsurffree;
drmRadeonSurfaceAlloc drmsurfalloc;
int retvalue;
+ int depthCpp = (info->depthBits - 8) / 4;
+ int depth_width_bytes = pScrn->displayWidth * depthCpp;
+ int depthBufferSize = ((((pScrn->virtualY + 15) & ~15) * depth_width_bytes
+ + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
+ unsigned int depth_pattern;
drmsurffree.address = info->frontOffset;
retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE,
@@ -6872,17 +6938,34 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
"drm: could not allocate surface for back buffer!\n");
}
+ if (info->ChipFamily < CHIP_FAMILY_R200) {
+ if (depthCpp == 2)
+ depth_pattern = RADEON_SURF_TILE_DEPTH_16BPP;
+ else
+ depth_pattern = RADEON_SURF_TILE_DEPTH_32BPP;
+ } else if (IS_R300_VARIANT) {
+ if (depthCpp == 2)
+ depth_pattern = R300_SURF_TILE_COLOR_MACRO;
+ else
+ depth_pattern = R300_SURF_TILE_COLOR_MACRO | R300_SURF_TILE_DEPTH_32BPP;
+ } else {
+ if (depthCpp == 2)
+ depth_pattern = R200_SURF_TILE_DEPTH_16BPP;
+ else
+ depth_pattern = R200_SURF_TILE_DEPTH_32BPP;
+ }
+
/* rv100 and probably the derivative igps don't have depth tiling on all the time? */
if (info->have3DWindows && ((info->ChipFamily != CHIP_FAMILY_RV100) ||
(info->ChipFamily != CHIP_FAMILY_RS100) ||
(info->ChipFamily != CHIP_FAMILY_RS200))) {
drmRadeonSurfaceAlloc drmsurfalloc;
- drmsurfalloc.size = bufferSize;
+ drmsurfalloc.size = depthBufferSize;
drmsurfalloc.address = info->depthOffset;
if (IS_R300_VARIANT)
- drmsurfalloc.flags = swap_pattern | (width_bytes / 8) | depth_pattern;
+ drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 8) | depth_pattern;
else
- drmsurfalloc.flags = swap_pattern | (width_bytes / 16) | depth_pattern;
+ drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 16) | depth_pattern;
retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC,
&drmsurfalloc, sizeof(drmsurfalloc));
if (retvalue < 0)
@@ -7163,7 +7246,7 @@ static void RADEONSavePLLRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
save->ppll_div_3 = INPLL(pScrn, RADEON_PPLL_DIV_3);
save->htotal_cntl = INPLL(pScrn, RADEON_HTOTAL_CNTL);
- RADEONTRACE(("Read: 0x%08x 0x%08x 0x%08x\n",
+ RADEONTRACE(("Read: 0x%08x 0x%08x 0x%08lx\n",
save->ppll_ref_div,
save->ppll_div_3,
save->htotal_cntl));
@@ -7180,11 +7263,11 @@ static void RADEONSavePLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save)
save->p2pll_div_0 = INPLL(pScrn, RADEON_P2PLL_DIV_0);
save->htotal_cntl2 = INPLL(pScrn, RADEON_HTOTAL2_CNTL);
- RADEONTRACE(("Read: 0x%08x 0x%08x 0x%08x\n",
+ RADEONTRACE(("Read: 0x%08lx 0x%08lx 0x%08lx\n",
save->p2pll_ref_div,
save->p2pll_div_0,
save->htotal_cntl2));
- RADEONTRACE(("Read: rd=%d, fd=%d, pd=%d\n",
+ RADEONTRACE(("Read: rd=%ld, fd=%ld, pd=%ld\n",
save->p2pll_ref_div & RADEON_P2PLL_REF_DIV_MASK,
save->p2pll_div_0 & RADEON_P2PLL_FB0_DIV_MASK,
(save->p2pll_div_0 & RADEON_P2PLL_POST0_DIV_MASK) >> 16));
@@ -7632,15 +7715,7 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
if (critical_point < temp) critical_point = temp;
*/
if (info->DispPriority == 2) {
- if (mode2) {
- /*??some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
- if (info->ChipFamily == CHIP_FAMILY_R300)
- critical_point += 0x10;
- else
- critical_point = 0;
- }
- else
- critical_point = 0;
+ critical_point = 0;
}
/*
@@ -7649,6 +7724,11 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
*/
if (max_stop_req - critical_point < 4) critical_point = 0;
+ if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) {
+ /* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
+ critical_point = 0x10;
+ }
+
temp = info->SavedReg.grph_buffer_cntl;
temp &= ~(RADEON_GRPH_STOP_REQ_MASK);
temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT);
@@ -7670,7 +7750,7 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
(critical_point << RADEON_GRPH_CRITICAL_POINT_SHIFT)));
RADEONTRACE(("GRPH_BUFFER_CNTL from %x to %x\n",
- info->SavedReg.grph_buffer_cntl, INREG(RADEON_GRPH_BUFFER_CNTL)));
+ (unsigned int)info->SavedReg.grph_buffer_cntl, INREG(RADEON_GRPH_BUFFER_CNTL)));
if (mode2) {
stop_req = mode2->HDisplay * info2->CurrentLayout.pixel_bytes / 16;
@@ -7702,21 +7782,23 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
disp_latency) * disp_drain_rate2 + 0.5);
if (info->DispPriority == 2) {
- if (info->ChipFamily == CHIP_FAMILY_R300)
- critical_point2 += 0x10;
- else
- critical_point2 = 0;
+ critical_point2 = 0;
}
if (max_stop_req - critical_point2 < 4) critical_point2 = 0;
}
+ if (critical_point2 == 0 && info->ChipFamily == CHIP_FAMILY_R300) {
+ /* some R300 cards have problem with this set to 0 */
+ critical_point2 = 0x10;
+ }
+
OUTREG(RADEON_GRPH2_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) |
(critical_point2 << RADEON_GRPH_CRITICAL_POINT_SHIFT)));
RADEONTRACE(("GRPH2_BUFFER_CNTL from %x to %x\n",
- info->SavedReg.grph2_buffer_cntl, INREG(RADEON_GRPH2_BUFFER_CNTL)));
+ (unsigned int)info->SavedReg.grph2_buffer_cntl, INREG(RADEON_GRPH2_BUFFER_CNTL)));
}
}
@@ -7908,7 +7990,7 @@ static Bool RADEONInitCrtcRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save,
save->tv_dac_cntl |= (0x03 | (2<<8) | (0x58<<16));
}
- RADEONTRACE(("Pitch = %d bytes (virtualX = %d, displayWidth = %d)\n",
+ RADEONTRACE(("Pitch = %ld bytes (virtualX = %d, displayWidth = %d)\n",
save->crtc_pitch, pScrn->virtualX,
info->CurrentLayout.displayWidth));
return TRUE;
@@ -8113,7 +8195,7 @@ static Bool RADEONInitCrtc2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save,
}
#endif
- RADEONTRACE(("Pitch = %d bytes (virtualX = %d, displayWidth = %d)\n",
+ RADEONTRACE(("Pitch = %ld bytes (virtualX = %d, displayWidth = %d)\n",
save->crtc2_pitch, pScrn->virtualX,
info->CurrentLayout.displayWidth));
@@ -8286,7 +8368,7 @@ static void RADEONInitFPRegisters(ScrnInfoPtr pScrn, RADEONSavePtr orig,
save->tmds_pll_cntl = (orig->tmds_pll_cntl & 0xfff00000) | tmp;
} else save->tmds_pll_cntl = tmp;
- RADEONTRACE(("TMDS_PLL from %x to %x\n",
+ RADEONTRACE(("TMDS_PLL from %lx to %lx\n",
orig->tmds_pll_cntl,
save->tmds_pll_cntl));
@@ -8418,7 +8500,7 @@ static void RADEONInitPLLRegisters(ScrnInfoPtr pScrn, RADEONInfoPtr info,
pll->reference_freq);
save->post_div = post_div->divider;
- RADEONTRACE(("dc=%d, of=%d, fd=%d, pd=%d\n",
+ RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
save->dot_clock_freq,
save->pll_output_freq,
save->feedback_div,
@@ -8480,7 +8562,7 @@ static void RADEONInitPLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save,
pll->reference_freq);
save->post_div_2 = post_div->divider;
- RADEONTRACE(("dc=%d, of=%d, fd=%d, pd=%d\n",
+ RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
save->dot_clock_freq_2,
save->pll_output_freq_2,
save->feedback_div_2,
@@ -8657,6 +8739,26 @@ static Bool RADEONSaveScreen(ScreenPtr pScreen, int mode)
return TRUE;
}
+static void
+RADEONResetDPI(ScrnInfoPtr pScrn, Bool force)
+{
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
+
+ if(force ||
+ (info->RADEONDPIVX != pScrn->virtualX) ||
+ (info->RADEONDPIVY != pScrn->virtualY)
+ ) {
+
+ pScreen->mmWidth = (pScrn->virtualX * 254 + pScrn->xDpi * 5) / (pScrn->xDpi * 10);
+ pScreen->mmHeight = (pScrn->virtualY * 254 + pScrn->yDpi * 5) / (pScrn->yDpi * 10);
+
+ info->RADEONDPIVX = pScrn->virtualX;
+ info->RADEONDPIVY = pScrn->virtualY;
+
+ }
+}
+
_X_EXPORT Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -8741,8 +8843,11 @@ _X_EXPORT Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
/* Since RandR (indirectly) uses SwitchMode(), we need to
* update our Xinerama info here, too, in case of resizing
*/
- if(info->MergedFB) {
- RADEONUpdateXineramaScreenInfo(pScrn);
+ if (info->MergedFB) {
+ RADEONMergedFBResetDpi(pScrn, FALSE);
+ RADEONUpdateXineramaScreenInfo(pScrn);
+ } else if(info->constantDPI) {
+ RADEONResetDPI(pScrn, FALSE);
}
return ret;
@@ -8781,7 +8886,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, int clone)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
- int reg, Base, regcntl, crtcoffsetcntl, xytilereg, crtcxytile;
+ int reg, Base, regcntl, crtcoffsetcntl, xytilereg, crtcxytile = 0;
#ifdef XF86DRI
RADEONSAREAPrivPtr pSAREAPriv;
XF86DRISAREAPtr pSAREA;
@@ -9060,8 +9165,11 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
RADEONTRACE(("Disposing accel...\n"));
#ifdef USE_EXA
- if (info->useEXA && info->accelOn)
+ if (info->exa) {
exaDriverFini(pScreen);
+ xfree(info->exa);
+ info->exa = NULL;
+ }
#endif /* USE_EXA */
#ifdef USE_XAA
if (!info->useEXA) {
@@ -9620,6 +9728,16 @@ RADEONGetMergedFBOptions(ScrnInfoPtr pScrn)
}
}
+static void RADEONForceSomeClocks(ScrnInfoPtr pScrn)
+{
+ /* It appears from r300 and rv100 may need some clocks forced-on */
+ CARD32 tmp;
+
+ tmp = INPLL(pScrn, RADEON_SCLK_CNTL);
+ tmp |= RADEON_SCLK_FORCE_CP | RADEON_SCLK_FORCE_VIP;
+ OUTPLL(pScrn, RADEON_SCLK_CNTL, tmp);
+}
+
static void RADEONSetDynamicClock(ScrnInfoPtr pScrn, int mode)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 56927c1..9ef74e9 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -157,10 +157,10 @@ static Bool RADEONGetOffsetPitch(PixmapPtr pPix, int bpp, CARD32 *pitch_offset,
{
RINFO_FROM_SCREEN(pPix->drawable.pScreen);
- if (pitch % info->exa.card.pixmapPitchAlign != 0)
+ if (pitch % info->exa->pixmapPitchAlign != 0)
RADEON_FALLBACK(("Bad pitch 0x%08x\n", pitch));
- if (offset % info->exa.card.pixmapOffsetAlign != 0)
+ if (offset % info->exa->pixmapOffsetAlign != 0)
RADEON_FALLBACK(("Bad offset 0x%08x\n", offset));
pitch = pitch >> 6;
@@ -197,7 +197,7 @@ static Bool RADEONPrepareAccess(PixmapPtr pPix, int index)
RINFO_FROM_SCREEN(pPix->drawable.pScreen);
unsigned char *RADEONMMIO = info->MMIO;
CARD32 offset = exaGetPixmapOffset(pPix);
- int bpp, rc, soff;
+ int bpp, soff;
CARD32 size, flags;
/* Front buffer is always set with proper swappers */
@@ -231,6 +231,7 @@ static Bool RADEONPrepareAccess(PixmapPtr pPix, int index)
#if defined(XF86DRI)
if (info->directRenderingEnabled && info->allowColorTiling) {
drmRadeonSurfaceAlloc drmsurfalloc;
+ int rc;
drmsurfalloc.address = offset;
drmsurfalloc.size = size;
@@ -262,7 +263,7 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index)
RINFO_FROM_SCREEN(pPix->drawable.pScreen);
unsigned char *RADEONMMIO = info->MMIO;
CARD32 offset = exaGetPixmapOffset(pPix);
- int bpp, soff;
+ int soff;
/* Front buffer is always set with proper swappers */
if (offset == 0)
@@ -292,27 +293,34 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index)
#define RADEON_SWITCH_TO_2D() \
do { \
- /*if (info->engineMode == EXA_ENGINEMODE_2D)*/ \
- /*break;*/ \
- BEGIN_ACCEL(2); \
- OUT_ACCEL_REG(RADEON_RB2D_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH); \
- OUT_ACCEL_REG(RADEON_WAIT_UNTIL, \
- RADEON_WAIT_HOST_IDLECLEAN | \
- RADEON_WAIT_3D_IDLECLEAN); \
+ CARD32 wait_until = 0; \
+ BEGIN_ACCEL(1); \
+ switch (info->engineMode) { \
+ case EXA_ENGINEMODE_UNKNOWN: \
+ wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN; \
+ case EXA_ENGINEMODE_3D: \
+ wait_until |= RADEON_WAIT_3D_IDLECLEAN; \
+ case EXA_ENGINEMODE_2D: \
+ break; \
+ } \
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until); \
FINISH_ACCEL(); \
info->engineMode = EXA_ENGINEMODE_2D; \
} while (0);
#define RADEON_SWITCH_TO_3D() \
do { \
- /*if (info->engineMode == EXA_ENGINEMODE_3D)*/ \
- /*break;*/ \
- BEGIN_ACCEL(2); \
- OUT_ACCEL_REG(RADEON_RB2D_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH); \
- OUT_ACCEL_REG(RADEON_WAIT_UNTIL, \
- RADEON_WAIT_HOST_IDLECLEAN | \
- RADEON_WAIT_2D_IDLECLEAN | \
- RADEON_WAIT_3D_IDLECLEAN); \
+ CARD32 wait_until = 0; \
+ BEGIN_ACCEL(1); \
+ switch (info->engineMode) { \
+ case EXA_ENGINEMODE_UNKNOWN: \
+ wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN; \
+ case EXA_ENGINEMODE_2D: \
+ wait_until |= RADEON_WAIT_2D_IDLECLEAN; \
+ case EXA_ENGINEMODE_3D: \
+ break; \
+ } \
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until); \
FINISH_ACCEL(); \
info->engineMode = EXA_ENGINEMODE_3D; \
} while (0);
@@ -367,10 +375,17 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
int cpp = info->CurrentLayout.pixel_bytes;
- int l;
- int next, screen_size;
+ int screen_size;
int byteStride = pScrn->displayWidth * cpp;
+ if (info->exa != NULL) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map already initialized\n");
+ return FALSE;
+ }
+ info->exa = exaDriverAlloc();
+ if (info->exa == NULL)
+ return FALSE;
+
/* Need to adjust screen size for 16 line tiles, and then make it align to.
* the buffer alignment requirement.
*/
@@ -379,20 +394,33 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
else
screen_size = pScrn->virtualY * byteStride;
- info->exa.card.memoryBase = info->FB + pScrn->fbOffset;
- info->exa.card.memorySize = info->FbMapSize - info->FbSecureSize;
- info->exa.card.offScreenBase = screen_size;
+ info->exa->memoryBase = info->FB + pScrn->fbOffset;
+ info->exa->memorySize = info->FbMapSize - info->FbSecureSize;
+ info->exa->offScreenBase = screen_size;
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Allocating from a screen of %ld kb\n",
- info->exa.card.memorySize / 1024);
+ info->exa->memorySize / 1024);
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %d kb for front buffer at offset 0x%08x\n",
screen_size / 1024, 0);
+ /* Reserve static area for hardware cursor */
+ if (!xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE)) {
+ int cursor_size = 64 * 4 * 64;
+
+ info->cursor_offset = info->exa->offScreenBase;
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Will use %d kb for hardware cursor at offset 0x%08x\n",
+ cursor_size / 1024, (unsigned int)info->cursor_offset);
+
+ info->exa->offScreenBase += cursor_size;
+ }
+
#if defined(XF86DRI)
if (info->directRenderingEnabled) {
- int depth_size;
+ int depthCpp = (info->depthBits - 8) / 4, l, next, depth_size;
info->frontOffset = 0;
info->frontPitch = pScrn->displayWidth;
@@ -412,12 +440,12 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
* offscreen locations does.
*/
info->backPitch = pScrn->displayWidth;
- next = RADEON_ALIGN(info->exa.card.offScreenBase, RADEON_BUFFER_ALIGN);
+ next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN);
if (!info->noBackBuffer &&
- next + screen_size <= info->exa.card.memorySize)
+ next + screen_size <= info->exa->memorySize)
{
info->backOffset = next;
- info->exa.card.offScreenBase = next + screen_size;
+ info->exa->offScreenBase = next + screen_size;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %d kb for back buffer at offset 0x%08x\n",
screen_size / 1024, info->backOffset);
@@ -427,27 +455,27 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
* handle tiling.
*/
info->depthPitch = RADEON_ALIGN(pScrn->displayWidth, 32);
- depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->depthPitch * cpp;
- next = RADEON_ALIGN(info->exa.card.offScreenBase, RADEON_BUFFER_ALIGN);
- if (next + depth_size <= info->exa.card.memorySize)
+ depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->depthPitch * depthCpp;
+ next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN);
+ if (next + depth_size <= info->exa->memorySize)
{
info->depthOffset = next;
- info->exa.card.offScreenBase = next + depth_size;
+ info->exa->offScreenBase = next + depth_size;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %d kb for depth buffer at offset 0x%08x\n",
depth_size / 1024, info->depthOffset);
}
- info->textureSize *= (info->exa.card.memorySize -
- info->exa.card.offScreenBase) / 100;
+ info->textureSize *= (info->exa->memorySize -
+ info->exa->offScreenBase) / 100;
l = RADEONLog2(info->textureSize / RADEON_NR_TEX_REGIONS);
if (l < RADEON_LOG_TEX_GRANULARITY)
l = RADEON_LOG_TEX_GRANULARITY;
info->textureSize = (info->textureSize >> l) << l;
if (info->textureSize >= 512 * 1024) {
- info->textureOffset = info->exa.card.offScreenBase;
- info->exa.card.offScreenBase += info->textureSize;
+ info->textureOffset = info->exa->offScreenBase;
+ info->exa->offScreenBase += info->textureSize;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %d kb for textures at offset 0x%08x\n",
info->textureSize / 1024, info->textureOffset);
@@ -460,8 +488,8 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %ld kb for X Server offscreen at offset 0x%08lx\n",
- (info->exa.card.memorySize - info->exa.card.offScreenBase) /
- 1024, info->exa.card.offScreenBase);
+ (info->exa->memorySize - info->exa->offScreenBase) /
+ 1024, info->exa->offScreenBase);
return TRUE;
}
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 65ba4ce..c0bdf6e 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -1,6 +1,7 @@
/*
* Copyright 2005 Eric Anholt
* Copyright 2005 Benjamin Herrenschmidt
+ * Copyright 2006 Tungsten Graphics, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -26,6 +27,7 @@
* Eric Anholt <anholt@FreeBSD.org>
* Zack Rusin <zrusin@trolltech.com>
* Benjamin Herrenschmidt <benh@kernel.crashing.org>
+ * Michel Dänzer <michel@tungstengraphics.com>
*
*/
@@ -49,19 +51,22 @@
#endif
#endif
+#include <errno.h>
+#include <string.h>
+
#include "radeon.h"
#include "atidri.h"
#include "exa.h"
-#include "fbdevhw.h"
-
static void
FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
{
TRACE;
FUNC_NAME(RADEONWaitForIdle)(xf86Screens[pScreen->myNum]);
+
+ RADEONPTR(xf86Screens[pScreen->myNum])->engineMode = EXA_ENGINEMODE_UNKNOWN;
}
static Bool
@@ -217,7 +222,7 @@ FUNC_NAME(RADEONUploadToScreen)(PixmapPtr pDst, int x, int y, int w, int h,
unsigned int bpp = pDst->drawable.bitsPerPixel;
#ifdef ACCEL_CP
unsigned int hpass;
- CARD32 buf_pitch;
+ CARD32 buf_pitch, dst_pitch_off;
#endif
#if X_BYTE_ORDER == X_BIG_ENDIAN
unsigned char *RADEONMMIO = info->MMIO;
@@ -232,21 +237,21 @@ FUNC_NAME(RADEONUploadToScreen)(PixmapPtr pDst, int x, int y, int w, int h,
return FALSE;
#ifdef ACCEL_CP
- if (info->directRenderingEnabled) {
+ if (info->directRenderingEnabled &&
+ RADEONGetPixmapOffsetPitch(pDst, &dst_pitch_off)) {
CARD8 *buf;
int cpp = bpp / 8;
ACCEL_PREAMBLE();
- dst += (x * cpp) + (y * dst_pitch);
RADEON_SWITCH_TO_2D();
while ((buf = RADEONHostDataBlit(pScrn,
- cpp, w, dst_pitch, &buf_pitch,
- &dst, &h, &hpass)) != 0) {
- RADEONHostDataBlitCopyPass(pScrn, cpp, buf, (unsigned char *)src,
+ cpp, w, dst_pitch_off, &buf_pitch,
+ x, &y, (unsigned int*)&h, &hpass)) != 0) {
+ RADEONHostDataBlitCopyPass(pScrn, cpp, buf, (CARD8 *)src,
hpass, buf_pitch, src_pitch);
src += hpass * src_pitch;
}
-
+
exaMarkSync(pDst->drawable.pScreen);
return TRUE;
}
@@ -287,27 +292,152 @@ FUNC_NAME(RADEONUploadToScreen)(PixmapPtr pDst, int x, int y, int w, int h,
return TRUE;
}
+#ifdef ACCEL_CP
+/* Emit blit with arbitrary source and destination offsets and pitches */
+static void
+RADEONBlitChunk(ScrnInfoPtr pScrn, CARD32 datatype, CARD32 src_pitch_offset,
+ CARD32 dst_pitch_offset, int srcX, int srcY, int dstX, int dstY,
+ int w, int h)
+{
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ ACCEL_PREAMBLE();
+
+ BEGIN_ACCEL(6);
+ OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL,
+ RADEON_GMC_DST_PITCH_OFFSET_CNTL |
+ RADEON_GMC_SRC_PITCH_OFFSET_CNTL |
+ RADEON_GMC_BRUSH_NONE |
+ (datatype << 8) |
+ RADEON_GMC_SRC_DATATYPE_COLOR |
+ RADEON_ROP3_S |
+ RADEON_DP_SRC_SOURCE_MEMORY |
+ RADEON_GMC_CLR_CMP_CNTL_DIS |
+ RADEON_GMC_WR_MSK_DIS);
+ OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, src_pitch_offset);
+ OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, dst_pitch_offset);
+ OUT_ACCEL_REG(RADEON_SRC_Y_X, (srcY << 16) | srcX);
+ OUT_ACCEL_REG(RADEON_DST_Y_X, (dstY << 16) | dstX);
+ OUT_ACCEL_REG(RADEON_DST_HEIGHT_WIDTH, (h << 16) | w);
+ FINISH_ACCEL();
+}
+#endif
+
static Bool
FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
char *dst, int dst_pitch)
{
-#if X_BYTE_ORDER == X_BIG_ENDIAN
+#if defined(ACCEL_CP) || X_BYTE_ORDER == X_BIG_ENDIAN
RINFO_FROM_SCREEN(pSrc->drawable.pScreen);
+#endif
+#if X_BYTE_ORDER == X_BIG_ENDIAN
unsigned char *RADEONMMIO = info->MMIO;
unsigned int swapper = info->ModeReg.surface_cntl &
~(RADEON_NONSURF_AP0_SWP_32BPP | RADEON_NONSURF_AP1_SWP_32BPP |
RADEON_NONSURF_AP0_SWP_16BPP | RADEON_NONSURF_AP1_SWP_16BPP);
#endif
- unsigned char *src = pSrc->devPrivate.ptr;
+ CARD8 *src = pSrc->devPrivate.ptr;
int src_pitch = exaGetPixmapPitch(pSrc);
int bpp = pSrc->drawable.bitsPerPixel;
+#ifdef ACCEL_CP
+ CARD32 datatype, src_pitch_offset, scratch_pitch = (w * bpp/8 + 63) & ~63, scratch_off = 0;
+ drmBufPtr scratch;
+#endif
TRACE;
+#ifdef ACCEL_CP
/*
- * This is currently done without DMA until I have ironed out the
- * various endian issues with R300 among others
+ * Try to accelerate download. Use an indirect buffer as scratch space,
+ * blitting the bits to one half while copying them out of the other one and
+ * then swapping the halves.
*/
+ if (info->accelDFS && bpp != 24 && RADEONGetDatatypeBpp(bpp, &datatype) &&
+ RADEONGetPixmapOffsetPitch(pSrc, &src_pitch_offset) &&
+ (scratch = RADEONCPGetBuffer(pScrn)))
+ {
+ int swap = RADEON_HOST_DATA_SWAP_NONE, wpass = w * bpp / 8;
+ int hpass = min(h, scratch->total/2 / scratch_pitch);
+ CARD32 scratch_pitch_offset = scratch_pitch << 16
+ | (info->gartLocation + info->bufStart
+ + scratch->idx * scratch->total) >> 10;
+ drmRadeonIndirect indirect;
+ ACCEL_PREAMBLE();
+
+ RADEON_SWITCH_TO_2D();
+
+ /* Kick the first blit as early as possible */
+ RADEONBlitChunk(pScrn, datatype, src_pitch_offset, scratch_pitch_offset,
+ x, y, 0, 0, w, hpass);
+ FLUSH_RING();
+
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ switch (bpp) {
+ case 16:
+ swap = RADEON_HOST_DATA_SWAP_16BIT;
+ break;
+ case 32:
+ swap = RADEON_HOST_DATA_SWAP_32BIT;
+ break;
+ }
+#endif
+
+ while (h) {
+ int oldhpass = hpass, i = 0;
+
+ src = (CARD8*)scratch->address + scratch_off;
+
+ y += oldhpass;
+ h -= oldhpass;
+ hpass = min(h, scratch->total/2 / scratch_pitch);
+
+ /* Prepare next blit if anything's left */
+ if (hpass) {
+ scratch_off = scratch->total/2 - scratch_off;
+ RADEONBlitChunk(pScrn, datatype, src_pitch_offset, scratch_pitch_offset + (scratch_off >> 10),
+ x, y, 0, 0, w, hpass);
+ }
+
+ /*
+ * Wait for previous blit to complete.
+ *
+ * XXX: Doing here essentially the same things this ioctl does in
+ * the DRM results in corruption with 'small' transfers, apparently
+ * because the data doesn't actually land in system RAM before the
+ * memcpy. I suspect the ioctl helps mostly due to its latency; what
+ * we'd really need is a way to reliably wait for the host interface
+ * to be done with pushing the data to the host.
+ */
+ while ((drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY)
+ && (i++ < RADEON_TIMEOUT))
+ ;
+
+ /* Kick next blit */
+ if (hpass)
+ FLUSH_RING();
+
+ /* Copy out data from previous blit */
+ if (wpass == scratch_pitch && wpass == dst_pitch) {
+ RADEONCopySwap((CARD8*)dst, src, wpass * oldhpass, swap);
+ dst += dst_pitch * oldhpass;
+ } else while (oldhpass--) {
+ RADEONCopySwap((CARD8*)dst, src, wpass, swap);
+ src += scratch_pitch;
+ dst += dst_pitch;
+ }
+ }
+
+ indirect.idx = scratch->idx;
+ indirect.start = indirect.end = 0;
+ indirect.discard = 1;
+
+ drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT,
+ &indirect, sizeof(drmRadeonIndirect));
+
+ return TRUE;
+ }
+#endif
+
+ /* Can't accelerate download */
exaWaitSync(pSrc->drawable.pScreen);
#if X_BYTE_ORDER == X_BIG_ENDIAN
@@ -347,31 +477,37 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
{
RINFO_FROM_SCREEN(pScreen);
- memset(&info->exa.accel, 0, sizeof(ExaAccelInfoRec));
+ if (info->exa == NULL) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map not set up\n");
+ return FALSE;
+ }
+
+ info->exa->exa_major = 2;
+ info->exa->exa_minor = 0;
- info->exa.accel.PrepareSolid = FUNC_NAME(RADEONPrepareSolid);
- info->exa.accel.Solid = FUNC_NAME(RADEONSolid);
- info->exa.accel.DoneSolid = FUNC_NAME(RADEONDoneSolid);
+ info->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid);
+ info->exa->Solid = FUNC_NAME(RADEONSolid);
+ info->exa->DoneSolid = FUNC_NAME(RADEONDoneSolid);
- info->exa.accel.PrepareCopy = FUNC_NAME(RADEONPrepareCopy);
- info->exa.accel.Copy = FUNC_NAME(RADEONCopy);
- info->exa.accel.DoneCopy = FUNC_NAME(RADEONDoneCopy);
+ info->exa->PrepareCopy = FUNC_NAME(RADEONPrepareCopy);
+ info->exa->Copy = FUNC_NAME(RADEONCopy);
+ info->exa->DoneCopy = FUNC_NAME(RADEONDoneCopy);
- info->exa.accel.WaitMarker = FUNC_NAME(RADEONSync);
- info->exa.accel.UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
- info->exa.accel.DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
+ info->exa->WaitMarker = FUNC_NAME(RADEONSync);
+ info->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
+ info->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
#if X_BYTE_ORDER == X_BIG_ENDIAN
- info->exa.accel.PrepareAccess = RADEONPrepareAccess;
- info->exa.accel.FinishAccess = RADEONFinishAccess;
+ info->exa->PrepareAccess = RADEONPrepareAccess;
+ info->exa->FinishAccess = RADEONFinishAccess;
#endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
- info->exa.card.flags = EXA_OFFSCREEN_PIXMAPS;
- info->exa.card.pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
- info->exa.card.pixmapPitchAlign = 64;
+ info->exa->flags = EXA_OFFSCREEN_PIXMAPS;
+ info->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
+ info->exa->pixmapPitchAlign = 64;
- info->exa.card.maxX = 2047;
- info->exa.card.maxY = 2047;
+ info->exa->maxX = 2047;
+ info->exa->maxY = 2047;
#ifdef RENDER
if (info->RenderAccel) {
@@ -384,26 +520,27 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
(info->ChipFamily == CHIP_FAMILY_R200)) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"enabled for R200 type cards.\n");
- info->exa.accel.CheckComposite = R200CheckComposite;
- info->exa.accel.PrepareComposite =
+ info->exa->CheckComposite = R200CheckComposite;
+ info->exa->PrepareComposite =
FUNC_NAME(R200PrepareComposite);
- info->exa.accel.Composite = FUNC_NAME(RadeonComposite);
- info->exa.accel.DoneComposite = RadeonDoneComposite;
+ info->exa->Composite = FUNC_NAME(RadeonComposite);
+ info->exa->DoneComposite = RadeonDoneComposite;
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"enabled for R100 type cards.\n");
- info->exa.accel.CheckComposite = R100CheckComposite;
- info->exa.accel.PrepareComposite =
+ info->exa->CheckComposite = R100CheckComposite;
+ info->exa->PrepareComposite =
FUNC_NAME(R100PrepareComposite);
- info->exa.accel.Composite = FUNC_NAME(RadeonComposite);
- info->exa.accel.DoneComposite = RadeonDoneComposite;
+ info->exa->Composite = FUNC_NAME(RadeonComposite);
+ info->exa->DoneComposite = RadeonDoneComposite;
}
}
#endif
RADEONEngineInit(pScrn);
- if (!exaDriverInit(pScreen, &info->exa)) {
+ if (!exaDriverInit(pScreen, info->exa)) {
+ xfree(info->exa);
return FALSE;
}
exaMarkSync(pScreen);
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 8206600..98b8dfd 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -95,7 +95,6 @@ static struct blendinfo RadeonBlendOp[] = {
struct formatinfo {
int fmt;
- Bool byte_swap;
CARD32 card_fmt;
};
@@ -103,25 +102,23 @@ struct formatinfo {
* TXFORMAT_Y8 expands to (Y,Y,Y,1). TXFORMAT_I8 expands to (I,I,I,I)
*/
static struct formatinfo R100TexFormats[] = {
- {PICT_a8r8g8b8, 0, RADEON_TXFORMAT_ARGB8888 | RADEON_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x8r8g8b8, 0, RADEON_TXFORMAT_ARGB8888},
- {PICT_a8b8g8r8, 1, RADEON_TXFORMAT_RGBA8888 | RADEON_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x8b8g8r8, 1, RADEON_TXFORMAT_RGBA8888},
- {PICT_r5g6b5, 0, RADEON_TXFORMAT_RGB565},
- {PICT_a1r5g5b5, 0, RADEON_TXFORMAT_ARGB1555 | RADEON_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x1r5g5b5, 0, RADEON_TXFORMAT_ARGB1555},
- {PICT_a8, 0, RADEON_TXFORMAT_I8 | RADEON_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_a8r8g8b8, RADEON_TXFORMAT_ARGB8888 | RADEON_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_x8r8g8b8, RADEON_TXFORMAT_ARGB8888},
+ {PICT_r5g6b5, RADEON_TXFORMAT_RGB565},
+ {PICT_a1r5g5b5, RADEON_TXFORMAT_ARGB1555 | RADEON_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_x1r5g5b5, RADEON_TXFORMAT_ARGB1555},
+ {PICT_a8, RADEON_TXFORMAT_I8 | RADEON_TXFORMAT_ALPHA_IN_MAP},
};
static struct formatinfo R200TexFormats[] = {
- {PICT_a8r8g8b8, 0, R200_TXFORMAT_ARGB8888 | R200_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x8r8g8b8, 0, R200_TXFORMAT_ARGB8888},
- {PICT_a8b8g8r8, 1, R200_TXFORMAT_RGBA8888 | R200_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x8b8g8r8, 1, R200_TXFORMAT_RGBA8888},
- {PICT_r5g6b5, 0, R200_TXFORMAT_RGB565},
- {PICT_a1r5g5b5, 0, R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP},
- {PICT_x1r5g5b5, 0, R200_TXFORMAT_ARGB1555},
- {PICT_a8, 0, R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_a8r8g8b8, R200_TXFORMAT_ARGB8888 | R200_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_x8r8g8b8, R200_TXFORMAT_ARGB8888},
+ {PICT_a8b8g8r8, R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_x8b8g8r8, R200_TXFORMAT_ABGR8888},
+ {PICT_r5g6b5, R200_TXFORMAT_RGB565},
+ {PICT_a1r5g5b5, R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP},
+ {PICT_x1r5g5b5, R200_TXFORMAT_ARGB1555},
+ {PICT_a8, R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP},
};
/* Common Radeon setup code */
@@ -151,25 +148,36 @@ static Bool RADEONGetDestFormat(PicturePtr pDstPicture, CARD32 *dst_format)
return TRUE;
}
-static CARD32 RADEONGetBlendCntl(int op, CARD32 dst_format)
+static CARD32 RADEONGetBlendCntl(int op, PicturePtr pMask, CARD32 dst_format)
{
- CARD32 blendcntl = RadeonBlendOp[op].blend_cntl;
+ CARD32 sblend, dblend;
+
+ sblend = RadeonBlendOp[op].blend_cntl & RADEON_SRC_BLEND_MASK;
+ dblend = RadeonBlendOp[op].blend_cntl & RADEON_DST_BLEND_MASK;
+
/* If there's no dst alpha channel, adjust the blend op so that we'll treat
* it as always 1.
*/
if (PICT_FORMAT_A(dst_format) == 0 && RadeonBlendOp[op].dst_alpha) {
- if ((blendcntl & RADEON_SRC_BLEND_MASK) ==
- RADEON_SRC_BLEND_GL_DST_ALPHA) {
- blendcntl = (blendcntl & ~RADEON_SRC_BLEND_MASK) |
- RADEON_SRC_BLEND_GL_ONE;
- } else if ((blendcntl & RADEON_SRC_BLEND_MASK) ==
- RADEON_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA) {
- blendcntl = (blendcntl & ~RADEON_SRC_BLEND_MASK) |
- RADEON_SRC_BLEND_GL_ZERO;
+ if (sblend == RADEON_SRC_BLEND_GL_DST_ALPHA)
+ sblend = RADEON_SRC_BLEND_GL_ONE;
+ else if (sblend == RADEON_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA)
+ sblend = RADEON_SRC_BLEND_GL_ZERO;
+ }
+
+ /* If the source alpha is being used, then we should only be in a case where
+ * the source blend factor is 0, and the source blend value is the mask
+ * channels multiplied by the source picture's alpha.
+ */
+ if (pMask && pMask->componentAlpha && RadeonBlendOp[op].src_alpha) {
+ if (dblend == RADEON_DST_BLEND_GL_SRC_ALPHA) {
+ dblend = RADEON_DST_BLEND_GL_SRC_COLOR;
+ } else if (dblend == RADEON_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA) {
+ dblend = RADEON_DST_BLEND_GL_ONE_MINUS_SRC_COLOR;
}
}
- return blendcntl;
+ return sblend | dblend;
}
union intfloat {
@@ -234,8 +242,6 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
break;
}
txformat = R100TexFormats[i].card_fmt;
- if (R100TexFormats[i].byte_swap)
- txoffset |= RADEON_TXO_ENDIAN_BYTE_SWAP;
if (RADEONPixmapIsColortiled(pPix))
txoffset |= RADEON_TXO_MACRO_TILE;
@@ -296,12 +302,21 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
/* Check for unsupported compositing operations. */
if (op >= sizeof(RadeonBlendOp) / sizeof(RadeonBlendOp[0]))
RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op));
- if (pMaskPicture != NULL && pMaskPicture->componentAlpha &&
- RadeonBlendOp[op].src_alpha)
- {
- RADEON_FALLBACK(("Component alpha not supported with source "
- "alpha blending.\n"));
+
+ if (pMaskPicture != NULL && pMaskPicture->componentAlpha) {
+ /* Check if it's component alpha that relies on a source alpha and on
+ * the source value. We can only get one of those into the single
+ * source value that we get to blend with.
+ */
+ if (RadeonBlendOp[op].src_alpha &&
+ (RadeonBlendOp[op].blend_cntl & RADEON_SRC_BLEND_MASK) !=
+ RADEON_SRC_BLEND_GL_ZERO)
+ {
+ RADEON_FALLBACK(("Component alpha not supported with source "
+ "alpha and source value blending.\n"));
+ }
}
+
if (pDstPicture->pDrawable->width >= (1 << 11) ||
pDstPicture->pDrawable->height >= (1 << 11))
{
@@ -315,9 +330,6 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
if (pMaskPicture != NULL && !R100CheckCompositeTexture(pMaskPicture, 1))
return FALSE;
- if (pDstPicture->componentAlpha)
- return FALSE;
-
if (!RADEONGetDestFormat(pDstPicture, &tmp1))
return FALSE;
@@ -382,15 +394,20 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
/* IN operator: Multiply src by mask components or mask alpha.
* BLEND_CTL_ADD is A * B + C.
- * If a picture is a8, we have to explicitly zero its color values.
+ * If a source is a8, we have to explicitly zero its color values.
* If the destination is a8, we have to route the alpha to red, I think.
+ * If we're doing component alpha where the source for blending is going to
+ * be the source alpha (and there's no source value used), we have to zero
+ * the source's color values.
*/
cblend = RADEON_BLEND_CTL_ADD | RADEON_CLAMP_TX | RADEON_COLOR_ARG_C_ZERO;
ablend = RADEON_BLEND_CTL_ADD | RADEON_CLAMP_TX | RADEON_ALPHA_ARG_C_ZERO;
- if (pDstPicture->format == PICT_a8)
+ if (pDstPicture->format == PICT_a8 ||
+ (pMask && pMaskPicture->componentAlpha && RadeonBlendOp[op].src_alpha))
+ {
cblend |= RADEON_COLOR_ARG_A_T0_ALPHA;
- else if (pSrcPicture->format == PICT_a8)
+ } else if (pSrcPicture->format == PICT_a8)
cblend |= RADEON_COLOR_ARG_A_ZERO;
else
cblend |= RADEON_COLOR_ARG_A_T0_COLOR;
@@ -414,7 +431,8 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
RADEON_SE_VTX_FMT_ST0 |
RADEON_SE_VTX_FMT_ST1);
/* Op operator. */
- blendcntl = RADEONGetBlendCntl(op, pDstPicture->format);
+ blendcntl = RADEONGetBlendCntl(op, pMaskPicture, pDstPicture->format);
+
OUT_ACCEL_REG(RADEON_RB3D_BLENDCNTL, blendcntl);
FINISH_ACCEL();
@@ -477,8 +495,6 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
break;
}
txformat = R200TexFormats[i].card_fmt;
- if (R200TexFormats[i].byte_swap)
- txoffset |= R200_TXO_ENDIAN_BYTE_SWAP;
if (RADEONPixmapIsColortiled(pPix))
txoffset |= R200_TXO_MACRO_TILE;
@@ -543,10 +559,20 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
/* Check for unsupported compositing operations. */
if (op >= sizeof(RadeonBlendOp) / sizeof(RadeonBlendOp[0]))
RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op));
- if (pMaskPicture != NULL && pMaskPicture->componentAlpha &&
- RadeonBlendOp[op].src_alpha)
- RADEON_FALLBACK(("Component alpha not supported with source "
- "alpha blending.\n"));
+
+ if (pMaskPicture != NULL && pMaskPicture->componentAlpha) {
+ /* Check if it's component alpha that relies on a source alpha and on
+ * the source value. We can only get one of those into the single
+ * source value that we get to blend with.
+ */
+ if (RadeonBlendOp[op].src_alpha &&
+ (RadeonBlendOp[op].blend_cntl & RADEON_SRC_BLEND_MASK) !=
+ RADEON_SRC_BLEND_GL_ZERO)
+ {
+ RADEON_FALLBACK(("Component alpha not supported with source "
+ "alpha and source value blending.\n"));
+ }
+ }
if (!R200CheckCompositeTexture(pSrcPicture, 0))
return FALSE;
@@ -620,13 +646,18 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
* BLEND_CTL_ADD is A * B + C.
* If a picture is a8, we have to explicitly zero its color values.
* If the destination is a8, we have to route the alpha to red, I think.
+ * If we're doing component alpha where the source for blending is going to
+ * be the source alpha (and there's no source value used), we have to zero
+ * the source's color values.
*/
cblend = R200_TXC_OP_MADD | R200_TXC_ARG_C_ZERO;
ablend = R200_TXA_OP_MADD | R200_TXA_ARG_C_ZERO;
- if (pDstPicture->format == PICT_a8)
+ if (pDstPicture->format == PICT_a8 ||
+ (pMask && pMaskPicture->componentAlpha && RadeonBlendOp[op].src_alpha))
+ {
cblend |= R200_TXC_ARG_A_R0_ALPHA;
- else if (pSrcPicture->format == PICT_a8)
+ } else if (pSrcPicture->format == PICT_a8)
cblend |= R200_TXC_ARG_A_ZERO;
else
cblend |= R200_TXC_ARG_A_R0_COLOR;
@@ -652,7 +683,7 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
R200_TXA_CLAMP_0_1 | R200_TXA_OUTPUT_REG_R0);
/* Op operator. */
- blendcntl = RADEONGetBlendCntl(op, pDstPicture->format);
+ blendcntl = RADEONGetBlendCntl(op, pMaskPicture, pDstPicture->format);
OUT_ACCEL_REG(RADEON_RB3D_BLENDCNTL, blendcntl);
FINISH_ACCEL();
diff --git a/src/radeon_macros.h b/src/radeon_macros.h
index b121a95..0d27405 100644
--- a/src/radeon_macros.h
+++ b/src/radeon_macros.h
@@ -50,9 +50,6 @@
#ifndef _RADEON_MACROS_H_
#define _RADEON_MACROS_H_
-#ifdef XFree86Module
-#include "xf86_ansic.h"
-#endif
#include "compiler.h"
#define RADEON_BIOS8(v) (info->VBIOS[v])
diff --git a/src/radeon_mergedfb.c b/src/radeon_mergedfb.c
index 186abc0..313dda2 100644
--- a/src/radeon_mergedfb.c
+++ b/src/radeon_mergedfb.c
@@ -36,6 +36,9 @@
* Based, in large part, on the sis driver by Thomas Winischhofer.
*/
+#include <string.h>
+#include <stdio.h>
+
#include "xf86.h"
#include "xf86Priv.h"
#include "xf86Resources.h"
@@ -344,8 +347,6 @@ RADEONGenerateModeListFromLargestModes(ScrnInfoPtr pScrn,
DisplayModePtr mode3 = NULL;
DisplayModePtr mode4 = NULL;
DisplayModePtr result = NULL;
- int p = 0;
- int count = 0;
info->AtLeastOneNonClone = FALSE;
@@ -1738,119 +1739,125 @@ RADEONAdjustFrameMerged(int scrnIndex, int x, int y, int flags)
RADEONDoAdjustFrame(pScrn1, pScrn2->frameX0, pScrn2->frameY0, TRUE);
}
-void
-RADEONMergedFBSetDpi(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, RADEONScrn2Rel srel)
+static void
+RADEONMergedFBCalcDPI(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, RADEONScrn2Rel srel, Bool quiet)
{
- RADEONInfoPtr info = RADEONPTR(pScrn1);
- MessageType from = X_DEFAULT;
- xf86MonPtr DDC1 = (xf86MonPtr)(pScrn1->monitor->DDC);
- xf86MonPtr DDC2 = (xf86MonPtr)(pScrn2->monitor->DDC);
- int ddcWidthmm = 0, ddcHeightmm = 0;
- const char *dsstr = "MergedFB: Display dimensions: (%d, %d) mm\n";
-
- /* This sets the DPI for MergedFB mode. The problem is that
- * this can never be exact, because the output devices may
- * have different dimensions. This function tries to compromise
- * through a few assumptions, and it just calculates an average DPI
- * value for both monitors.
- */
-
- /* Given DisplaySize should regard BOTH monitors */
- pScrn1->widthmm = pScrn1->monitor->widthmm;
- pScrn1->heightmm = pScrn1->monitor->heightmm;
-
- /* Get DDC display size; if only either CRT1 or CRT2 provided these,
- * assume equal dimensions for both, otherwise add dimensions
- */
- if( (DDC1 && (DDC1->features.hsize > 0 && DDC1->features.vsize > 0)) &&
- (DDC2 && (DDC2->features.hsize > 0 && DDC2->features.vsize > 0)) ) {
- ddcWidthmm = max(DDC1->features.hsize, DDC2->features.hsize) * 10;
- ddcHeightmm = max(DDC1->features.vsize, DDC2->features.vsize) * 10;
- switch(srel) {
- case radeonLeftOf:
- case radeonRightOf:
- ddcWidthmm = (DDC1->features.hsize + DDC2->features.hsize) * 10;
- break;
- case radeonAbove:
- case radeonBelow:
- ddcHeightmm = (DDC1->features.vsize + DDC2->features.vsize) * 10;
- default:
- break;
- }
-
- } else if(DDC1 && (DDC1->features.hsize > 0 && DDC1->features.vsize > 0)) {
- ddcWidthmm = DDC1->features.hsize * 10;
- ddcHeightmm = DDC1->features.vsize * 10;
- switch(srel) {
- case radeonLeftOf:
- case radeonRightOf:
- ddcWidthmm *= 2;
- break;
- case radeonAbove:
- case radeonBelow:
- ddcHeightmm *= 2;
- default:
- break;
- }
- } else if(DDC2 && (DDC2->features.hsize > 0 && DDC2->features.vsize > 0) ) {
- ddcWidthmm = DDC2->features.hsize * 10;
- ddcHeightmm = DDC2->features.vsize * 10;
- switch(srel) {
- case radeonLeftOf:
- case radeonRightOf:
- ddcWidthmm *= 2;
- break;
- case radeonAbove:
- case radeonBelow:
- ddcHeightmm *= 2;
- default:
- break;
- }
- }
+ RADEONInfoPtr info = RADEONPTR(pScrn1);
+ MessageType from = X_DEFAULT;
+ xf86MonPtr DDC1 = (xf86MonPtr)(pScrn1->monitor->DDC);
+ xf86MonPtr DDC2 = (xf86MonPtr)(pScrn2->monitor->DDC);
+ int ddcWidthmm = 0, ddcHeightmm = 0;
+ const char *dsstr = "MergedFB: Display dimensions: %dx%d mm\n";
+
+ /* This sets the DPI for MergedFB mode. The problem is that
+ * this can never be exact, because the output devices may
+ * have different dimensions. This function tries to compromise
+ * through a few assumptions, and it just calculates an average
+ * DPI value for both monitors.
+ */
- if(monitorResolution > 0) {
+ /* Copy user-given DisplaySize (which should regard BOTH monitors!) */
+ pScrn1->widthmm = pScrn1->monitor->widthmm;
+ pScrn1->heightmm = pScrn1->monitor->heightmm;
- /* Set command line given values (overrules given options) */
- pScrn1->xDpi = monitorResolution;
- pScrn1->yDpi = monitorResolution;
- from = X_CMDLINE;
+ if(monitorResolution > 0) {
- } else if(info->MergedFBXDPI) {
+ /* Set command line given values (overrules given options) */
+ pScrn1->xDpi = monitorResolution;
+ pScrn1->yDpi = monitorResolution;
+ from = X_CMDLINE;
- /* Set option-wise given values (overrule DisplaySize) */
- pScrn1->xDpi = info->MergedFBXDPI;
- pScrn1->yDpi = info->MergedFBYDPI;
- from = X_CONFIG;
+ } else if(info->MergedFBXDPI) {
- } else if(pScrn1->widthmm > 0 || pScrn1->heightmm > 0) {
+ /* Set option-wise given values (overrules DisplaySize config option) */
+ pScrn1->xDpi = info->MergedFBXDPI;
+ pScrn1->yDpi = info->MergedFBYDPI;
+ from = X_CONFIG;
- /* Set values calculated from given DisplaySize */
- from = X_CONFIG;
- if(pScrn1->widthmm > 0) {
- pScrn1->xDpi = (int)((double)pScrn1->virtualX * 25.4 / pScrn1->widthmm);
- }
- if(pScrn1->heightmm > 0) {
- pScrn1->yDpi = (int)((double)pScrn1->virtualY * 25.4 / pScrn1->heightmm);
- }
- xf86DrvMsg(pScrn1->scrnIndex, from, dsstr, pScrn1->widthmm, pScrn1->heightmm);
+ } else if(pScrn1->widthmm > 0 || pScrn1->heightmm > 0) {
+
+ /* Set values calculated from given DisplaySize */
+ from = X_CONFIG;
+ if(pScrn1->widthmm > 0) {
+ pScrn1->xDpi = (int)((double)pScrn1->virtualX * 25.4 / pScrn1->widthmm);
+ }
+ if(pScrn1->heightmm > 0) {
+ pScrn1->yDpi = (int)((double)pScrn1->virtualY * 25.4 / pScrn1->heightmm);
+ }
+ if(!quiet) {
+ xf86DrvMsg(pScrn1->scrnIndex, from, dsstr, pScrn1->widthmm, pScrn1->heightmm);
+ }
} else if(ddcWidthmm && ddcHeightmm) {
- /* Set values from DDC-provided display size */
- from = X_PROBED;
- xf86DrvMsg(pScrn1->scrnIndex, from, dsstr, ddcWidthmm, ddcHeightmm );
- pScrn1->widthmm = ddcWidthmm;
- pScrn1->heightmm = ddcHeightmm;
- if(pScrn1->widthmm > 0) {
- pScrn1->xDpi = (int)((double)pScrn1->virtualX * 25.4 / pScrn1->widthmm);
- }
- if(pScrn1->heightmm > 0) {
- pScrn1->yDpi = (int)((double)pScrn1->virtualY * 25.4 / pScrn1->heightmm);
- }
+ /* Set values from DDC-provided display size */
+
+ /* Get DDC display size; if only either CRT1 or CRT2 provided these,
+ * assume equal dimensions for both, otherwise add dimensions
+ */
+ if( (DDC1 && (DDC1->features.hsize > 0 && DDC1->features.vsize > 0)) &&
+ (DDC2 && (DDC2->features.hsize > 0 && DDC2->features.vsize > 0)) ) {
+ ddcWidthmm = max(DDC1->features.hsize, DDC2->features.hsize) * 10;
+ ddcHeightmm = max(DDC1->features.vsize, DDC2->features.vsize) * 10;
+ switch(srel) {
+ case radeonLeftOf:
+ case radeonRightOf:
+ ddcWidthmm = (DDC1->features.hsize + DDC2->features.hsize) * 10;
+ break;
+ case radeonAbove:
+ case radeonBelow:
+ ddcHeightmm = (DDC1->features.vsize + DDC2->features.vsize) * 10;
+ default:
+ break;
+ }
+ } else if(DDC1 && (DDC1->features.hsize > 0 && DDC1->features.vsize > 0)) {
+ ddcWidthmm = DDC1->features.hsize * 10;
+ ddcHeightmm = DDC1->features.vsize * 10;
+ switch(srel) {
+ case radeonLeftOf:
+ case radeonRightOf:
+ ddcWidthmm *= 2;
+ break;
+ case radeonAbove:
+ case radeonBelow:
+ ddcHeightmm *= 2;
+ default:
+ break;
+ }
+ } else if(DDC2 && (DDC2->features.hsize > 0 && DDC2->features.vsize > 0) ) {
+ ddcWidthmm = DDC2->features.hsize * 10;
+ ddcHeightmm = DDC2->features.vsize * 10;
+ switch(srel) {
+ case radeonLeftOf:
+ case radeonRightOf:
+ ddcWidthmm *= 2;
+ break;
+ case radeonAbove:
+ case radeonBelow:
+ ddcHeightmm *= 2;
+ default:
+ break;
+ }
+ }
+
+ from = X_PROBED;
+
+ if(!quiet) {
+ xf86DrvMsg(pScrn1->scrnIndex, from, dsstr, ddcWidthmm, ddcHeightmm);
+ }
+
+ pScrn1->widthmm = ddcWidthmm;
+ pScrn1->heightmm = ddcHeightmm;
+ if(pScrn1->widthmm > 0) {
+ pScrn1->xDpi = (int)((double)pScrn1->virtualX * 25.4 / pScrn1->widthmm);
+ }
+ if(pScrn1->heightmm > 0) {
+ pScrn1->yDpi = (int)((double)pScrn1->virtualY * 25.4 / pScrn1->heightmm);
+ }
} else {
- pScrn1->xDpi = pScrn1->yDpi = DEFAULT_DPI;
+ pScrn1->xDpi = pScrn1->yDpi = DEFAULT_DPI;
}
@@ -1863,8 +1870,60 @@ RADEONMergedFBSetDpi(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, RADEONScrn2Rel srel
pScrn2->xDpi = pScrn1->xDpi;
pScrn2->yDpi = pScrn1->yDpi;
- xf86DrvMsg(pScrn1->scrnIndex, from, "MergedFB: DPI set to (%d, %d)\n",
- pScrn1->xDpi, pScrn1->yDpi);
+ if(!quiet) {
+ xf86DrvMsg(pScrn1->scrnIndex, from, "MergedFB: DPI set to (%d, %d)\n",
+ pScrn1->xDpi, pScrn1->yDpi);
+ }
+}
+
+
+void
+RADEONMergedFBSetDpi(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, RADEONScrn2Rel srel)
+{
+ RADEONInfoPtr info = RADEONPTR(pScrn1);
+
+ RADEONMergedFBCalcDPI(pScrn1, pScrn2, srel, FALSE);
+
+ info->MergedDPISRel = srel;
+ info->RADEONMergedDPIVX = pScrn1->virtualX;
+ info->RADEONMergedDPIVY = pScrn1->virtualY;
+
+}
+
+void
+RADEONMergedFBResetDpi(ScrnInfoPtr pScrn, Bool force)
+{
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
+ RADEONScrn2Rel srel = ((RADEONMergedDisplayModePtr)info->CurrentLayout.mode->Private)->CRT2Position;
+
+ /* This does the same calculation for the DPI as
+ * the initial run. This means that an eventually
+ * given -dpi command line switch will lead to
+ * constant dpi values, regardless of the virtual
+ * screen size.
+ * I consider this consequent. If this is undesired,
+ * one should use the DisplaySize parameter in the
+ * config file instead of the command line switch.
+ * The DPI will be calculated then.
+ */
+
+ if(force ||
+ (info->MergedDPISRel != srel) ||
+ (info->RADEONMergedDPIVX != pScrn->virtualX) ||
+ (info->RADEONMergedDPIVY != pScrn->virtualY)
+ ) {
+
+ RADEONMergedFBCalcDPI(pScrn, info->CRT2pScrn, srel, TRUE);
+
+ pScreen->mmWidth = (pScrn->virtualX * 254 + pScrn->xDpi * 5) / (pScrn->xDpi * 10);
+ pScreen->mmHeight = (pScrn->virtualY * 254 + pScrn->yDpi * 5) / (pScrn->yDpi * 10);
+
+ info->MergedDPISRel = srel;
+ info->RADEONMergedDPIVX = pScrn->virtualX;
+ info->RADEONMergedDPIVY = pScrn->virtualY;
+
+ }
}
/* radeon cursor helpers */
@@ -1965,14 +2024,7 @@ RADEONSetCursorPositionMerged(ScrnInfoPtr pScrn, int x, int y)
OUTREG(RADEON_CUR_HORZ_VERT_POSN, (RADEON_CUR_LOCK
| ((xorigin ? 0 : x1) << 16)
| (yorigin ? 0 : y1)));
-#ifdef USE_EXA
- if (info->useEXA)
- OUTREG(RADEON_CUR_OFFSET, info->cursor_offset + yorigin * stride);
-#endif /* USE_EXA */
-#ifdef USE_XAA
- if (!info->useEXA)
- OUTREG(RADEON_CUR_OFFSET, info->cursor_offset + yorigin * stride);
-#endif /* USE_XAA */
+ OUTREG(RADEON_CUR_OFFSET, info->cursor_offset + yorigin * stride);
/* cursor2 */
OUTREG(RADEON_CUR2_HORZ_VERT_OFF, (RADEON_CUR2_LOCK
| (xorigin << 16)
@@ -1980,14 +2032,7 @@ RADEONSetCursorPositionMerged(ScrnInfoPtr pScrn, int x, int y)
OUTREG(RADEON_CUR2_HORZ_VERT_POSN, (RADEON_CUR2_LOCK
| ((xorigin ? 0 : x2) << 16)
| (yorigin ? 0 : y2)));
-#ifdef USE_EXA
- if (info->useEXA)
- OUTREG(RADEON_CUR2_OFFSET, info->cursor_offset + yorigin * stride);
-#endif /* USE_EXA */
-#ifdef USE_XAA
- if (!info->useEXA)
- OUTREG(RADEON_CUR2_OFFSET, info->cursor_offset + yorigin * stride);
-#endif /* USE_XAA */
+ OUTREG(RADEON_CUR2_OFFSET, info->cursor_offset + yorigin * stride);
}
/* radeon Xv helpers */
diff --git a/src/radeon_mergedfb.h b/src/radeon_mergedfb.h
index a2c792c..f827428 100644
--- a/src/radeon_mergedfb.h
+++ b/src/radeon_mergedfb.h
@@ -107,6 +107,8 @@ RADEONUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1);
extern void
RADEONMergedFBSetDpi(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, RADEONScrn2Rel srel);
extern void
+RADEONMergedFBResetDpi(ScrnInfoPtr pScrn, Bool force);
+extern void
RADEONRecalcDefaultVirtualSize(ScrnInfoPtr pScrn);
/* needed by radeon_cursor.c */
diff --git a/src/radeon_mm_i2c.c b/src/radeon_mm_i2c.c
index f95bcf5..377c3df 100644
--- a/src/radeon_mm_i2c.c
+++ b/src/radeon_mm_i2c.c
@@ -2,6 +2,8 @@
#include "config.h"
#endif
+#include <math.h>
+
#include "radeon.h"
#include "radeon_reg.h"
#include "radeon_macros.h"
@@ -116,7 +118,6 @@ static void RADEON_I2C_Halt (ScrnInfoPtr pScrn)
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
CARD8 reg;
- long counter = 0;
/* reset status flags */
RADEONWaitForIdleMMIO(pScrn);
@@ -302,6 +303,7 @@ static Bool R200_I2CWriteRead(I2CDevPtr d, I2CByte *WriteBuffer, int nWrite,
return TRUE;
}
+#if 0
static Bool RADEONProbeAddress(I2CBusPtr b, I2CSlaveAddr addr)
{
I2CByte a;
@@ -314,6 +316,7 @@ static Bool RADEONProbeAddress(I2CBusPtr b, I2CSlaveAddr addr)
return I2C_WriteRead(&d, NULL, 0, &a, 1);
}
+#endif
#define I2C_CLOCK_FREQ (60000.0)
@@ -376,8 +379,6 @@ void RADEONInitI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
double nm;
RADEONInfoPtr info = RADEONPTR(pScrn);
RADEONPLLPtr pll = &(info->pll);
- int i;
- unsigned char *RADEONMMIO = info->MMIO;
pPriv->i2c = NULL;
pPriv->fi1236 = NULL;
diff --git a/src/radeon_probe.c b/src/radeon_probe.c
index ddb510e..40f88dc 100644
--- a/src/radeon_probe.c
+++ b/src/radeon_probe.c
@@ -31,6 +31,8 @@
#include "config.h"
#endif
+#include <string.h>
+
/*
* Authors:
* Kevin E. Martin <martin@xfree86.org>
@@ -47,7 +49,6 @@
#include "atipciids.h"
#include "xf86.h"
-#include "xf86_ansic.h"
#define _XF86MISC_SERVER_
#include <X11/extensions/xf86misc.h>
#include "xf86Resources.h"
diff --git a/src/radeon_reg.h b/src/radeon_reg.h
index 53cc803..b7c6e26 100644
--- a/src/radeon_reg.h
+++ b/src/radeon_reg.h
@@ -2435,6 +2435,7 @@
# define R200_TXFORMAT_DXT1 (12 << 0)
# define R200_TXFORMAT_DXT23 (14 << 0)
# define R200_TXFORMAT_DXT45 (15 << 0)
+# define R200_TXFORMAT_ABGR8888 (22 << 0)
# define R200_TXFORMAT_FORMAT_MASK (31 << 0)
# define R200_TXFORMAT_FORMAT_SHIFT 0
# define R200_TXFORMAT_ALPHA_IN_MAP (1 << 6)
diff --git a/src/radeon_render.c b/src/radeon_render.c
index 0fab39f..9e3529e 100644
--- a/src/radeon_render.c
+++ b/src/radeon_render.c
@@ -31,6 +31,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#ifdef USE_XAA
#include "dixstruct.h"
@@ -381,9 +383,10 @@ static Bool FUNC_NAME(R100SetupTexture)(
RADEONInfoPtr info = RADEONPTR(pScrn);
CARD8 *dst;
CARD32 tex_size = 0, txformat;
- int dst_pitch, offset, size, i, tex_bytepp;
+ int dst_pitch, offset, size, tex_bytepp;
#ifdef ACCEL_CP
- CARD32 buf_pitch;
+ CARD32 buf_pitch, dst_pitch_off;
+ int x, y;
unsigned int hpass;
CARD8 *tmp_dst;
#endif
@@ -428,11 +431,13 @@ static Bool FUNC_NAME(R100SetupTexture)(
#ifdef ACCEL_CP
+ RADEONHostDataParams( pScrn, dst, dst_pitch, tex_bytepp, &dst_pitch_off, &x, &y );
+
while ( height )
{
tmp_dst = RADEONHostDataBlit( pScrn, tex_bytepp, width,
- dst_pitch, &buf_pitch,
- &dst, &height, &hpass);
+ dst_pitch_off, &buf_pitch,
+ x, &y, &height, &hpass );
RADEONHostDataBlitCopyPass( pScrn, tex_bytepp, tmp_dst, src,
hpass, buf_pitch, src_pitch );
src += hpass * src_pitch;
@@ -443,12 +448,10 @@ static Bool FUNC_NAME(R100SetupTexture)(
#else
- i = height;
-
if (info->accel->NeedToSync)
info->accel->Sync(pScrn);
- while(i--) {
+ while (height--) {
memcpy(dst, src, width * tex_bytepp);
src += src_pitch;
dst += dst_pitch;
@@ -713,9 +716,10 @@ static Bool FUNC_NAME(R200SetupTexture)(
RADEONInfoPtr info = RADEONPTR(pScrn);
CARD8 *dst;
CARD32 tex_size = 0, txformat;
- int dst_pitch, offset, size, i, tex_bytepp;
+ int dst_pitch, offset, size, tex_bytepp;
#ifdef ACCEL_CP
- CARD32 buf_pitch;
+ CARD32 buf_pitch, dst_pitch_off;
+ int x, y;
unsigned int hpass;
CARD8 *tmp_dst;
#endif
@@ -760,11 +764,13 @@ static Bool FUNC_NAME(R200SetupTexture)(
#ifdef ACCEL_CP
+ RADEONHostDataParams( pScrn, dst, dst_pitch, tex_bytepp, &dst_pitch_off, &x, &y );
+
while ( height )
{
tmp_dst = RADEONHostDataBlit( pScrn, tex_bytepp, width,
- dst_pitch, &buf_pitch,
- &dst, &height, &hpass );
+ dst_pitch_off, &buf_pitch,
+ x, &y, &height, &hpass );
RADEONHostDataBlitCopyPass( pScrn, tex_bytepp, tmp_dst, src,
hpass, buf_pitch, src_pitch );
src += hpass * src_pitch;
@@ -775,11 +781,10 @@ static Bool FUNC_NAME(R200SetupTexture)(
#else
- i = height;
if (info->accel->NeedToSync)
info->accel->Sync(pScrn);
- while(i--) {
+ while (height--) {
memcpy(dst, src, width * tex_bytepp);
src += src_pitch;
dst += dst_pitch;
diff --git a/src/radeon_version.h b/src/radeon_version.h
index 5fc41c4..a0f87e6 100644
--- a/src/radeon_version.h
+++ b/src/radeon_version.h
@@ -42,8 +42,8 @@
#define RADEON_VERSION_MAJOR 4
#define RADEON_VERSION_MAJOR_TILED 5
-#define RADEON_VERSION_MINOR 0
-#define RADEON_VERSION_PATCH 3
+#define RADEON_VERSION_MINOR 2
+#define RADEON_VERSION_PATCH 0
#ifndef RADEON_VERSION_EXTRA
#define RADEON_VERSION_EXTRA ""
diff --git a/src/radeon_video.c b/src/radeon_video.c
index e11864c..a077cdf 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -4,6 +4,11 @@
#include "config.h"
#endif
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
#include "radeon.h"
#include "radeon_reg.h"
#include "radeon_macros.h"
@@ -25,13 +30,6 @@
#include "msp3430.h"
#include "tda9885.h"
-#ifdef USE_EXA
-/* FIXME : the video code hasn't been ported so this is a hack to make
- * it compile at all without too much ifdefing */
-#include "xaa.h"
-#include "xf86fbman.h"
-#endif
-
#define OFF_DELAY 250 /* milliseconds */
#define FREE_DELAY 15000
@@ -85,7 +83,8 @@ static void RADEONQueryBestSize(ScrnInfoPtr, Bool, short, short, short, short,
unsigned int *, unsigned int *, pointer);
static int RADEONPutImage(ScrnInfoPtr, short, short, short, short, short,
short, short, short, int, unsigned char*, short,
- short, Bool, RegionPtr, pointer);
+ short, Bool, RegionPtr, pointer,
+ DrawablePtr);
static int RADEONQueryImageAttributes(ScrnInfoPtr, int, unsigned short *,
unsigned short *, int *, int *);
static void RADEONFreeMemory(ScrnInfoPtr pScrn, void *mem_struct);
@@ -93,7 +92,7 @@ static void RADEONFreeMemory(ScrnInfoPtr pScrn, void *mem_struct);
static void RADEONVideoTimerCallback(ScrnInfoPtr pScrn, Time now);
static int RADEONPutVideo(ScrnInfoPtr pScrn, short src_x, short src_y, short drw_x, short drw_y,
short src_w, short src_h, short drw_w, short drw_h,
- RegionPtr clipBoxes, pointer data);
+ RegionPtr clipBoxes, pointer data, DrawablePtr pDraw);
static void RADEON_board_setmisc(RADEONPortPrivPtr pPriv);
static void RADEON_RT_SetEncoding(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
@@ -410,7 +409,7 @@ typedef struct tagREF_TRANSFORM
} REF_TRANSFORM;
/* Parameters for ITU-R BT.601 and ITU-R BT.709 colour spaces */
-REF_TRANSFORM trans[2] =
+static REF_TRANSFORM trans[2] =
{
{1.1678, 0.0, 1.6007, -0.3929, -0.8154, 2.0232, 0.0}, /* BT.601 */
{1.1678, 0.0, 1.7980, -0.2139, -0.5345, 2.1186, 0.0} /* BT.709 */
@@ -478,7 +477,7 @@ typedef struct tagGAMMA_CURVE_R200
/* Preset gammas */
-GAMMA_CURVE_R100 gamma_curve_r100[8] =
+static GAMMA_CURVE_R100 gamma_curve_r100[8] =
{
/* Gamma 1.0 */
{0x100, 0x0,
@@ -546,7 +545,7 @@ GAMMA_CURVE_R100 gamma_curve_r100[8] =
0.9135}
};
-GAMMA_CURVE_R200 gamma_curve_r200[8] =
+static GAMMA_CURVE_R200 gamma_curve_r200[8] =
{
/* Gamma 1.0 */
{0x00000040, 0x00000000,
@@ -1263,7 +1262,7 @@ static void RADEONSetupTheatre(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Unsupported reference clock frequency, Rage Theatre disabled\n");
t->theatre_num=-1;
- xf86free(pPriv->theatre);
+ xfree(pPriv->theatre);
pPriv->theatre = NULL;
return;
}
@@ -2042,7 +2041,8 @@ RADEONCopyData(
if ( info->directRenderingEnabled && info->DMAForXv )
{
CARD8 *buf;
- CARD32 bufPitch;
+ CARD32 bufPitch, dstPitchOff;
+ int x, y;
unsigned int hpass;
/* Get the byte-swapping right for big endian systems */
@@ -2052,8 +2052,10 @@ RADEONCopyData(
bpp = 1;
}
- while ( buf = RADEONHostDataBlit( pScrn, bpp, w, dstPitch,
- &bufPitch, &dst, &h, &hpass ) )
+ RADEONHostDataParams( pScrn, dst, dstPitch, bpp, &dstPitchOff, &x, &y );
+
+ while ( (buf = RADEONHostDataBlit( pScrn, bpp, w, dstPitchOff, &bufPitch,
+ x, &y, &h, &hpass )) )
{
RADEONHostDataBlitCopyPass( pScrn, bpp, buf, src, hpass, bufPitch,
srcPitch );
@@ -2100,6 +2102,7 @@ RADEONCopyData(
}
}
+#ifdef XF86DRI
static void RADEON_420_422(
unsigned int *d,
unsigned char *s1,
@@ -2114,7 +2117,7 @@ static void RADEON_420_422(
n--;
}
}
-
+#endif
static void
RADEONCopyRGB24Data(
@@ -2134,23 +2137,25 @@ RADEONCopyRGB24Data(
if ( info->directRenderingEnabled && info->DMAForXv )
{
- CARD32 bufPitch;
+ CARD32 bufPitch, dstPitchOff;
+ int x, y;
unsigned int hpass;
/* XXX Fix endian flip on R300 */
- while ( dptr = ( CARD32* )RADEONHostDataBlit( pScrn, 4, w, dstPitch,
- &bufPitch, &dst, &h,
- &hpass ) )
+ RADEONHostDataParams( pScrn, dst, dstPitch, 4, &dstPitchOff, &x, &y );
+
+ while ( (dptr = ( CARD32* )RADEONHostDataBlit( pScrn, 4, w, dstPitch,
+ &bufPitch, x, &y, &h,
+ &hpass )) )
{
for( j = 0; j < hpass; j++ )
{
sptr = src;
- for ( i = 0 ; i < w; i++ )
+ for ( i = 0 ; i < w; i++, sptr += 3 )
{
- *dptr++ = ( ( *sptr++ ) << 24 ) | ( ( *sptr++ ) << 16 ) |
- ( *sptr++ );
+ *dptr++ = (sptr[0] << 24) | (sptr[1] << 16) | sptr[2];
}
src += hpass * srcPitch;
@@ -2209,13 +2214,16 @@ RADEONCopyMungedData(
if ( info->directRenderingEnabled && info->DMAForXv )
{
CARD8 *buf;
- CARD32 y = 0, bufPitch;
+ CARD32 y = 0, bufPitch, dstPitchOff;
+ int blitX, blitY;
unsigned int hpass;
/* XXX Fix endian flip on R300 */
- while ( buf = RADEONHostDataBlit( pScrn, 4, w/2, dstPitch,
- &bufPitch, &dst1, &h, &hpass ) )
+ RADEONHostDataParams( pScrn, dst1, dstPitch, 4, &dstPitchOff, &blitX, &blitY );
+
+ while ( (buf = RADEONHostDataBlit( pScrn, 4, w/2, dstPitchOff, &bufPitch,
+ blitX, &blitY, &h, &hpass )) )
{
while ( hpass-- )
{
@@ -2410,7 +2418,7 @@ RADEONDisplayVideo(
){
RADEONInfoPtr info = RADEONPTR(pScrn);
unsigned char *RADEONMMIO = info->MMIO;
- int v_inc, h_inc, h_inc_uv, step_by_y, step_by_uv, tmp;
+ CARD32 v_inc, h_inc, h_inc_uv, step_by_y, step_by_uv, tmp;
double h_inc_d;
int p1_h_accum_init, p23_h_accum_init;
int p1_v_accum_init;
@@ -2699,7 +2707,8 @@ RADEONPutImage(
int id, unsigned char* buf,
short width, short height,
Bool Sync,
- RegionPtr clipBoxes, pointer data
+ RegionPtr clipBoxes, pointer data,
+ DrawablePtr pDraw
){
RADEONInfoPtr info = RADEONPTR(pScrn);
RADEONPortPrivPtr pPriv = (RADEONPortPrivPtr)data;
@@ -2710,9 +2719,6 @@ RADEONPutImage(
int top, left, npixels, nlines, bpp;
BoxRec dstBox;
CARD32 tmp;
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- unsigned char *RADEONMMIO = info->MMIO;
-#endif
/*
* s2offset, s3offset - byte offsets into U and V plane of the
@@ -2909,6 +2915,18 @@ RADEONQueryImageAttributes(
if(offsets) offsets[2] = size;
size += tmp;
break;
+ case FOURCC_RGBA32:
+ size = *w << 2;
+ if(pitches) pitches[0] = size;
+ size *= *h;
+ break;
+ case FOURCC_RGB24:
+ size = *w * 3;
+ if(pitches) pitches[0] = size;
+ size *= *h;
+ break;
+ case FOURCC_RGBT16:
+ case FOURCC_RGB16:
case FOURCC_UYVY:
case FOURCC_YUY2:
default:
@@ -3178,7 +3196,8 @@ RADEONPutVideo(
short drw_x, short drw_y,
short src_w, short src_h,
short drw_w, short drw_h,
- RegionPtr clipBoxes, pointer data
+ RegionPtr clipBoxes, pointer data,
+ DrawablePtr pDraw
){
RADEONInfoPtr info = RADEONPTR(pScrn);
RADEONPortPrivPtr pPriv = (RADEONPortPrivPtr)data;
diff --git a/src/radeon_vip.c b/src/radeon_vip.c
index b61adfe..abcba06 100644
--- a/src/radeon_vip.c
+++ b/src/radeon_vip.c
@@ -2,6 +2,8 @@
#include "config.h"
#endif
+#include <string.h>
+
#include "radeon.h"
#include "radeon_reg.h"
#include "radeon_macros.h"
diff --git a/src/theatre.c b/src/theatre.c
index 7008ca3..0a635fa 100644
--- a/src/theatre.c
+++ b/src/theatre.c
@@ -2,6 +2,7 @@
#include "config.h"
#endif
+#include <unistd.h>
#include "xf86.h"
#include "generic_bus.h"
#include "theatre.h"
@@ -1795,7 +1796,7 @@ void RT_SetConnector (TheatrePtr t, CARD16 wConnector, int tunerFlag)
counter++;
}
dwTempContrast = ReadRT_fld (fld_LP_CONTRAST);
- if(counter>=10000)xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "Rage Theatre: timeout waiting for line count (%d)\n", ReadRT_fld (fld_VS_LINE_COUNT));
+ if(counter>=10000)xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "Rage Theatre: timeout waiting for line count (%ld)\n", ReadRT_fld (fld_VS_LINE_COUNT));
WriteRT_fld (fld_LP_CONTRAST, 0x0);
@@ -1850,7 +1851,7 @@ void RT_SetConnector (TheatrePtr t, CARD16 wConnector, int tunerFlag)
counter++;
}
WriteRT_fld (fld_LP_CONTRAST, dwTempContrast);
- if(counter>=10000)xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "Rage Theatre: timeout waiting for line count (%d)\n", ReadRT_fld (fld_VS_LINE_COUNT));
+ if(counter>=10000)xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "Rage Theatre: timeout waiting for line count (%ld)\n", ReadRT_fld (fld_VS_LINE_COUNT));
@@ -1941,7 +1942,7 @@ void DumpRageTheatreRegs(TheatrePtr t)
for(i=0;i<0x900;i+=4)
{
RT_regr(i, &data);
- xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register 0x%04x is equal to 0x%08x\n", i, data);
+ xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register 0x%04x is equal to 0x%08lx\n", i, data);
}
}
@@ -2141,21 +2142,18 @@ void DumpRageTheatreRegsByName(TheatrePtr t)
{ "Y_FALL_CNTL ", 0x01cc },
{ "Y_RISE_CNTL ", 0x01d0 },
{ "Y_SAW_TOOTH_CNTL ", 0x01d4 },
- {NULL, NULL}
+ {NULL, 0}
};
for(i=0; rt_reg_list[i].name!=NULL;i++){
RT_regr(rt_reg_list[i].addr, &data);
- xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register (0x%04x) %s is equal to 0x%08x\n", rt_reg_list[i].addr, rt_reg_list[i].name, data);
+ xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register (0x%04lx) %s is equal to 0x%08lx\n", rt_reg_list[i].addr, rt_reg_list[i].name, data);
}
}
void ResetTheatreRegsForNoTVout(TheatrePtr t)
{
- int i;
- CARD32 data;
-
RT_regw(VIP_CLKOUT_CNTL, 0x0);
RT_regw(VIP_HCOUNT, 0x0);
RT_regw(VIP_VCOUNT, 0x0);
@@ -2170,9 +2168,6 @@ void ResetTheatreRegsForNoTVout(TheatrePtr t)
void ResetTheatreRegsForTVout(TheatrePtr t)
{
- int i;
- CARD32 data;
-
/* RT_regw(VIP_HW_DEBUG, 0x200); */
/* RT_regw(VIP_INT_CNTL, 0x0);
RT_regw(VIP_GPIO_INOUT, 0x10090000);
@@ -2187,7 +2182,7 @@ void ResetTheatreRegsForTVout(TheatrePtr t)
RT_regw(VIP_VCOUNT, 0x151);
#endif
RT_regw(VIP_DFCOUNT, 0x01);
-/* RT_regw(VIP_CLOCK_SEL_CNTL, 0xb7); /* versus 0x237 <-> 0x2b7 */
+/* RT_regw(VIP_CLOCK_SEL_CNTL, 0xb7); versus 0x237 <-> 0x2b7 */
RT_regw(VIP_CLOCK_SEL_CNTL, 0x2b7); /* versus 0x237 <-> 0x2b7 */
RT_regw(VIP_VIN_PLL_CNTL, 0x60a6039);
/* RT_regw(VIP_PLL_CNTL1, 0xacacac74); */
diff --git a/src/theatre200.c b/src/theatre200.c
index 9d95b7f..4b64884 100644
--- a/src/theatre200.c
+++ b/src/theatre200.c
@@ -1,5 +1,5 @@
/*************************************************************************************
- * $Id: theatre200.c,v 1.4 2005/08/28 18:00:23 bogdand Exp $
+ * $Id$
*
* Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
*
@@ -22,7 +22,17 @@
* otherwise to promote the sale, use or other dealings in this Software without prior written
* authorization from the author.
*
- * $Log: theatre200.c,v $
+ * $Log$
+ * Revision 1.6 2006/03/22 22:30:14 krh
+ * 2006-03-22 Kristian Høgsberg <krh@redhat.com>
+ *
+ * * src/theatre200.c: Convert use of xf86fopen() and other xf86
+ * wrapped libc symbols to use libc symbols directly. The xf86*
+ * versions aren't supposed to be used directly.
+ *
+ * * src/ *.c: Drop libc wrapper; don't include xf86_ansic.h and add
+ * includes now missing.
+ *
* Revision 1.4 2005/08/28 18:00:23 bogdand
* Modified the licens type from GPL to a X/MIT one
*
@@ -39,9 +49,11 @@
#include "config.h"
#endif
+#include <stdio.h>
+#include <string.h>
+
#include "xf86.h"
#include "generic_bus.h"
-#include "xf86_ansic.h"
#include "radeon_reg.h"
#include "radeon.h"
#include "theatre_reg.h"
@@ -62,24 +74,24 @@ static int dsp_load(TheatrePtr t, struct rt200_microc_data* microc_datap);
static CARD32 dsp_send_command(TheatrePtr t, CARD32 fb_scratch1, CARD32 fb_scratch0);
static CARD32 dsp_set_video_input_connector(TheatrePtr t, CARD32 connector);
-static CARD32 dsp_reset(TheatrePtr t);
+//static CARD32 dsp_reset(TheatrePtr t);
static CARD32 dsp_set_lowpowerstate(TheatrePtr t, CARD32 pstate);
static CARD32 dsp_set_video_standard(TheatrePtr t, CARD32 standard);
static CARD32 dsp_set_videostreamformat(TheatrePtr t, CARD32 format);
static CARD32 dsp_video_standard_detection(TheatrePtr t);
-static CARD32 dsp_get_signallockstatus(TheatrePtr t);
-static CARD32 dsp_get_signallinenumber(TheatrePtr t);
+//static CARD32 dsp_get_signallockstatus(TheatrePtr t);
+//static CARD32 dsp_get_signallinenumber(TheatrePtr t);
static CARD32 dsp_set_brightness(TheatrePtr t, CARD8 brightness);
static CARD32 dsp_set_contrast(TheatrePtr t, CARD8 contrast);
-static CARD32 dsp_set_sharpness(TheatrePtr t, int sharpness);
+//static CARD32 dsp_set_sharpness(TheatrePtr t, int sharpness);
static CARD32 dsp_set_tint(TheatrePtr t, CARD8 tint);
static CARD32 dsp_set_saturation(TheatrePtr t, CARD8 saturation);
static CARD32 dsp_set_video_scaler_horizontal(TheatrePtr t, CARD16 output_width, CARD16 horz_start, CARD16 horz_end);
static CARD32 dsp_set_video_scaler_vertical(TheatrePtr t, CARD16 output_height, CARD16 vert_start, CARD16 vert_end);
static CARD32 dsp_audio_mute(TheatrePtr t, CARD8 left, CARD8 right);
static CARD32 dsp_set_audio_volume(TheatrePtr t, CARD8 left, CARD8 right, CARD8 auto_mute);
-static CARD32 dsp_audio_detection(TheatrePtr t, CARD8 option);
+//static CARD32 dsp_audio_detection(TheatrePtr t, CARD8 option);
static CARD32 dsp_configure_i2s_port(TheatrePtr t, CARD8 tx_mode, CARD8 rx_mode, CARD8 clk_mode);
static CARD32 dsp_configure_spdif_port(TheatrePtr t, CARD8 state);
@@ -128,15 +140,15 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
if (micro_type == NULL)
return -1;
- file = xf86fopen(micro_path, "r");
+ file = fopen(micro_path, "r");
if (file == NULL) {
ERROR_0("Cannot open microcode file\n");
return -1;
}
- if (!xf86strcmp(micro_type, "BINARY"))
+ if (!strcmp(micro_type, "BINARY"))
{
- if (xf86fread(microc_headp, sizeof(struct rt200_microc_head), 1, file) != 1)
+ if (fread(microc_headp, sizeof(struct rt200_microc_head), 1, file) != 1)
{
ERROR("Cannot read header from file: %s\n", micro_path);
goto fail_exit;
@@ -151,23 +163,23 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
{
int ret;
- curr_seg = (struct rt200_microc_seg*)xf86malloc(sizeof(struct rt200_microc_seg));
+ curr_seg = (struct rt200_microc_seg*)Xalloc(sizeof(struct rt200_microc_seg));
if (curr_seg == NULL)
{
ERROR_0("Cannot allocate memory\n");
goto fail_exit;
}
- ret = xf86fread(&curr_seg->num_bytes, 4, 1, file);
- ret += xf86fread(&curr_seg->download_dst, 4, 1, file);
- ret += xf86fread(&curr_seg->crc_val, 4, 1, file);
+ ret = fread(&curr_seg->num_bytes, 4, 1, file);
+ ret += fread(&curr_seg->download_dst, 4, 1, file);
+ ret += fread(&curr_seg->crc_val, 4, 1, file);
if (ret != 3)
{
ERROR("Cannot read segment from microcode file: %s\n", micro_path);
goto fail_exit;
}
- curr_seg->data = (unsigned char*)xf86malloc(curr_seg->num_bytes);
+ curr_seg->data = (unsigned char*)Xalloc(curr_seg->num_bytes);
if (curr_seg->data == NULL)
{
ERROR_0("cannot allocate memory\n");
@@ -193,7 +205,7 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
curr_seg = seg_list;
while (curr_seg)
{
- if (xf86fread(curr_seg->data, curr_seg->num_bytes, 1, file) != 1)
+ if (fread(curr_seg->data, curr_seg->num_bytes, 1, file) != 1)
{
ERROR_0("Cannot read segment data\n");
goto fail_exit;
@@ -202,20 +214,20 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
curr_seg = curr_seg->next;
}
}
- else if (!xf86strcmp(micro_type, "ASCII"))
+ else if (!strcmp(micro_type, "ASCII"))
{
char tmp1[12], tmp2[12], tmp3[12], tmp4[12];
unsigned int ltmp;
- if ((xf86fgets(tmp1, 12, file) != NULL) &&
- (xf86fgets(tmp2, 12, file) != NULL) &&
- (xf86fgets(tmp3, 12, file) != NULL) &&
- xf86fgets(tmp4, 12, file) != NULL)
+ if ((fgets(tmp1, 12, file) != NULL) &&
+ (fgets(tmp2, 12, file) != NULL) &&
+ (fgets(tmp3, 12, file) != NULL) &&
+ fgets(tmp4, 12, file) != NULL)
{
- microc_headp->device_id = xf86strtoul(tmp1, NULL, 16);
- microc_headp->vendor_id = xf86strtoul(tmp2, NULL, 16);
- microc_headp->revision_id = xf86strtoul(tmp3, NULL, 16);
- microc_headp->num_seg = xf86strtoul(tmp4, NULL, 16);
+ microc_headp->device_id = strtoul(tmp1, NULL, 16);
+ microc_headp->vendor_id = strtoul(tmp2, NULL, 16);
+ microc_headp->revision_id = strtoul(tmp3, NULL, 16);
+ microc_headp->num_seg = strtoul(tmp4, NULL, 16);
}
else
{
@@ -230,20 +242,20 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
for (i = 0; i < microc_headp->num_seg; i++)
{
- curr_seg = (struct rt200_microc_seg*)xf86malloc(sizeof(struct rt200_microc_seg));
+ curr_seg = (struct rt200_microc_seg*)Xalloc(sizeof(struct rt200_microc_seg));
if (curr_seg == NULL)
{
ERROR_0("Cannot allocate memory\n");
goto fail_exit;
}
- if (xf86fgets(tmp1, 12, file) != NULL &&
- xf86fgets(tmp2, 12, file) != NULL &&
- xf86fgets(tmp3, 12, file) != NULL)
+ if (fgets(tmp1, 12, file) != NULL &&
+ fgets(tmp2, 12, file) != NULL &&
+ fgets(tmp3, 12, file) != NULL)
{
- curr_seg->num_bytes = xf86strtoul(tmp1, NULL, 16);
- curr_seg->download_dst = xf86strtoul(tmp2, NULL, 16);
- curr_seg->crc_val = xf86strtoul(tmp3, NULL, 16);
+ curr_seg->num_bytes = strtoul(tmp1, NULL, 16);
+ curr_seg->download_dst = strtoul(tmp2, NULL, 16);
+ curr_seg->crc_val = strtoul(tmp3, NULL, 16);
}
else
{
@@ -251,7 +263,7 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
goto fail_exit;
}
- curr_seg->data = (unsigned char*)xf86malloc(curr_seg->num_bytes);
+ curr_seg->data = (unsigned char*)Xalloc(curr_seg->num_bytes);
if (curr_seg->data == NULL)
{
ERROR_0("cannot allocate memory\n");
@@ -279,12 +291,12 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
for ( i = 0; i < curr_seg->num_bytes; i+=4)
{
- if (xf86fgets(tmp1, 12, file) == NULL)
+ if (fgets(tmp1, 12, file) == NULL)
{
ERROR_0("Cannot read from file\n");
goto fail_exit;
}
- ltmp = xf86strtoul(tmp1, NULL, 16);
+ ltmp = strtoul(tmp1, NULL, 16);
*(unsigned int*)(curr_seg->data + i) = ltmp;
}
@@ -300,7 +312,7 @@ static int microc_load (char* micro_path, char* micro_type, struct rt200_microc_
microc_datap->microc_seg_list = seg_list;
- xf86fclose(file);
+ fclose(file);
return 0;
fail_exit:
@@ -312,7 +324,7 @@ fail_exit:
curr_seg = curr_seg->next;
Xfree(prev_seg);
}
- xf86fclose(file);
+ fclose(file);
return -1;
}
@@ -364,12 +376,8 @@ static int dsp_load(TheatrePtr t, struct rt200_microc_data* microc_datap)
CARD32 tries = 0;
CARD32 result = 0;
CARD32 seg_id = 0;
-
int screen = t->VIP->scrnIndex;
- ScrnInfoPtr pScrn = xf86Screens[t->VIP->scrnIndex];
- RADEONInfoPtr info = RADEONPTR(pScrn);
- unsigned char *RADEONMMIO = info->MMIO;
-
+
DEBUG("Microcode: before everything: %x\n", data8);
if (RT_fifor(0x000, &data8))
@@ -619,6 +627,7 @@ static CARD32 dsp_set_video_input_connector(TheatrePtr t, CARD32 connector)
return result;
}
+#if 0
static CARD32 dsp_reset(TheatrePtr t)
{
CARD32 fb_scratch0 = 0;
@@ -633,6 +642,7 @@ static CARD32 dsp_reset(TheatrePtr t)
return result;
}
+#endif
static CARD32 dsp_set_lowpowerstate(TheatrePtr t, CARD32 pstate)
{
@@ -693,6 +703,7 @@ static CARD32 dsp_video_standard_detection(TheatrePtr t)
return result;
}
+#if 0
static CARD32 dsp_get_signallockstatus(TheatrePtr t)
{
CARD32 fb_scratch1 = 0;
@@ -726,6 +737,7 @@ static CARD32 dsp_get_signallinenumber(TheatrePtr t)
return result;
}
+#endif
static CARD32 dsp_set_brightness(TheatrePtr t, CARD8 brightness)
{
@@ -759,6 +771,7 @@ static CARD32 dsp_set_contrast(TheatrePtr t, CARD8 contrast)
return result;
}
+#if 0
static CARD32 dsp_set_sharpness(TheatrePtr t, int sharpness)
{
CARD32 fb_scratch1 = 0;
@@ -774,6 +787,7 @@ static CARD32 dsp_set_sharpness(TheatrePtr t, int sharpness)
return result;
}
+#endif
static CARD32 dsp_set_tint(TheatrePtr t, CARD8 tint)
{
@@ -873,6 +887,7 @@ static CARD32 dsp_set_audio_volume(TheatrePtr t, CARD8 left, CARD8 right, CARD8
return result;
}
+#if 0
static CARD32 dsp_audio_detection(TheatrePtr t, CARD8 option)
{
CARD32 fb_scratch1 = 0;
@@ -888,6 +903,7 @@ static CARD32 dsp_audio_detection(TheatrePtr t, CARD8 option)
return result;
}
+#endif
static CARD32 dsp_configure_i2s_port(TheatrePtr t, CARD8 tx_mode, CARD8 rx_mode, CARD8 clk_mode)
{
@@ -1441,6 +1457,7 @@ static void WriteRT_fld1 (TheatrePtr t, CARD32 dwReg, CARD32 dwData)
} /* WriteRT_fld ()... */
+#if 0
/****************************************************************************
* ReadRT_fld (CARD32 dwReg) *
* Function: Reads a register field within Rage Theatre *
@@ -1464,8 +1481,10 @@ static CARD32 ReadRT_fld1 (TheatrePtr t,CARD32 dwReg)
} /* ReadRT_fld ()... */
-#define WriteRT_fld(a,b) WriteRT_fld1(t, (a), (b))
#define ReadRT_fld(a) ReadRT_fld1(t,(a))
+#endif
+
+#define WriteRT_fld(a,b) WriteRT_fld1(t, (a), (b))
/****************************************************************************
@@ -1781,10 +1800,10 @@ void RT_SetConnector (TheatrePtr t, CARD16 wConnector, int tunerFlag)
t->wConnector = wConnector;
theatre_read(t, VIP_GPIO_CNTL, &data);
- xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_CNTL: %x\n", data);
+ xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_CNTL: %lx\n", data);
theatre_read(t, VIP_GPIO_INOUT, &data);
- xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_INOUT: %x\n", data);
+ xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_INOUT: %lx\n", data);
switch (wConnector)
{
@@ -1833,10 +1852,10 @@ void RT_SetConnector (TheatrePtr t, CARD16 wConnector, int tunerFlag)
}
theatre_read(t, VIP_GPIO_CNTL, &data);
- xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_CNTL: %x\n", data);
+ xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_CNTL: %lx\n", data);
theatre_read(t, VIP_GPIO_INOUT, &data);
- xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_INOUT: %x\n", data);
+ xf86DrvMsg(t->VIP->scrnIndex,X_INFO,"VIP_GPIO_INOUT: %lx\n", data);
dsp_configure_i2s_port(t, 0, 0, 0);
@@ -1989,7 +2008,7 @@ void DumpRageTheatreRegs(TheatrePtr t)
for(i=0;i<0x900;i+=4)
{
RT_regr(i, &data);
- xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register 0x%04x is equal to 0x%08x\n", i, data);
+ xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register 0x%04x is equal to 0x%08lx\n", i, data);
}
}
@@ -2189,21 +2208,18 @@ void DumpRageTheatreRegsByName(TheatrePtr t)
{ "Y_FALL_CNTL ", 0x01cc },
{ "Y_RISE_CNTL ", 0x01d0 },
{ "Y_SAW_TOOTH_CNTL ", 0x01d4 },
- {NULL, NULL}
+ {NULL, 0}
};
for(i=0; rt_reg_list[i].name!=NULL;i++){
RT_regr(rt_reg_list[i].addr, &data);
- xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register (0x%04x) %s is equal to 0x%08x\n", rt_reg_list[i].addr, rt_reg_list[i].name, data);
+ xf86DrvMsg(t->VIP->scrnIndex, X_INFO, "register (0x%04lx) %s is equal to 0x%08lx\n", rt_reg_list[i].addr, rt_reg_list[i].name, data);
}
}
void ResetTheatreRegsForNoTVout(TheatrePtr t)
{
- int i;
- CARD32 data;
-
RT_regw(VIP_CLKOUT_CNTL, 0x0);
RT_regw(VIP_HCOUNT, 0x0);
RT_regw(VIP_VCOUNT, 0x0);
@@ -2218,9 +2234,6 @@ void ResetTheatreRegsForNoTVout(TheatrePtr t)
void ResetTheatreRegsForTVout(TheatrePtr t)
{
- int i;
- CARD32 data;
-
/* RT_regw(VIP_HW_DEBUG, 0x200); */
/* RT_regw(VIP_INT_CNTL, 0x0);
RT_regw(VIP_GPIO_INOUT, 0x10090000);
@@ -2235,7 +2248,7 @@ void ResetTheatreRegsForTVout(TheatrePtr t)
RT_regw(VIP_VCOUNT, 0x151);
#endif
RT_regw(VIP_DFCOUNT, 0x01);
-/* RT_regw(VIP_CLOCK_SEL_CNTL, 0xb7); /* versus 0x237 <-> 0x2b7 */
+/* RT_regw(VIP_CLOCK_SEL_CNTL, 0xb7); versus 0x237 <-> 0x2b7 */
RT_regw(VIP_CLOCK_SEL_CNTL, 0x2b7); /* versus 0x237 <-> 0x2b7 */
RT_regw(VIP_VIN_PLL_CNTL, 0x60a6039);
/* RT_regw(VIP_PLL_CNTL1, 0xacacac74); */
diff --git a/src/theatre200.h b/src/theatre200.h
index cb1d987..9602a15 100644
--- a/src/theatre200.h
+++ b/src/theatre200.h
@@ -1,5 +1,5 @@
/*************************************************************************************
- * $Id: theatre200.h,v 1.4 2005/11/07 19:28:40 bogdand Exp $
+ * $Id$
*
* Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
*
@@ -22,7 +22,10 @@
* otherwise to promote the sale, use or other dealings in this Software without prior written
* authorization from the author.
*
- * $Log: theatre200.h,v $
+ * $Log$
+ * Revision 1.5 2005/12/08 17:54:40 kem
+ * Allow hard-coded paths to be configurable.
+ *
* Revision 1.4 2005/11/07 19:28:40 bogdand
* Replaced the variadic macros(gcc) by macros according to C99 standard
*
@@ -59,14 +62,14 @@
#define ERROR_3(str,param1,param2,param3) xf86DrvMsg(screen, X_ERROR, str, param1, param2, param3)
#define DEBUG_3(str,param1,param2,param3) xf86DrvMsg(screen, X_INFO, str, param1, param2, param3)
#else
-#define ERROR_0(str)
-#define DEBUG_0(str)
-#define ERROR(str,param1)
-#define DEBUG(str,param1)
-#define ERROR_2(str,param1,param2)
-#define DEBUG_2(str,param1,param2)
-#define ERROR_3(str,param1,param2,param3)
-#define DEBUG_3(str,param1,param2,param3)
+#define ERROR_0(str) (void)screen
+#define DEBUG_0(str) (void)screen
+#define ERROR(str,param1) (void)screen
+#define DEBUG(str,param1) (void)screen
+#define ERROR_2(str,param1,param2) (void)screen
+#define DEBUG_2(str,param1,param2) (void)screen
+#define ERROR_3(str,param1,param2,param3) (void)screen
+#define DEBUG_3(str,param1,param2,param3) (void)screen
#endif
diff --git a/src/theatre_detect.c b/src/theatre_detect.c
index 54161fe..4836db8 100644
--- a/src/theatre_detect.c
+++ b/src/theatre_detect.c
@@ -1,5 +1,5 @@
/*************************************************************************************
- * $Id: theatre_detect.c,v 1.3 2005/07/11 02:29:45 ajax Exp $
+ * $Id$
*
* Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
*
@@ -22,7 +22,10 @@
* otherwise to promote the sale, use or other dealings in this Software without prior written
* authorization from the author.
*
- * $Log: theatre_detect.c,v $
+ * $Log$
+ * Revision 1.4 2005/08/28 18:00:23 bogdand
+ * Modified the licens type from GPL to a X/MIT one
+ *
* Revision 1.3 2005/07/11 02:29:45 ajax
* Prep for modular builds by adding guarded #include "config.h" everywhere.
*
@@ -36,29 +39,29 @@
#include "config.h"
#endif
+#include <string.h>
#include "xf86.h"
#include "generic_bus.h"
#include "theatre.h"
#include "theatre_reg.h"
-#undef read
-#undef write
-#undef ioctl
-
static Bool theatre_read(TheatrePtr t,CARD32 reg, CARD32 *data)
{
if(t->theatre_num<0)return FALSE;
return t->VIP->read(t->VIP, ((t->theatre_num & 0x3)<<14) | reg,4, (CARD8 *) data);
}
+/* Unused code - reference */
+#if 0
static Bool theatre_write(TheatrePtr t,CARD32 reg, CARD32 data)
{
if(t->theatre_num<0)return FALSE;
return t->VIP->write(t->VIP,((t->theatre_num & 0x03)<<14) | reg,4, (CARD8 *) &data);
}
+#define RT_regw(reg,data) theatre_write(t,(reg),(data))
+#endif
#define RT_regr(reg,data) theatre_read(t,(reg),(data))
-#define RT_regw(reg,data) theatre_write(t,(reg),(data))
#define VIP_TYPE "ATI VIP BUS"
@@ -86,7 +89,7 @@ TheatrePtr DetectTheatre(GENERIC_BUS_Ptr b)
{
if(b->read(b, ((i & 0x03)<<14) | VIP_VIP_VENDOR_DEVICE_ID, 4, (CARD8 *)&val))
{
- if(val)xf86DrvMsg(b->scrnIndex, X_INFO, "Device %d on VIP bus ids as 0x%08x\n",i,val);
+ if(val)xf86DrvMsg(b->scrnIndex, X_INFO, "Device %ld on VIP bus ids as 0x%08lx\n",i,val);
if(t->theatre_num>=0)continue; /* already found one instance */
switch(val){
case RT100_ATI_ID:
@@ -99,10 +102,10 @@ TheatrePtr DetectTheatre(GENERIC_BUS_Ptr b)
break;
}
} else {
- xf86DrvMsg(b->scrnIndex, X_INFO, "No response from device %d on VIP bus\n",i);
+ xf86DrvMsg(b->scrnIndex, X_INFO, "No response from device %ld on VIP bus\n",i);
}
}
- if(t->theatre_num>=0)xf86DrvMsg(b->scrnIndex, X_INFO, "Detected Rage Theatre as device %d on VIP bus with id 0x%08x\n",t->theatre_num,t->theatre_id);
+ if(t->theatre_num>=0)xf86DrvMsg(b->scrnIndex, X_INFO, "Detected Rage Theatre as device %d on VIP bus with id 0x%08lx\n",t->theatre_num,t->theatre_id);
if(t->theatre_num < 0)
{
@@ -111,7 +114,7 @@ TheatrePtr DetectTheatre(GENERIC_BUS_Ptr b)
}
RT_regr(VIP_VIP_REVISION_ID, &val);
- xf86DrvMsg(b->scrnIndex, X_INFO, "Detected Rage Theatre revision %8.8X\n", val);
+ xf86DrvMsg(b->scrnIndex, X_INFO, "Detected Rage Theatre revision %8.8lX\n", val);
#if 0
DumpRageTheatreRegsByName(t);
diff --git a/src/theatre_detect.h b/src/theatre_detect.h
index cf7bd1f..1628f20 100644
--- a/src/theatre_detect.h
+++ b/src/theatre_detect.h
@@ -1,5 +1,5 @@
/*************************************************************************************
- * $Id: theatre_detect.h,v 1.2 2005/07/01 22:43:11 daniels Exp $
+ * $Id$
*
* Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
*
@@ -22,7 +22,10 @@
* otherwise to promote the sale, use or other dealings in this Software without prior written
* authorization from the author.
*
- * $Log: theatre_detect.h,v $
+ * $Log$
+ * Revision 1.3 2005/08/28 18:00:23 bogdand
+ * Modified the licens type from GPL to a X/MIT one
+ *
* Revision 1.2 2005/07/01 22:43:11 daniels
* Change all misc.h and os.h references to <X11/foo.h>.
*