summaryrefslogtreecommitdiff
authorMa Ling <ling.ma@intel.com>2009-05-15 07:22:11 (GMT)
committer Zhenyu Wang <zhenyu.z.wang@intel.com>2009-06-03 01:49:29 (GMT)
commit88f766be008008d76c150e3ac16f09d4ecbb6d53 (patch)
tree3df53776f7eaee4c6bab403984a45bb983bfc973
parent6a635be5ea2b2df9d6b9a8006325244394038474 (diff)
downloadxf86-video-intel-88f766be008008d76c150e3ac16f09d4ecbb6d53.zip
xf86-video-intel-88f766be008008d76c150e3ac16f09d4ecbb6d53.tar.gz
xf86-video-intel-88f766be008008d76c150e3ac16f09d4ecbb6d53.tar.bz2
Wait doubled regis to be stable for load pipe detection
We have two approaches for VGA detections: hot plug detection for 945G onwards and load pipe detection for Pre-945G. load pipe detection will get one free pipe ,and set border color as red and blue, then check CRT status by swf register. Because pipe registers in hires mode are double buffered, once set force border bit in pipeconf register, we have to wait for a vblank until it is effective, otherwise result is unstable. It fixed freedesktop bug #20463 Signed-off-by: Ma Ling <ling.ma@intel.com>
-rw-r--r--src/i830_crt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/i830_crt.c b/src/i830_crt.c
index eced5e8..536d63d 100644
--- a/src/i830_crt.c
+++ b/src/i830_crt.c
@@ -286,7 +286,8 @@ i830_crt_detect_load (xf86CrtcPtr crtc,
{
uint32_t pipeconf = INREG(pipeconf_reg);
OUTREG(pipeconf_reg, pipeconf | PIPECONF_FORCE_BORDER);
-
+ /* Wait for next Vblank to substitue border color for Color info */
+ i830WaitForVblank (pScrn);
st00 = pI830->readStandard (pI830, 0x3c2);
present = (st00 & (1 << 4)) != 0;
OUTREG(pipeconf_reg, pipeconf);