summaryrefslogtreecommitdiff
path: root/src/i830_tv.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@hobbes.lan>2008-06-09 08:52:59 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-06-09 08:52:59 -0700
commit1142be53eb8d2ee8a9b60ace5d49f0ba27332275 (patch)
tree84ebbc77e7695348066014f89c31c538e7598cce /src/i830_tv.c
parent64a8f2433d7774d06119793b57cec6d3be6389c1 (diff)
Fix TV programming: add vblank wait after TV_CTL writes
Fxies FDO bug #14000; we need to wait for vblank after writing TV_CTL or followi ng "DPMS on" calls may not actually enable the output.
Diffstat (limited to 'src/i830_tv.c')
-rw-r--r--src/i830_tv.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/i830_tv.c b/src/i830_tv.c
index 2fc6199b..cde929a7 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -788,6 +788,7 @@ i830_tv_dpms(xf86OutputPtr output, int mode)
OUTREG(TV_CTL, INREG(TV_CTL) & ~TV_ENC_ENABLE);
break;
}
+ i830WaitForVblank(pScrn);
}
static void
@@ -920,6 +921,7 @@ i830_tv_restore(xf86OutputPtr output)
OUTREG(TV_DAC, dev_priv->save_TV_DAC);
OUTREG(TV_CTL, dev_priv->save_TV_CTL);
+ i830WaitForVblank(pScrn);
}
static const tv_mode_t *
@@ -1237,6 +1239,7 @@ i830_tv_mode_set(xf86OutputPtr output, DisplayModePtr mode,
OUTREG(TV_V_CHROMA_0 + (i<<2), tv_mode->filter_table[j++]);
OUTREG(TV_DAC, 0);
OUTREG(TV_CTL, tv_ctl);
+ i830WaitForVblank(pScrn);
}
static const DisplayModeRec reported_modes[] = {