summaryrefslogtreecommitdiff
path: root/src/i830_tv.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@dulcimer.keithp.com>2007-06-30 12:45:24 -0700
committerKeith Packard <keithp@dulcimer.keithp.com>2007-06-30 12:45:24 -0700
commit1e2e301348b4168aeed38b3fdc6b0e43d5678a86 (patch)
tree018eab1524887b06193a5e5c55f4f8ea84e2c1c9 /src/i830_tv.c
parent11862c2e1f23b77b56d7bd8b384579b5e3ae377b (diff)
Fix load detection to use border region instead of blanking.
Make sure there is some border area to use by changing how the pipe is configured, then pick a scanline in the middle of the border for load detection. This lets the load detect code use an active pipe instead of requiring an idle one.
Diffstat (limited to 'src/i830_tv.c')
-rw-r--r--src/i830_tv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/i830_tv.c b/src/i830_tv.c
index b95986f0..1c818bae 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -1357,13 +1357,18 @@ i830_tv_detect(xf86OutputPtr output)
crtc = i830GetLoadDetectPipe (output);
if (crtc)
{
- if (intel_output->load_detect_temp)
+ if (!crtc->enabled)
{
/* we only need the pixel clock set correctly here */
mode = reported_modes[0];
xf86SetModeCrtc (&mode, INTERLACE_HALVE_V);
crtc->funcs->mode_set(crtc, &mode, &mode, 0, 0);
}
+ else if (intel_output->load_detect_temp)
+ {
+ output->funcs->mode_set (output, &crtc->mode, &crtc->mode);
+ output->funcs->commit (output);
+ }
i830_tv_detect_type (crtc, output);
i830ReleaseLoadDetectPipe (output);
}