summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@clockmaker.usersys.redhat.com>2007-08-23 19:42:19 +1000
committerDave Airlie <airlied@redhat.com>2007-08-23 19:43:58 +1000
commitc08e6ec9e7ac06caee53689b0ec50ef6a7a0ba37 (patch)
treefcda07f47f2b006ac534c3480c57da870eeb75d4
parent5793e8753d11432bf95c7c6dd80c811e16aba058 (diff)
parenta0d0fcd3bab765b4db25e04884fd8a342abb9c66 (diff)
Merge branch 'master' into randr-merge
Conflicts: src/radeon.h src/radeon_bios.c src/radeon_display.c src/radeon_dri.c src/radeon_driver.c src/radeon_modes.c src/radeon_probe.h src/radeon_video.c
-rw-r--r--configure.ac6
-rw-r--r--man/ati.man4
-rw-r--r--man/radeon.man4
-rw-r--r--src/atimach64xv.c3
-rw-r--r--src/r128_driver.c3
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_display.c1
-rw-r--r--src/radeon_dri.c44
-rw-r--r--src/radeon_driver.c6
9 files changed, 40 insertions, 34 deletions
diff --git a/configure.ac b/configure.ac
index 8b29d8d..441e723 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-ati],
- 6.6.192,
+ 6.6.193,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ati)
@@ -39,6 +39,10 @@ AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_PROG_CC
+if test "x$GCC" = "xyes"; then
+ CFLAGS="$CFLAGS -Wall"
+fi
+
AH_TOP([#include "xorg-server.h"])
AC_ARG_WITH(xorg-module-dir,
diff --git a/man/ati.man b/man/ati.man
index bc33610..c6c7d01 100644
--- a/man/ati.man
+++ b/man/ati.man
@@ -17,7 +17,7 @@ ati \- ATI video driver
is an __xservername__ wrapper driver for ATI video cards. It autodetects
whether your hardware has a Radeon, Rage 128, or Mach64 or earlier class of
chipset, and loads the radeon(__drivermansuffix__),
-r128(__drivermansuffix__), or atimisc(__drivermansuffix__) driver as
+r128(__drivermansuffix__), or atimisc driver as
appropriate.
.SH SUPPORTED HARDWARE
The
@@ -29,6 +29,6 @@ Please refer to __xconfigfile__(__filemansuffix__) for general configuration
details, and the specific card driver for driver configuration details.
driver.
.SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
+__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__), r128(__drivermansuffix__), radeon(__drivermansuffix__)
.SH AUTHORS
See the individual driver pages for authors.
diff --git a/man/radeon.man b/man/radeon.man
index fcb6d73..2f46c44 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -308,7 +308,7 @@ remainder of video RAM is reserved for EXA offscreen management. Specifying 0
results in all offscreen video RAM being reserved for EXA and only GART memory
being available for OpenGL textures. This may improve EXA performance, but
beware that it may cause problems with OpenGL drivers from Mesa versions older
-than 6.4. With XAA, specifiying lower percentage than what gets reserved without
+than 6.4. With XAA, specifying lower percentage than what gets reserved without
this option has no effect, but the driver tries to increase the video RAM
reserved for textures to the amount specified roughly.
Default:
@@ -417,7 +417,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
+Michel D\(:anzer \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/src/atimach64xv.c b/src/atimach64xv.c
index 997fa69..67becec 100644
--- a/src/atimach64xv.c
+++ b/src/atimach64xv.c
@@ -979,6 +979,9 @@ ATIMach64PutImage
if (pATI->ActiveSurface)
return Success;
+ if (DstH < 16)
+ return Success;
+
if (!ATIMach64ClipVideo(pScreenInfo, pATI, ImageID,
SrcX, SrcY, SrcW, SrcH,
DstX, DstY, &DstW, &DstH,
diff --git a/src/r128_driver.c b/src/r128_driver.c
index b03bd42..6e26a6e 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -4257,6 +4257,9 @@ ModeStatus R128ValidMode(int scrnIndex, DisplayModePtr mode,
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
R128InfoPtr info = R128PTR(pScrn);
+ if (info->BIOSDisplay == R128_BIOS_DISPLAY_CRT)
+ return MODE_OK;
+
if(info->isDFP) {
if(info->PanelXRes < mode->CrtcHDisplay ||
info->PanelYRes < mode->CrtcVDisplay)
diff --git a/src/radeon.h b/src/radeon.h
index a8f72fc..aee4c3e 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -613,7 +613,6 @@ typedef struct {
unsigned long gartOffset;
unsigned char *AGP; /* Map */
int agpMode;
- int agpFastWrite;
CARD32 pciCommand;
@@ -914,13 +913,13 @@ extern void RADEONDisableDisplays(ScrnInfoPtr pScrn);
extern void RADEONGetPanelInfo(ScrnInfoPtr pScrn);
extern void RADEONGetTVDacAdjInfo(xf86OutputPtr output);
extern void RADEONUnblank(ScrnInfoPtr pScrn);
+extern void RADEONUnblank(ScrnInfoPtr pScrn);
extern void RADEONBlank(ScrnInfoPtr pScrn);
extern void RADEONDisplayPowerManagementSet(ScrnInfoPtr pScrn,
int PowerManagementMode,
int flags);
extern Bool RADEONAllocateControllers(ScrnInfoPtr pScrn);
extern Bool RADEONAllocateConnectors(ScrnInfoPtr pScrn);
-extern xf86OutputPtr RADEONGetCrtcConnector(ScrnInfoPtr pScrn, int crtc_num);
extern int RADEONValidateMergeModes(ScrnInfoPtr pScrn);
extern int RADEONValidateDDCModes(ScrnInfoPtr pScrn1, char **ppModeName,
RADEONMonitorType DisplayType, int crtc2);
diff --git a/src/radeon_display.c b/src/radeon_display.c
index 4334016..e76ffa4 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -809,4 +809,3 @@ void RADEONUnblank(ScrnInfoPtr pScrn)
}
}
}
-
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 1b17e2e..7949c5b 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -748,28 +748,6 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->agpMode);
- info->agpFastWrite = 0; // Always off by default as it sucks
-
- from = xf86GetOptValInteger(info->Options, OPTION_AGP_FW,
- &info->agpFastWrite) ? X_CONFIG : X_DEFAULT;
-
- if (info->agpFastWrite &&
- (vendor == PCI_VENDOR_AMD) &&
- (device == PCI_CHIP_AMD761)) {
-
- /* Disable fast write for AMD 761 chipset, since they cause
- * lockups when enabled.
- */
- info->agpFastWrite = FALSE;
- from = X_DEFAULT;
- xf86DrvMsg(pScreen->myNum, X_WARNING,
- "[agp] Not enabling Fast Writes on AMD 761 chipset to avoid "
- "lockups");
- }
-
- xf86DrvMsg(pScreen->myNum, from, "AGP Fast Writes %sabled\n",
- info->agpFastWrite ? "en" : "dis");
-
mode &= ~RADEON_AGP_MODE_MASK;
if (is_v3) {
/* only set one mode bit for AGPv3 */
@@ -788,8 +766,26 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
}
}
- if (info->agpFastWrite) mode |= RADEON_AGP_FW_MODE;
- else mode &= ~RADEON_AGP_FW_MODE;
+ /* AGP Fast Writes.
+ * TODO: take into account that certain agp modes don't support fast
+ * writes at all */
+ mode &= ~RADEON_AGP_FW_MODE; /* Disable per default */
+ if (xf86ReturnOptValBool(info->Options, OPTION_AGP_FW, FALSE)) {
+ xf86DrvMsg(pScreen->myNum, X_WARNING,
+ "WARNING: Using the AGPFastWrite option is not recommended.\n");
+ xf86Msg(X_NONE, "\tThis option does not provide much of a noticable speed"
+ " boost, while it\n\twill probably hard lock your machine."
+ " All bets are off!\n");
+
+ /* Black list some host/AGP bridges. */
+ if ((vendor == PCI_VENDOR_AMD) && (device == PCI_CHIP_AMD761))
+ xf86DrvMsg(pScreen->myNum, X_PROBED, "Ignoring AGPFastWrite option "
+ "for the AMD 761 northbridge.\n");
+ else {
+ xf86DrvMsg(pScreen->myNum, X_CONFIG, "Enabling AGP Fast Writes.\n");
+ mode |= RADEON_AGP_FW_MODE;
+ }
+ } /* Don't mention this otherwise, so that people don't get funny ideas */
xf86DrvMsg(pScreen->myNum, X_INFO,
"[agp] Mode 0x%08lx [AGP 0x%04x/0x%04x; Card 0x%04x/0x%04x]\n",
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index ae34cf3..f338d16 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -5567,8 +5567,10 @@ static Bool RADEONSaveScreen(ScreenPtr pScreen, int mode)
if (unblank) SetTimeSinceLastInputEvent();
if ((pScrn != NULL) && pScrn->vtSema) {
- if (unblank) RADEONUnblank(pScrn);
- else RADEONBlank(pScrn);
+ if (unblank)
+ RADEONUnblank(pScrn);
+ else
+ RADEONBlank(pScrn);
}
return TRUE;
}