summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@neko.keithp.com>2007-06-17 14:59:24 +0100
committerKeith Packard <keithp@neko.keithp.com>2007-06-17 17:31:03 +0100
commitfbbb41bc5e03478cb46ee8f64ef68b23ff3fc14b (patch)
tree45a8a5daed6285233bb3c0e8acbb19338735eb17
parentd5ca000ece145a35fd6df0dcf3fb3460bd2d64e3 (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.c16
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)