xf86-video-ati: Branch 'master' - 3 commits

Michel Daenzer daenzer at kemper.freedesktop.org
Mon Jun 11 00:45:16 PDT 2007


 src/radeon_display.c |   12 +++++++++---
 src/radeon_driver.c  |   38 ++++++++++++++++++--------------------
 2 files changed, 27 insertions(+), 23 deletions(-)

New commits:
diff-tree c6a3286d6f6ddda89115d98d45665dadd78bf41d (from 7a6b3c0f77c69019268f585c51c3dcbcc99014d4)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Jun 11 09:39:38 2007 +0200

    radeon: Fix panel size detection from registers with stretched mode programmed.

diff --git a/src/radeon_display.c b/src/radeon_display.c
index d501cdc..acb4d30 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -684,12 +684,14 @@ static void RADEONGetPanelInfoFromReg (S
 
     info->PanelPwrDly = 200;
     if (fp_vert_stretch & RADEON_VERT_STRETCH_ENABLE) {
-	info->PanelYRes = (fp_vert_stretch>>12) + 1;
+	info->PanelYRes = ((fp_vert_stretch & RADEON_VERT_PANEL_SIZE) >>
+			   RADEON_VERT_PANEL_SHIFT) + 1;
     } else {
 	info->PanelYRes = (INREG(RADEON_CRTC_V_TOTAL_DISP)>>16) + 1;
     }
     if (fp_horz_stretch & RADEON_HORZ_STRETCH_ENABLE) {
-	info->PanelXRes = ((fp_horz_stretch>>16) + 1) * 8;
+	info->PanelXRes = (((fp_horz_stretch & RADEON_HORZ_PANEL_SIZE) >>
+			    RADEON_HORZ_PANEL_SHIFT) + 1) * 8;
     } else {
 	info->PanelXRes = ((INREG(RADEON_CRTC_H_TOTAL_DISP)>>16) + 1) * 8;
     }
diff-tree 7a6b3c0f77c69019268f585c51c3dcbcc99014d4 (from f31fd9ce598841c505a0b5ed32bf124f49fea332)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Jun 11 09:39:38 2007 +0200

    radeon: Don't loop indefinitely if no mode matches detected panel size.

diff --git a/src/radeon_display.c b/src/radeon_display.c
index 90fdc54..d501cdc 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -863,8 +863,12 @@ static Bool RADEONGetLVDSInfo (ScrnInfoP
 		    info->Flags = 0;
 		    break;
 		}
-		tmp_mode = tmp_mode->next;
 	    }
+
+	    tmp_mode = tmp_mode->next;
+
+	    if (tmp_mode == pScrn->monitor->Modes)
+		break;
 	}
 	if ((info->DotClock == 0) && !pRADEONEnt->PortInfo[0]->MonInfo) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
diff-tree f31fd9ce598841c505a0b5ed32bf124f49fea332 (from 2d40fa55e8d7a1cfb204d66ca4a4d95a3b13d5b5)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Jun 11 09:39:38 2007 +0200

    radeon: Fix some more ErrorFs when setting mode.

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 91af1ec..071411b 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -6430,7 +6430,7 @@ static Bool RADEONInit2(ScrnInfoPtr pScr
 
     if (crtc1 && (crtc_mask & 1)) {
     	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-		       "%-12.12s %7.2f  %4d %4d %4d %4d  %4d %4d %4d %4d (%d,%d)",
+		       "%-12.12s %7.2f  %4d %4d %4d %4d  %4d %4d %4d %4d (%d,%d)%s%s%s%s%s%s%s\n",
 		       crtc1->name,
 		       crtc1->Clock/1000.0,
 
@@ -6444,19 +6444,18 @@ static Bool RADEONInit2(ScrnInfoPtr pScr
 		       crtc1->VSyncEnd,
 		       crtc1->VTotal,
 		       pScrn->depth,
-		       pScrn->bitsPerPixel);
-    	if (crtc1->Flags & V_DBLSCAN)   ErrorF(" D");
-    	if (crtc1->Flags & V_CSYNC)     ErrorF(" C");
-    	if (crtc1->Flags & V_INTERLACE) ErrorF(" I");
-    	if (crtc1->Flags & V_PHSYNC)    ErrorF(" +H");
-    	if (crtc1->Flags & V_NHSYNC)    ErrorF(" -H");
-    	if (crtc1->Flags & V_PVSYNC)    ErrorF(" +V");
-    	if (crtc1->Flags & V_NVSYNC)    ErrorF(" -V");
-    	ErrorF("\n");
+		       pScrn->bitsPerPixel,
+		       (crtc1->Flags & V_DBLSCAN) ? " D" : "",
+		       (crtc1->Flags & V_CSYNC) ? " C" : "",
+		       (crtc1->Flags & V_INTERLACE) ? " I" : "",
+		       (crtc1->Flags & V_PHSYNC) ? " +H" : "",
+		       (crtc1->Flags & V_NHSYNC) ? " -H" : "",
+		       (crtc1->Flags & V_PVSYNC) ? " +V" : "",
+		       (crtc1->Flags & V_NVSYNC) ? " -V" : "");
     }
     if (crtc2 && (crtc_mask & 2)) {
         xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-		       "%-12.12s %7.2f  %4d %4d %4d %4d  %4d %4d %4d %4d (%d,%d)",
+		       "%-12.12s %7.2f  %4d %4d %4d %4d  %4d %4d %4d %4d (%d,%d)%s%s%s%s%s%s%s\n",
 		       crtc2->name,
 		       crtc2->Clock/1000.0,
 
@@ -6470,15 +6469,14 @@ static Bool RADEONInit2(ScrnInfoPtr pScr
 		       crtc2->CrtcVSyncEnd,
 		       crtc2->CrtcVTotal,
 		       pScrn->depth,
-		       pScrn->bitsPerPixel);
-        if (crtc2->Flags & V_DBLSCAN)   ErrorF(" D");
-        if (crtc2->Flags & V_CSYNC)     ErrorF(" C");
-        if (crtc2->Flags & V_INTERLACE) ErrorF(" I");
-        if (crtc2->Flags & V_PHSYNC)    ErrorF(" +H");
-        if (crtc2->Flags & V_NHSYNC)    ErrorF(" -H");
-        if (crtc2->Flags & V_PVSYNC)    ErrorF(" +V");
-        if (crtc2->Flags & V_NVSYNC)    ErrorF(" -V");
-    	ErrorF("\n");
+		       pScrn->bitsPerPixel,
+		       (crtc2->Flags & V_DBLSCAN) ? " D" : "",
+		       (crtc2->Flags & V_CSYNC) ? " C" : "",
+		       (crtc2->Flags & V_INTERLACE) ? " I" : "",
+		       (crtc2->Flags & V_PHSYNC) ? " +H" : "",
+		       (crtc2->Flags & V_NHSYNC) ? " -H" : "",
+		       (crtc2->Flags & V_PVSYNC) ? " +V" : "",
+		       (crtc2->Flags & V_NVSYNC) ? " -V" : "");
     }
 
     if (crtc1 && (crtc_mask & 1))


More information about the xorg-commit mailing list