xf86-video-ati: Branch 'randr-1.2' - 3 commits

Alex Deucher agd5f at kemper.freedesktop.org
Tue Jun 12 20:36:35 PDT 2007


 src/radeon_bios.c    |    3 +++
 src/radeon_display.c |    8 ++++----
 src/radeon_output.c  |    6 ++++--
 3 files changed, 11 insertions(+), 6 deletions(-)

New commits:
diff-tree 9fc416ce08cc5d74faa7b184e80ce43ed2f4fbee (from c4045cbc5e6975520efef422ce9df2a7d99a7ff4)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Tue Jun 12 23:35:09 2007 -0400

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

diff --git a/src/radeon_output.c b/src/radeon_output.c
index 25d6c66..5c4a166 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -1344,12 +1344,14 @@ RADEONGetPanelInfoFromReg (xf86OutputPtr
 
     radeon_output->PanelPwrDly = 200;
     if (fp_vert_stretch & RADEON_VERT_STRETCH_ENABLE) {
-	radeon_output->PanelYRes = (fp_vert_stretch>>12) + 1;
+	radeon_output->PanelYRes = ((fp_vert_stretch & RADEON_VERT_PANEL_SIZE) >>
+				    RADEON_VERT_PANEL_SHIFT) + 1;
     } else {
 	radeon_output->PanelYRes = (INREG(RADEON_CRTC_V_TOTAL_DISP)>>16) + 1;
     }
     if (fp_horz_stretch & RADEON_HORZ_STRETCH_ENABLE) {
-	radeon_output->PanelXRes = ((fp_horz_stretch>>16) + 1) * 8;
+	radeon_output->PanelXRes = (((fp_horz_stretch & RADEON_HORZ_PANEL_SIZE) >>
+				     RADEON_HORZ_PANEL_SHIFT) + 1) * 8;
     } else {
 	radeon_output->PanelXRes = ((INREG(RADEON_CRTC_H_TOTAL_DISP)>>16) + 1) * 8;
     }
diff-tree c4045cbc5e6975520efef422ce9df2a7d99a7ff4 (from 090888d3baf61a70640d28e99afdce20952cdea0)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Tue Jun 12 23:32:18 2007 -0400

    RADEON: make sure to clear RADEON_LVDS_ON when turning LVDS off
    
    - fixes bug 3483

diff --git a/src/radeon_display.c b/src/radeon_display.c
index 18d8a01..f170406 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -406,11 +406,11 @@ void RADEONEnableDisplay(xf86OutputPtr o
 		OUTPLLP(pScrn, RADEON_PIXCLKS_CNTL, 0, ~RADEON_PIXCLK_LVDS_ALWAYS_ONb);
 	    }
             tmp = INREG(RADEON_LVDS_GEN_CNTL);
-            tmp |= (RADEON_LVDS_ON | RADEON_LVDS_DISPLAY_DIS);
-            tmp &= ~(RADEON_LVDS_BLON);
+            tmp |= RADEON_LVDS_DISPLAY_DIS;
+            tmp &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON);
             OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
-            save->lvds_gen_cntl |= (RADEON_LVDS_ON | RADEON_LVDS_DISPLAY_DIS);
-            save->lvds_gen_cntl &= ~(RADEON_LVDS_BLON);
+            save->lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS;
+            save->lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON);
 	    if (info->IsMobility || info->IsIGP) {
 		OUTPLL(pScrn, RADEON_PIXCLKS_CNTL, tmpPixclksCntl);
 	    }
diff-tree 090888d3baf61a70640d28e99afdce20952cdea0 (from 9dd9f09a9021653e5590d27bd7aa0e7af85416ad)
Author: Tormod Volden <bugzi06.fdo.tormod at xoxy.net>
Date:   Tue Jun 12 23:30:18 2007 -0400

    RADEON: limit PanelPwrDly to 2000 ms on ATOM bios as per legacy bios
    
    - fixes bug 11238

diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index f55d161..10ef99f 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -415,6 +415,9 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86Outp
 	    radeon_output->VSyncWidth = RADEON_BIOS16(tmp+20);
 	    radeon_output->PanelPwrDly = RADEON_BIOS16(tmp+40);
 
+	    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0)
+		radeon_output->PanelPwrDly = 2000;
+
 	    radeon_output->Flags = 0;
 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, 
 		       "LVDS Info:\n"


More information about the xorg-commit mailing list