Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915: Introduce some local intel_dp variables

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

+12 -6
+12 -6
drivers/gpu/drm/i915/display/intel_dp.c
··· 7522 7522 void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv, 7523 7523 unsigned int frontbuffer_bits) 7524 7524 { 7525 + struct intel_dp *intel_dp; 7525 7526 struct drm_crtc *crtc; 7526 7527 enum pipe pipe; 7527 7528 ··· 7532 7531 cancel_delayed_work(&dev_priv->drrs.work); 7533 7532 7534 7533 mutex_lock(&dev_priv->drrs.mutex); 7535 - if (!dev_priv->drrs.dp) { 7534 + 7535 + intel_dp = dev_priv->drrs.dp; 7536 + if (!intel_dp) { 7536 7537 mutex_unlock(&dev_priv->drrs.mutex); 7537 7538 return; 7538 7539 } 7539 7540 7540 - crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc; 7541 + crtc = dp_to_dig_port(intel_dp)->base.base.crtc; 7541 7542 pipe = to_intel_crtc(crtc)->pipe; 7542 7543 7543 7544 frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe); ··· 7548 7545 /* invalidate means busy screen hence upclock */ 7549 7546 if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) 7550 7547 intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config, 7551 - dev_priv->drrs.dp->attached_connector->panel.fixed_mode->vrefresh); 7548 + intel_dp->attached_connector->panel.fixed_mode->vrefresh); 7552 7549 7553 7550 mutex_unlock(&dev_priv->drrs.mutex); 7554 7551 } ··· 7568 7565 void intel_edp_drrs_flush(struct drm_i915_private *dev_priv, 7569 7566 unsigned int frontbuffer_bits) 7570 7567 { 7568 + struct intel_dp *intel_dp; 7571 7569 struct drm_crtc *crtc; 7572 7570 enum pipe pipe; 7573 7571 ··· 7578 7574 cancel_delayed_work(&dev_priv->drrs.work); 7579 7575 7580 7576 mutex_lock(&dev_priv->drrs.mutex); 7581 - if (!dev_priv->drrs.dp) { 7577 + 7578 + intel_dp = dev_priv->drrs.dp; 7579 + if (!intel_dp) { 7582 7580 mutex_unlock(&dev_priv->drrs.mutex); 7583 7581 return; 7584 7582 } 7585 7583 7586 - crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc; 7584 + crtc = dp_to_dig_port(intel_dp)->base.base.crtc; 7587 7585 pipe = to_intel_crtc(crtc)->pipe; 7588 7586 7589 7587 frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe); ··· 7594 7588 /* flush means busy screen hence upclock */ 7595 7589 if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) 7596 7590 intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config, 7597 - dev_priv->drrs.dp->attached_connector->panel.fixed_mode->vrefresh); 7591 + intel_dp->attached_connector->panel.fixed_mode->vrefresh); 7598 7592 7599 7593 /* 7600 7594 * flush also means no more activity hence schedule downclock, if all