diff options
author | Dave Airlie <airlied@clockmaker.usersys.redhat.com> | 2007-08-23 19:42:19 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2007-08-23 19:43:58 +1000 |
commit | c08e6ec9e7ac06caee53689b0ec50ef6a7a0ba37 (patch) | |
tree | fcda07f47f2b006ac534c3480c57da870eeb75d4 /src | |
parent | 5793e8753d11432bf95c7c6dd80c811e16aba058 (diff) | |
parent | a0d0fcd3bab765b4db25e04884fd8a342abb9c66 (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
Diffstat (limited to 'src')
-rw-r--r-- | src/atimach64xv.c | 3 | ||||
-rw-r--r-- | src/r128_driver.c | 3 | ||||
-rw-r--r-- | src/radeon.h | 3 | ||||
-rw-r--r-- | src/radeon_display.c | 1 | ||||
-rw-r--r-- | src/radeon_dri.c | 44 | ||||
-rw-r--r-- | src/radeon_driver.c | 6 |
6 files changed, 31 insertions, 29 deletions
diff --git a/src/atimach64xv.c b/src/atimach64xv.c index 997fa699..67bececf 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 b03bd42b..6e26a6ef 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 a8f72fcd..aee4c3ec 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 43340169..e76ffa44 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 1b17e2ef..7949c5b5 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 ae34cf3c..f338d166 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; } |