diff options
author | Keith Packard <keithp@dulcimer.keithp.com> | 2007-06-30 12:45:24 -0700 |
---|---|---|
committer | Keith Packard <keithp@dulcimer.keithp.com> | 2007-06-30 12:45:24 -0700 |
commit | 1e2e301348b4168aeed38b3fdc6b0e43d5678a86 (patch) | |
tree | 018eab1524887b06193a5e5c55f4f8ea84e2c1c9 /src/i830_tv.c | |
parent | 11862c2e1f23b77b56d7bd8b384579b5e3ae377b (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.c | 7 |
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); } |