OSDN Git Service

drm/i915: Introduce some local intel_dp variables
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 28 Apr 2020 17:19:26 +0000 (20:19 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 26 May 2020 20:05:45 +0000 (23:05 +0300)
The drrs code dereferences mode->vrefresh via some really long chain
of structures/pointers. Couldn't get coccinelle to see through all
that so let's add some local variables to help it.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200428171940.19552-3-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index f2ee2a0..d5aa85e 100644 (file)
@@ -7522,6 +7522,7 @@ unlock:
 void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
                               unsigned int frontbuffer_bits)
 {
+       struct intel_dp *intel_dp;
        struct drm_crtc *crtc;
        enum pipe pipe;
 
@@ -7531,12 +7532,14 @@ void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
        cancel_delayed_work(&dev_priv->drrs.work);
 
        mutex_lock(&dev_priv->drrs.mutex);
-       if (!dev_priv->drrs.dp) {
+
+       intel_dp = dev_priv->drrs.dp;
+       if (!intel_dp) {
                mutex_unlock(&dev_priv->drrs.mutex);
                return;
        }
 
-       crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc;
+       crtc = dp_to_dig_port(intel_dp)->base.base.crtc;
        pipe = to_intel_crtc(crtc)->pipe;
 
        frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
@@ -7545,7 +7548,7 @@ void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
        /* invalidate means busy screen hence upclock */
        if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
                intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config,
-                       dev_priv->drrs.dp->attached_connector->panel.fixed_mode->vrefresh);
+                                       intel_dp->attached_connector->panel.fixed_mode->vrefresh);
 
        mutex_unlock(&dev_priv->drrs.mutex);
 }
@@ -7565,6 +7568,7 @@ void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
 void intel_edp_drrs_flush(struct drm_i915_private *dev_priv,
                          unsigned int frontbuffer_bits)
 {
+       struct intel_dp *intel_dp;
        struct drm_crtc *crtc;
        enum pipe pipe;
 
@@ -7574,12 +7578,14 @@ void intel_edp_drrs_flush(struct drm_i915_private *dev_priv,
        cancel_delayed_work(&dev_priv->drrs.work);
 
        mutex_lock(&dev_priv->drrs.mutex);
-       if (!dev_priv->drrs.dp) {
+
+       intel_dp = dev_priv->drrs.dp;
+       if (!intel_dp) {
                mutex_unlock(&dev_priv->drrs.mutex);
                return;
        }
 
-       crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc;
+       crtc = dp_to_dig_port(intel_dp)->base.base.crtc;
        pipe = to_intel_crtc(crtc)->pipe;
 
        frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
@@ -7588,7 +7594,7 @@ void intel_edp_drrs_flush(struct drm_i915_private *dev_priv,
        /* flush means busy screen hence upclock */
        if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
                intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config,
-                               dev_priv->drrs.dp->attached_connector->panel.fixed_mode->vrefresh);
+                                       intel_dp->attached_connector->panel.fixed_mode->vrefresh);
 
        /*
         * flush also means no more activity hence schedule downclock, if all