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