Merge tag 'drm-misc-next-2020-06-19' of git://anongit.freedesktop.org/drm/drm-misc...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / i915 / display / intel_dp.c
index 40d42dcff0b7d68afd17e5b3912818a41c010f3c..cc525fda441af8ea8da7e361686838dc8db08954 100644 (file)
@@ -5206,6 +5206,9 @@ void intel_read_dp_sdp(struct intel_encoder *encoder,
                       struct intel_crtc_state *crtc_state,
                       unsigned int type)
 {
+       if (encoder->type != INTEL_OUTPUT_DDI)
+               return;
+
        switch (type) {
        case DP_SDP_VSC:
                intel_read_dp_vsc_sdp(encoder, crtc_state,
@@ -7691,7 +7694,7 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
                return;
        }
 
-       if (intel_dp->attached_connector->panel.downclock_mode->vrefresh ==
+       if (drm_mode_vrefresh(intel_dp->attached_connector->panel.downclock_mode) ==
                        refresh_rate)
                index = DRRS_LOW_RR;
 
@@ -7804,7 +7807,7 @@ void intel_edp_drrs_disable(struct intel_dp *intel_dp,
 
        if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
                intel_dp_set_drrs_state(dev_priv, old_crtc_state,
-                       intel_dp->attached_connector->panel.fixed_mode->vrefresh);
+                       drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode));
 
        dev_priv->drrs.dp = NULL;
        mutex_unlock(&dev_priv->drrs.mutex);
@@ -7837,7 +7840,7 @@ static void intel_edp_drrs_downclock_work(struct work_struct *work)
                struct drm_crtc *crtc = dp_to_dig_port(intel_dp)->base.base.crtc;
 
                intel_dp_set_drrs_state(dev_priv, to_intel_crtc(crtc)->config,
-                       intel_dp->attached_connector->panel.downclock_mode->vrefresh);
+                       drm_mode_vrefresh(intel_dp->attached_connector->panel.downclock_mode));
        }
 
 unlock:
@@ -7857,6 +7860,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;
 
@@ -7866,12 +7870,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);
@@ -7880,7 +7886,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);
+                                       drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode));
 
        mutex_unlock(&dev_priv->drrs.mutex);
 }
@@ -7900,6 +7906,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;
 
@@ -7909,12 +7916,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);
@@ -7923,7 +7932,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);
+                                       drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode));
 
        /*
         * flush also means no more activity hence schedule downclock, if all