[PATCH] wip

José Roberto de Souza jose.souza at intel.com
Wed Nov 28 00:26:53 UTC 2018


---
 drivers/gpu/drm/i915/intel_psr.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 5232eb23c470..ce25030a7af6 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -1052,6 +1052,19 @@ static void intel_psr_work(struct work_struct *work)
 	mutex_unlock(&dev_priv->psr.lock);
 }
 
+static enum pipe intel_psr_pipe_get(struct drm_i915_private *dev_priv)
+{
+	struct drm_connector_state *conn_state;
+	struct intel_connector *connector;
+	struct drm_crtc *crtc;
+
+	connector = dev_priv->psr.dp->attached_connector;
+	conn_state = connector->base.state;
+	crtc = conn_state->crtc;
+
+	return to_intel_crtc(crtc)->pipe;
+}
+
 /**
  * intel_psr_invalidate - Invalidade PSR
  * @dev_priv: i915 device
@@ -1068,7 +1081,6 @@ static void intel_psr_work(struct work_struct *work)
 void intel_psr_invalidate(struct drm_i915_private *dev_priv,
 			  unsigned frontbuffer_bits, enum fb_op_origin origin)
 {
-	struct drm_crtc *crtc;
 	enum pipe pipe;
 
 	if (!CAN_PSR(dev_priv))
@@ -1083,9 +1095,7 @@ void intel_psr_invalidate(struct drm_i915_private *dev_priv,
 		return;
 	}
 
-	crtc = dp_to_dig_port(dev_priv->psr.dp)->base.base.crtc;
-	pipe = to_intel_crtc(crtc)->pipe;
-
+	pipe = intel_psr_pipe_get(dev_priv);
 	frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
 	dev_priv->psr.busy_frontbuffer_bits |= frontbuffer_bits;
 
@@ -1111,7 +1121,6 @@ void intel_psr_invalidate(struct drm_i915_private *dev_priv,
 void intel_psr_flush(struct drm_i915_private *dev_priv,
 		     unsigned frontbuffer_bits, enum fb_op_origin origin)
 {
-	struct drm_crtc *crtc;
 	enum pipe pipe;
 
 	if (!CAN_PSR(dev_priv))
@@ -1126,9 +1135,7 @@ void intel_psr_flush(struct drm_i915_private *dev_priv,
 		return;
 	}
 
-	crtc = dp_to_dig_port(dev_priv->psr.dp)->base.base.crtc;
-	pipe = to_intel_crtc(crtc)->pipe;
-
+	pipe = intel_psr_pipe_get(dev_priv);
 	frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
 	dev_priv->psr.busy_frontbuffer_bits &= ~frontbuffer_bits;
 
-- 
2.19.2



More information about the Intel-gfx-trybot mailing list