xf86-video-ati: Branch 'master'

Michel Daenzer daenzer at kemper.freedesktop.org
Sun Oct 1 19:24:21 EEST 2006


 src/radeon_driver.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

New commits:
diff-tree 145c716de6d42778e447581578f3e4db13c9a653 (from d43ad88fa3913437f6987ab5ab46a38f0cb555a8)
Author: David Woodhouse <dwmw2 at infradead.org>
Date:   Sun Oct 1 18:22:14 2006 +0200

    Fix radeon vs fbdev pitch calculation.
    
    Fetch the correct displayWidth from fbdevhw after setting the mode.

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index bb1e070..6182eb0 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2866,7 +2866,8 @@ static Bool RADEONPreInitModes(ScrnInfoP
 
 	if (modesFound < 1 && info->FBDev) {
 	    fbdevHWUseBuildinMode(pScrn);
-	    pScrn->displayWidth = pScrn->virtualX; /* FIXME: might be wrong */
+	    pScrn->displayWidth = fbdevHWGetLineLength(pScrn)
+				/ info->CurrentLayout.pixel_bytes;
 	    modesFound = 1;
 	}
 
@@ -4593,6 +4594,8 @@ _X_EXPORT Bool RADEONScreenInit(int scrn
 	unsigned char *RADEONMMIO = info->MMIO;
 
 	if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) return FALSE;
+	pScrn->displayWidth = fbdevHWGetLineLength(pScrn)
+		/ info->CurrentLayout.pixel_bytes;
 	RADEONSaveMemMapRegisters(pScrn, &info->ModeReg);
 	info->fbLocation = (info->ModeReg.mc_fb_location & 0xffff) << 16;
 	info->ModeReg.surface_cntl = INREG(RADEON_SURFACE_CNTL);
@@ -7230,6 +7233,8 @@ _X_EXPORT Bool RADEONSwitchMode(int scrn
 	RADEONSaveFBDevRegisters(pScrn, &info->ModeReg);
 
 	ret = fbdevHWSwitchMode(scrnIndex, mode, flags);
+	pScrn->displayWidth = fbdevHWGetLineLength(pScrn)
+		/ info->CurrentLayout.pixel_bytes;
 
 	RADEONRestoreFBDevRegisters(pScrn, &info->ModeReg);
     } else {



More information about the xorg-commit mailing list