[GM965] Why does this patch fix my Intel TVOut issue?

Jesse Barnes jbarnes at virtuousgeek.org
Tue May 20 10:07:23 PDT 2008


On Tuesday, May 20, 2008 4:09 am Robert Lowery wrote:
> >> 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.
>
> That's very weird, I was sure I tried that scenario.  Trying again, the
> following much simpler (and consistent) patch also works for me.  I'll
> update https://bugs.freedesktop.org/show_bug.cgi?id=14000 and ask affected
> people to retest
>
> -Rob
>
> diff --git a/src/i830_tv.c b/src/i830_tv.c
> index 6adb9f2..b3e03ec 100644
> --- a/src/i830_tv.c
> +++ b/src/i830_tv.c
> @@ -1303,6 +1303,7 @@ i830_tv_detect_type (xf86CrtcPtr    crtc,
>         tv_dac = INREG(TV_DAC);
>         OUTREG(TV_DAC, save_tv_dac);
>         OUTREG(TV_CTL, save_tv_ctl);
> +       i830WaitForVblank(pScrn);

Excellent, thanks for debugging this.  We should be able to push it quickly.

Jesse




More information about the xorg mailing list