aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_drv.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-10 04:42:52 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-09-06 02:21:29 -0400
commitea9d758d6ddb9f4bb9639619100743e8f5fa85a0 (patch)
tree9d68d3b5294e551e8f1768daeaa70c9375c80f5f /drivers/gpu/drm/i915/intel_drv.h
parentfc303101dc9bfe2b079798c948f6ad4245c51e57 (diff)
drm/i915: push commit_output_state past the crtc/encoder preparing
With this change we can (finally!) rip out a few of the temporary hacks and clean up a few other things: - Kill intel_crtc_prepare_encoders, now unused. - Kill the hacks in the crtc_disable/enable functions to always call the encoder callbacks, we now always call the crtc functions with the right encoder -> crtc links. - Also push down the crtc->enable, encoder and connector dpms state updates. Unfortunately we can't add a WARN in the crtc_disable callbacks to ensure that the crtc is always still enabled when disabling an output pipe - the crtc sanitizer of the hw readout path can hit this when it needs to disable an active pipe without any enabled outputs. - Only call crtc->disable if the pipe is already enabled - again avoids running afoul of the new WARN. v2: Copy&paste our own version of crtc_in_use, too. v3: We need to update the dpms an encoder->connectors_active states, too. v4: I've forgotten to kill the unconditional encoder->disable calls in the crtc_disable functions. v5: Rip out leftover debug printk. v6: Properly clear intel_encoder->connectors_active. This wasn't properly cleared when disabling an encoder because it was no longer on the new connector list, but the crtc was still enabled (i.e. switching the encoder of an active crtc). Reported by Jani Nikula. v7: Don't clobber the encoder->connectors_active state of untouched encoders. Since X likes to first disable all outputs with dpms off before setting a new framebuffer, this hit a few warnings. Reported by Paulo Zanoni. v8: Kill the now stale comment warning that intel_crtc->active is not always updated at the right times. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 5137f9bef13e..d03e77752157 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -184,9 +184,6 @@ struct intel_crtc {
184 * Whether the crtc and the connected output pipeline is active. Implies 184 * Whether the crtc and the connected output pipeline is active. Implies
185 * that crtc->enabled is set, i.e. the current mode configuration has 185 * that crtc->enabled is set, i.e. the current mode configuration has
186 * some outputs connected to this crtc. 186 * some outputs connected to this crtc.
187 *
188 * Atm crtc->enabled is unconditionally updated _before_ the hw state is
189 * changed, hence we can only check this when enabling the crtc.
190 */ 187 */
191 bool active; 188 bool active;
192 bool primary_disabled; /* is the crtc obscured by a plane? */ 189 bool primary_disabled; /* is the crtc obscured by a plane? */