diff mbox

[06/16] drm/i915: Ensure intel_state->active_crtcs is always set

Message ID 1459475198-30094-7-git-send-email-matthew.d.roper@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Matt Roper April 1, 2016, 1:46 a.m. UTC
We currently only setup intel_state->active_crtcs if we plan to modify
it and write the modification back to dev_priv.  Let's ensure that
this value is always valid, even when it isn't changing as part of an
atomic transaction.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Maarten Lankhorst April 5, 2016, 9:29 a.m. UTC | #1
Op 01-04-16 om 03:46 schreef Matt Roper:
> We currently only setup intel_state->active_crtcs if we plan to modify
> it and write the modification back to dev_priv.  Let's ensure that
> this value is always valid, even when it isn't changing as part of an
> atomic transaction.
It should be noted that make a note that active_crtcs is not completely reliable when connection_mutex is not taken.
A parallel modeset may change this value. That said, looks like patch 9/16 fixes this.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e6b5ee5..ab1fc3d 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13185,7 +13185,6 @@  static int intel_modeset_checks(struct drm_atomic_state *state)
 	}
 
 	intel_state->modeset = true;
-	intel_state->active_crtcs = dev_priv->active_crtcs;
 
 	for_each_crtc_in_state(state, crtc, crtc_state, i) {
 		if (crtc_state->active)
@@ -13281,6 +13280,8 @@  static int intel_atomic_check(struct drm_device *dev,
 	if (ret)
 		return ret;
 
+	intel_state->active_crtcs = dev_priv->active_crtcs;
+
 	for_each_crtc_in_state(state, crtc, crtc_state, i) {
 		struct intel_crtc_state *pipe_config =
 			to_intel_crtc_state(crtc_state);