diff options
author | Keith Packard <keithp@neko.keithp.com> | 2007-06-17 14:59:24 +0100 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2007-06-17 17:31:03 +0100 |
commit | fbbb41bc5e03478cb46ee8f64ef68b23ff3fc14b (patch) | |
tree | 45a8a5daed6285233bb3c0e8acbb19338735eb17 | |
parent | d5ca000ece145a35fd6df0dcf3fb3460bd2d64e3 (diff) |
Let DPMS functions enable plane/pipe/output on 8xx hardware.
On 855, letting crtc_mode_set enable the plane and pipe will occasionally
hang the chip. Instead, wait for crtc_enable to light things up. For 9xx,
leave things alone.
-rw-r--r-- | src/i830_display.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/i830_display.c b/src/i830_display.c index adc7479e..69653377 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -958,11 +958,17 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, else pipeconf &= ~PIPEACONF_DOUBLE_WIDE; } -#if 1 - dspcntr |= DISPLAY_PLANE_ENABLE; - pipeconf |= PIPEACONF_ENABLE; - dpll |= DPLL_VCO_ENABLE; -#endif + /* + * This "shouldn't" be needed as the dpms on code + * will be run after the mode is set. On 9xx, it helps. + * On 855, it can lock up the chip (and the entire machine) + */ + if (IS_I9XX (pI830)) + { + dspcntr |= DISPLAY_PLANE_ENABLE; + pipeconf |= PIPEACONF_ENABLE; + dpll |= DPLL_VCO_ENABLE; + } /* Disable the panel fitter if it was on our pipe */ if (i830_panel_fitter_pipe (pI830) == pipe) |