drm/i915/fbc: replace a loop with drm_atomic_get_existing_crtc_state()
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 11 Nov 2016 16:57:36 +0000 (14:57 -0200)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 14 Nov 2016 16:00:29 +0000 (14:00 -0200)
Much simpler. Thanks to Ville for pointing this.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1478883461-20201-3-git-send-email-paulo.r.zanoni@intel.com
drivers/gpu/drm/i915/intel_fbc.c

index ded77bda1e0394a7b8ee140f8b495a78212a9955..b53b88425d8ced44d2819fa471e3a81120fd9f5f 100644 (file)
@@ -1071,7 +1071,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
        struct drm_plane *plane;
        struct drm_plane_state *plane_state;
        bool fbc_crtc_present = false;
-       int i, j;
+       int i;
 
        mutex_lock(&fbc->lock);
 
@@ -1092,6 +1092,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
        for_each_plane_in_state(state, plane, plane_state, i) {
                struct intel_plane_state *intel_plane_state =
                        to_intel_plane_state(plane_state);
+               struct intel_crtc_state *intel_crtc_state;
 
                if (!intel_plane_state->base.visible)
                        continue;
@@ -1099,16 +1100,12 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
                if (!intel_fbc_can_choose(to_intel_crtc(plane_state->crtc)))
                        continue;
 
-               for_each_crtc_in_state(state, crtc, crtc_state, j) {
-                       struct intel_crtc_state *intel_crtc_state =
-                               to_intel_crtc_state(crtc_state);
-
-                       if (plane_state->crtc != crtc)
-                               continue;
+               intel_crtc_state = to_intel_crtc_state(
+                       drm_atomic_get_existing_crtc_state(state,
+                                                          plane_state->crtc));
 
-                       intel_crtc_state->enable_fbc = true;
-                       goto out;
-               }
+               intel_crtc_state->enable_fbc = true;
+               break;
        }
 
 out: