> > diff --git a/src/i830_tv.c b/src/i830_tv.c > index 6adb9f2..a5b790b 100644 > --- a/src/i830_tv.c > +++ b/src/i830_tv.c > @@ -1286,6 +1286,8 @@ i830_tv_detect_type (xf86CrtcPtr crtc, > tv_ctl = INREG(TV_CTL); > save_tv_ctl = tv_ctl; > tv_ctl &= ~TV_ENC_ENABLE; > + OUTREG(TV_CTL, tv_ctl); > + i830WaitForVblank(pScrn); > tv_ctl &= ~TV_TEST_MODE_MASK; > tv_ctl |= TV_TEST_MODE_MONITOR_DETECT; > tv_dac &= ~TVDAC_SENSE_MASK; > @@ -1298,6 +1300,7 @@ i830_tv_detect_type (xf86CrtcPtr crtc, > DAC_B_0_7_V | > DAC_C_0_7_V); > OUTREG(TV_CTL, tv_ctl); > + i830WaitForVblank(pScrn); > OUTREG(TV_DAC, tv_dac); > i830WaitForVblank(pScrn); > tv_dac = INREG(TV_DAC); > Okey, i found a solution that works for me. When the function restores ctl state after having probed (right after the OUTREG(TV_DAC,save_tv_ctl)), it must do a wait vblank. I didn't need the other waits that Robert added. Intel manuals mention nothing about needed a vblank wait when turing of encoder, but it does mention it when turning it on. Regards _______________________________________________ xorg mailing list xorg@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/xorg