diff mbox

Revert "drm/i915: Track active streams also for DP SST"

Message ID 1470413142-26402-1-git-send-email-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä Aug. 5, 2016, 4:05 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

This reverts commit f64425a82bdb5c3d7e09ba765716da88a9b00eec.

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ä <ville.syrjala@linux.intel.com>
---
 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(-)

Comments

Chris Wilson Aug. 5, 2016, 4:14 p.m. UTC | #1
On Fri, Aug 05, 2016 at 07:05:42PM +0300, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> This reverts commit f64425a82bdb5c3d7e09ba765716da88a9b00eec.
> 
> 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ä <ville.syrjala@linux.intel.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=95472#c14
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
Ville Syrjälä Aug. 5, 2016, 4:30 p.m. UTC | #2
On Fri, Aug 05, 2016 at 05:14:23PM +0100, Chris Wilson wrote:
> On Fri, Aug 05, 2016 at 07:05:42PM +0300, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > This reverts commit f64425a82bdb5c3d7e09ba765716da88a9b00eec.
> > 
> > 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ä <ville.syrjala@linux.intel.com>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=95472#c14
> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>

Thanks. Pushed. And sorry for the noise, folks.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index b8f729a176ff..c2df4e429b19 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 0aadc65ff035..8fe2afa5439e 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 0beca9197a1f..629337dbca3d 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 e54e6c205f41..1ad2e2c5f580 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;