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
This commit is contained in:
Родитель
bd34cea2a0
Коммит
6770ef332f
|
@ -7522,6 +7522,7 @@ unlock:
|
||||||
void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
|
void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv,
|
||||||
unsigned int frontbuffer_bits)
|
unsigned int frontbuffer_bits)
|
||||||
{
|
{
|
||||||
|
struct intel_dp *intel_dp;
|
||||||
struct drm_crtc *crtc;
|
struct drm_crtc *crtc;
|
||||||
enum pipe pipe;
|
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);
|
cancel_delayed_work(&dev_priv->drrs.work);
|
||||||
|
|
||||||
mutex_lock(&dev_priv->drrs.mutex);
|
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);
|
mutex_unlock(&dev_priv->drrs.mutex);
|
||||||
return;
|
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;
|
pipe = to_intel_crtc(crtc)->pipe;
|
||||||
|
|
||||||
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(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 */
|
/* invalidate means busy screen hence upclock */
|
||||||
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
||||||
intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config,
|
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);
|
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,
|
void intel_edp_drrs_flush(struct drm_i915_private *dev_priv,
|
||||||
unsigned int frontbuffer_bits)
|
unsigned int frontbuffer_bits)
|
||||||
{
|
{
|
||||||
|
struct intel_dp *intel_dp;
|
||||||
struct drm_crtc *crtc;
|
struct drm_crtc *crtc;
|
||||||
enum pipe pipe;
|
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);
|
cancel_delayed_work(&dev_priv->drrs.work);
|
||||||
|
|
||||||
mutex_lock(&dev_priv->drrs.mutex);
|
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);
|
mutex_unlock(&dev_priv->drrs.mutex);
|
||||||
return;
|
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;
|
pipe = to_intel_crtc(crtc)->pipe;
|
||||||
|
|
||||||
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(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 */
|
/* flush means busy screen hence upclock */
|
||||||
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
||||||
intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config,
|
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
|
* flush also means no more activity hence schedule downclock, if all
|
||||||
|
|
Загрузка…
Ссылка в новой задаче