From debbed10cac71b06c6209d801430f3b4cdfd01c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ville=20Syrj=C3=A4l=C3=A4?= Date: Fri, 5 Aug 2016 19:05:42 +0300 Subject: [PATCH] Revert "drm/i915: Track active streams also for DP SST" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This reverts commit d962b64fe87d1f86ec7946e1c1b6fb12c90c948c. active_streams will get totally out of whack with SST unless we sync up with the hw state at readout, obviously! We don't yet do that, so now the WARNs fire all the time. Let's revert :( Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1470413142-26402-1-git-send-email-ville.syrjala@linux.intel.com References: https://bugs.freedesktop.org/show_bug.cgi?id=95472#c14 Acked-by: Chris Wilson --- drivers/gpu/drm/i915/intel_ddi.c | 10 ---------- drivers/gpu/drm/i915/intel_dp.c | 8 +------- drivers/gpu/drm/i915/intel_dp_mst.c | 16 ++++++++-------- drivers/gpu/drm/i915/intel_drv.h | 2 +- 4 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index b8f729a176ff1..c2df4e429b19d 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -1641,9 +1641,6 @@ static void intel_ddi_pre_enable(struct intel_encoder *intel_encoder) intel_ddi_init_dp_buf_reg(intel_encoder); - WARN_ON(intel_dp->active_streams != 0); - intel_dp->active_streams++; - intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); intel_dp_start_link_train(intel_dp); if (port != PORT_A || INTEL_INFO(dev_priv)->gen >= 9) @@ -1770,13 +1767,6 @@ static void intel_disable_ddi(struct intel_encoder *intel_encoder) intel_psr_disable(intel_dp); intel_edp_backlight_off(intel_dp); } - - if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) { - struct intel_dp *intel_dp = enc_to_intel_dp(encoder); - - intel_dp->active_streams--; - WARN_ON(intel_dp->active_streams != 0); - } } bool bxt_ddi_phy_is_enabled(struct drm_i915_private *dev_priv, diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 0aadc65ff0353..8fe2afa5439ee 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2685,9 +2685,6 @@ static void intel_enable_dp(struct intel_encoder *encoder) lane_mask); } - WARN_ON(intel_dp->active_streams != 0); - intel_dp->active_streams++; - intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); intel_dp_start_link_train(intel_dp); intel_dp_stop_link_train(intel_dp); @@ -3347,9 +3344,6 @@ intel_dp_link_down(struct intel_dp *intel_dp) DRM_DEBUG_KMS("\n"); - intel_dp->active_streams--; - WARN_ON(intel_dp->active_streams != 0); - if ((IS_GEN7(dev) && port == PORT_A) || (HAS_PCH_CPT(dev) && port != PORT_A)) { DP &= ~DP_LINK_TRAIN_MASK_CPT; @@ -3851,7 +3845,7 @@ go_again: if (bret == true) { /* check link status - esi[10] = 0x200c */ - if (intel_dp->active_streams && + if (intel_dp->active_mst_links && !drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) { DRM_DEBUG_KMS("channel EQ not ok, retraining\n"); intel_dp_start_link_train(intel_dp); diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index 0beca9197a1ff..629337dbca3d5 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c @@ -99,7 +99,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder) struct intel_dp *intel_dp = &intel_dig_port->dp; int ret; - DRM_DEBUG_KMS("%d\n", intel_dp->active_streams); + DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); drm_dp_mst_reset_vcpi_slots(&intel_dp->mst_mgr, intel_mst->connector->port); @@ -115,7 +115,7 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder) struct intel_digital_port *intel_dig_port = intel_mst->primary; struct intel_dp *intel_dp = &intel_dig_port->dp; - DRM_DEBUG_KMS("%d\n", intel_dp->active_streams); + DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); /* this can fail */ drm_dp_check_act_status(&intel_dp->mst_mgr); @@ -124,10 +124,10 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder) drm_dp_mst_deallocate_vcpi(&intel_dp->mst_mgr, intel_mst->connector->port); - intel_dp->active_streams--; + intel_dp->active_mst_links--; intel_mst->connector = NULL; - if (intel_dp->active_streams == 0) { + if (intel_dp->active_mst_links == 0) { intel_dig_port->base.post_disable(&intel_dig_port->base); intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); } @@ -165,11 +165,11 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder) */ found->encoder = encoder; - DRM_DEBUG_KMS("%d\n", intel_dp->active_streams); + DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); intel_mst->connector = found; - if (intel_dp->active_streams == 0) { + if (intel_dp->active_mst_links == 0) { intel_ddi_clk_select(&intel_dig_port->base, intel_crtc->config); intel_prepare_dp_ddi_buffers(&intel_dig_port->base); @@ -193,7 +193,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder) } - intel_dp->active_streams++; + intel_dp->active_mst_links++; temp = I915_READ(DP_TP_STATUS(port)); I915_WRITE(DP_TP_STATUS(port), temp); @@ -210,7 +210,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder) enum port port = intel_dig_port->port; int ret; - DRM_DEBUG_KMS("%d\n", intel_dp->active_streams); + DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); if (intel_wait_for_register(dev_priv, DP_TP_STATUS(port), diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index a97886632870e..b1fc67ed8bc2b 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -894,7 +894,7 @@ struct intel_dp { bool can_mst; /* this port supports mst */ bool is_mst; - int active_streams; /* number of active streams (for SST and MST both) */ + int active_mst_links; /* connector directly attached - won't be use for modeset in mst world */ struct intel_connector *attached_connector; -- 2.39.5