All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected
@ 2015-08-20  7:47 Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c Jani Nikula
                   ` (7 more replies)
  0 siblings, 8 replies; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

v2 with missing cases handled and intel_digital_port_connected return
value changed to bool. Mostly it's just the addition of patches 2 and 3,
and rebase of the rest.

BR,
Jani.


Jani Nikula (7):
  drm/i915: move ibx_digital_port_connected to intel_dp.c
  drm/i915: make g4x_digital_port_connected return boolean status
  drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
  drm/i915: add common intel_digital_port_connected function
  drm/i915: split ibx_digital_port_connected to ibx and cpt variants
  drm/i915: split g4x_digital_port_connected to g4x and vlv variants
  drm/i915/bxt: Use correct live status register for BXT platform

 drivers/gpu/drm/i915/intel_display.c |  45 --------
 drivers/gpu/drm/i915/intel_dp.c      | 199 +++++++++++++++++++++++++----------
 drivers/gpu/drm/i915/intel_drv.h     |   2 -
 3 files changed, 145 insertions(+), 101 deletions(-)

-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-26  5:04   ` Jindal, Sonika
  2015-08-20  7:47 ` [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status Jani Nikula
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

The function can be made static there. No functional changes.

Reviewed-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 45 --------------------------
 drivers/gpu/drm/i915/intel_dp.c      | 61 +++++++++++++++++++++++++++++++-----
 drivers/gpu/drm/i915/intel_drv.h     |  2 --
 3 files changed, 53 insertions(+), 55 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f604ce1c528b..1a0670259cdf 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1061,51 +1061,6 @@ static void intel_wait_for_pipe_off(struct intel_crtc *crtc)
 	}
 }
 
-/*
- * ibx_digital_port_connected - is the specified port connected?
- * @dev_priv: i915 private structure
- * @port: the port to test
- *
- * Returns true if @port is connected, false otherwise.
- */
-bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
-				struct intel_digital_port *port)
-{
-	u32 bit;
-
-	if (HAS_PCH_IBX(dev_priv->dev)) {
-		switch (port->port) {
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG;
-			break;
-		default:
-			return true;
-		}
-	} else {
-		switch (port->port) {
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG_CPT;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG_CPT;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG_CPT;
-			break;
-		default:
-			return true;
-		}
-	}
-
-	return I915_READ(SDEISR) & bit;
-}
-
 static const char *state_string(bool enabled)
 {
 	return enabled ? "on" : "off";
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d32ce4841654..4aa3d664765b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4473,17 +4473,49 @@ edp_detect(struct intel_dp *intel_dp)
 	return status;
 }
 
-static enum drm_connector_status
-ironlake_dp_detect(struct intel_dp *intel_dp)
+/*
+ * ibx_digital_port_connected - is the specified port connected?
+ * @dev_priv: i915 private structure
+ * @port: the port to test
+ *
+ * Returns true if @port is connected, false otherwise.
+ */
+static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port)
 {
-	struct drm_device *dev = intel_dp_to_dev(intel_dp);
-	struct drm_i915_private *dev_priv = dev->dev_private;
-	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+	u32 bit;
 
-	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
-		return connector_status_disconnected;
+	if (HAS_PCH_IBX(dev_priv->dev)) {
+		switch (port->port) {
+		case PORT_B:
+			bit = SDE_PORTB_HOTPLUG;
+			break;
+		case PORT_C:
+			bit = SDE_PORTC_HOTPLUG;
+			break;
+		case PORT_D:
+			bit = SDE_PORTD_HOTPLUG;
+			break;
+		default:
+			return true;
+		}
+	} else {
+		switch (port->port) {
+		case PORT_B:
+			bit = SDE_PORTB_HOTPLUG_CPT;
+			break;
+		case PORT_C:
+			bit = SDE_PORTC_HOTPLUG_CPT;
+			break;
+		case PORT_D:
+			bit = SDE_PORTD_HOTPLUG_CPT;
+			break;
+		default:
+			return true;
+		}
+	}
 
-	return intel_dp_detect_dpcd(intel_dp);
+	return I915_READ(SDEISR) & bit;
 }
 
 static int g4x_digital_port_connected(struct drm_device *dev,
@@ -4528,6 +4560,19 @@ static int g4x_digital_port_connected(struct drm_device *dev,
 }
 
 static enum drm_connector_status
+ironlake_dp_detect(struct intel_dp *intel_dp)
+{
+	struct drm_device *dev = intel_dp_to_dev(intel_dp);
+	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+
+	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
+		return connector_status_disconnected;
+
+	return intel_dp_detect_dpcd(intel_dp);
+}
+
+static enum drm_connector_status
 g4x_dp_detect(struct intel_dp *intel_dp)
 {
 	struct drm_device *dev = intel_dp_to_dev(intel_dp);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 81b7d77a3c8b..a9e6c2789ea9 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1001,8 +1001,6 @@ void intel_encoder_destroy(struct drm_encoder *encoder);
 int intel_connector_init(struct intel_connector *);
 struct intel_connector *intel_connector_alloc(void);
 bool intel_connector_get_hw_state(struct intel_connector *connector);
-bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
-				struct intel_digital_port *port);
 void intel_connector_attach_encoder(struct intel_connector *connector,
 				    struct intel_encoder *encoder);
 struct drm_encoder *intel_best_encoder(struct drm_connector *connector);
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-20  8:17   ` R, Durgadoss
  2015-08-20  7:47 ` [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected Jani Nikula
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

We should not be hitting any of the default cases in
g4x_digital_port_connected, so add MISSING_CASE annotation and return
boolean status. The current behaviour is just cargo culting from the
days of yonder when the display port support was added to i915.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 4aa3d664765b..d35dc0711f9b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4518,14 +4518,14 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 	return I915_READ(SDEISR) & bit;
 }
 
-static int g4x_digital_port_connected(struct drm_device *dev,
-				       struct intel_digital_port *intel_dig_port)
+static bool g4x_digital_port_connected(struct drm_device *dev,
+				       struct intel_digital_port *port)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	uint32_t bit;
 
 	if (IS_VALLEYVIEW(dev)) {
-		switch (intel_dig_port->port) {
+		switch (port->port) {
 		case PORT_B:
 			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
 			break;
@@ -4536,10 +4536,11 @@ static int g4x_digital_port_connected(struct drm_device *dev,
 			bit = PORTD_HOTPLUG_LIVE_STATUS_VLV;
 			break;
 		default:
-			return -EINVAL;
+			MISSING_CASE(port->port);
+			return false;
 		}
 	} else {
-		switch (intel_dig_port->port) {
+		switch (port->port) {
 		case PORT_B:
 			bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
 			break;
@@ -4550,13 +4551,12 @@ static int g4x_digital_port_connected(struct drm_device *dev,
 			bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
 			break;
 		default:
-			return -EINVAL;
+			MISSING_CASE(port->port);
+			return false;
 		}
 	}
 
-	if ((I915_READ(PORT_HOTPLUG_STAT) & bit) == 0)
-		return 0;
-	return 1;
+	return I915_READ(PORT_HOTPLUG_STAT) & bit;
 }
 
 static enum drm_connector_status
@@ -4577,7 +4577,6 @@ g4x_dp_detect(struct intel_dp *intel_dp)
 {
 	struct drm_device *dev = intel_dp_to_dev(intel_dp);
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
-	int ret;
 
 	/* Can't disconnect eDP, but you can close the lid... */
 	if (is_edp(intel_dp)) {
@@ -4589,10 +4588,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
 		return status;
 	}
 
-	ret = g4x_digital_port_connected(dev, intel_dig_port);
-	if (ret == -EINVAL)
-		return connector_status_unknown;
-	else if (ret == 0)
+	if (!g4x_digital_port_connected(dev, intel_dig_port))
 		return connector_status_disconnected;
 
 	return intel_dp_detect_dpcd(intel_dp);
@@ -5059,7 +5055,7 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
 				goto mst_fail;
 		} else {
-			if (g4x_digital_port_connected(dev, intel_dig_port) != 1)
+			if (!g4x_digital_port_connected(dev, intel_dig_port))
 				goto mst_fail;
 		}
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-20 14:26   ` R, Durgadoss
  2015-08-20  7:47 ` [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function Jani Nikula
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

With the case added for eDP on port A (always connected from this
function's point of view), we should not be hitting any of the default
cases in ibx_digital_port_connected, so add MISSING_CASE annotation.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d35dc0711f9b..f08859471841 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4487,6 +4487,8 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 
 	if (HAS_PCH_IBX(dev_priv->dev)) {
 		switch (port->port) {
+		case PORT_A:
+			return true;
 		case PORT_B:
 			bit = SDE_PORTB_HOTPLUG;
 			break;
@@ -4497,10 +4499,13 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 			bit = SDE_PORTD_HOTPLUG;
 			break;
 		default:
-			return true;
+			MISSING_CASE(port->port);
+			return false;
 		}
 	} else {
 		switch (port->port) {
+		case PORT_A:
+			return true;
 		case PORT_B:
 			bit = SDE_PORTB_HOTPLUG_CPT;
 			break;
@@ -4511,7 +4516,8 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 			bit = SDE_PORTD_HOTPLUG_CPT;
 			break;
 		default:
-			return true;
+			MISSING_CASE(port->port);
+			return false;
 		}
 	}
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
                   ` (2 preceding siblings ...)
  2015-08-20  7:47 ` [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-26  5:26   ` Jindal, Sonika
  2015-08-26 15:18   ` Sivakumar Thulasimani
  2015-08-20  7:47 ` [PATCH v2 5/7] drm/i915: split ibx_digital_port_connected to ibx and cpt variants Jani Nikula
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Add a common intel_digital_port_connected() that splits out to functions
for different platforms. No functional changes.

v2: make the function return a boolean

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f08859471841..f947951a01d4 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
 	return status;
 }
 
-/*
- * ibx_digital_port_connected - is the specified port connected?
- * @dev_priv: i915 private structure
- * @port: the port to test
- *
- * Returns true if @port is connected, false otherwise.
- */
 static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 				       struct intel_digital_port *port)
 {
@@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 	return I915_READ(SDEISR) & bit;
 }
 
-static bool g4x_digital_port_connected(struct drm_device *dev,
+static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
 				       struct intel_digital_port *port)
 {
-	struct drm_i915_private *dev_priv = dev->dev_private;
 	uint32_t bit;
 
-	if (IS_VALLEYVIEW(dev)) {
+	if (IS_VALLEYVIEW(dev_priv)) {
 		switch (port->port) {
 		case PORT_B:
 			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
@@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
 	return I915_READ(PORT_HOTPLUG_STAT) & bit;
 }
 
+/*
+ * intel_digital_port_connected - is the specified port connected?
+ * @dev_priv: i915 private structure
+ * @port: the port to test
+ *
+ * Return %true if @port is connected, %false otherwise.
+ */
+static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
+					 struct intel_digital_port *port)
+{
+	if (HAS_PCH_SPLIT(dev_priv))
+		return ibx_digital_port_connected(dev_priv, port);
+	else
+		return g4x_digital_port_connected(dev_priv, port);
+}
+
 static enum drm_connector_status
 ironlake_dp_detect(struct intel_dp *intel_dp)
 {
@@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 
-	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
+	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
 		return connector_status_disconnected;
 
 	return intel_dp_detect_dpcd(intel_dp);
@@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
 		return status;
 	}
 
-	if (!g4x_digital_port_connected(dev, intel_dig_port))
+	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
 		return connector_status_disconnected;
 
 	return intel_dp_detect_dpcd(intel_dp);
@@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 		/* indicate that we need to restart link training */
 		intel_dp->train_set_valid = false;
 
-		if (HAS_PCH_SPLIT(dev)) {
-			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
-				goto mst_fail;
-		} else {
-			if (!g4x_digital_port_connected(dev, intel_dig_port))
-				goto mst_fail;
-		}
+		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
+			goto mst_fail;
 
 		if (!intel_dp_get_dpcd(intel_dp)) {
 			goto mst_fail;
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 5/7] drm/i915: split ibx_digital_port_connected to ibx and cpt variants
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
                   ` (3 preceding siblings ...)
  2015-08-20  7:47 ` [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 6/7] drm/i915: split g4x_digital_port_connected to g4x and vlv variants Jani Nikula
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Choose the right function at the intel_digital_port_connected level.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 78 +++++++++++++++++++++++------------------
 1 file changed, 43 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f947951a01d4..204d4376be59 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4478,40 +4478,46 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 {
 	u32 bit;
 
-	if (HAS_PCH_IBX(dev_priv->dev)) {
-		switch (port->port) {
-		case PORT_A:
-			return true;
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG;
-			break;
-		default:
-			MISSING_CASE(port->port);
-			return false;
-		}
-	} else {
-		switch (port->port) {
-		case PORT_A:
-			return true;
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG_CPT;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG_CPT;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG_CPT;
-			break;
-		default:
-			MISSING_CASE(port->port);
-			return false;
-		}
+	switch (port->port) {
+	case PORT_A:
+		return true;
+	case PORT_B:
+		bit = SDE_PORTB_HOTPLUG;
+		break;
+	case PORT_C:
+		bit = SDE_PORTC_HOTPLUG;
+		break;
+	case PORT_D:
+		bit = SDE_PORTD_HOTPLUG;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
+	}
+
+	return I915_READ(SDEISR) & bit;
+}
+
+static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port)
+{
+	u32 bit;
+
+	switch (port->port) {
+	case PORT_A:
+		return true;
+	case PORT_B:
+		bit = SDE_PORTB_HOTPLUG_CPT;
+		break;
+	case PORT_C:
+		bit = SDE_PORTC_HOTPLUG_CPT;
+		break;
+	case PORT_D:
+		bit = SDE_PORTD_HOTPLUG_CPT;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
 	}
 
 	return I915_READ(SDEISR) & bit;
@@ -4567,8 +4573,10 @@ static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
 static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
 					 struct intel_digital_port *port)
 {
-	if (HAS_PCH_SPLIT(dev_priv))
+	if (HAS_PCH_IBX(dev_priv))
 		return ibx_digital_port_connected(dev_priv, port);
+	if (HAS_PCH_SPLIT(dev_priv))
+		return cpt_digital_port_connected(dev_priv, port);
 	else
 		return g4x_digital_port_connected(dev_priv, port);
 }
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 6/7] drm/i915: split g4x_digital_port_connected to g4x and vlv variants
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
                   ` (4 preceding siblings ...)
  2015-08-20  7:47 ` [PATCH v2 5/7] drm/i915: split ibx_digital_port_connected to ibx and cpt variants Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-20  7:47 ` [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform Jani Nikula
  2015-08-26  9:01 ` [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Daniel Vetter
  7 siblings, 0 replies; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Choose the right function at the intel_digital_port_connected level.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 70 +++++++++++++++++++++++------------------
 1 file changed, 39 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 204d4376be59..36291838409b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4526,38 +4526,44 @@ static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
 static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
 				       struct intel_digital_port *port)
 {
-	uint32_t bit;
+	u32 bit;
 
-	if (IS_VALLEYVIEW(dev_priv)) {
-		switch (port->port) {
-		case PORT_B:
-			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
-			break;
-		case PORT_C:
-			bit = PORTC_HOTPLUG_LIVE_STATUS_VLV;
-			break;
-		case PORT_D:
-			bit = PORTD_HOTPLUG_LIVE_STATUS_VLV;
-			break;
-		default:
-			MISSING_CASE(port->port);
-			return false;
-		}
-	} else {
-		switch (port->port) {
-		case PORT_B:
-			bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
-			break;
-		case PORT_C:
-			bit = PORTC_HOTPLUG_LIVE_STATUS_G4X;
-			break;
-		case PORT_D:
-			bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
-			break;
-		default:
-			MISSING_CASE(port->port);
-			return false;
-		}
+	switch (port->port) {
+	case PORT_B:
+		bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
+		break;
+	case PORT_C:
+		bit = PORTC_HOTPLUG_LIVE_STATUS_G4X;
+		break;
+	case PORT_D:
+		bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
+	}
+
+	return I915_READ(PORT_HOTPLUG_STAT) & bit;
+}
+
+static bool vlv_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port)
+{
+	u32 bit;
+
+	switch (port->port) {
+	case PORT_B:
+		bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
+		break;
+	case PORT_C:
+		bit = PORTC_HOTPLUG_LIVE_STATUS_VLV;
+		break;
+	case PORT_D:
+		bit = PORTD_HOTPLUG_LIVE_STATUS_VLV;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
 	}
 
 	return I915_READ(PORT_HOTPLUG_STAT) & bit;
@@ -4577,6 +4583,8 @@ static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
 		return ibx_digital_port_connected(dev_priv, port);
 	if (HAS_PCH_SPLIT(dev_priv))
 		return cpt_digital_port_connected(dev_priv, port);
+	else if (IS_VALLEYVIEW(dev_priv))
+		return vlv_digital_port_connected(dev_priv, port);
 	else
 		return g4x_digital_port_connected(dev_priv, port);
 }
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
                   ` (5 preceding siblings ...)
  2015-08-20  7:47 ` [PATCH v2 6/7] drm/i915: split g4x_digital_port_connected to g4x and vlv variants Jani Nikula
@ 2015-08-20  7:47 ` Jani Nikula
  2015-08-26  5:32   ` Jindal, Sonika
  2015-08-26  9:01 ` [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Daniel Vetter
  7 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-20  7:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

BXT platform uses live status bits from 0x44440 register to obtain DP
status on hotplug. The existing g4x_digital_port_connected() uses a
different register and hence misses DP hotplug events on BXT
platform. This patch fixes it by using the appropriate register(0x44440)
and live status bits(3:5).

Based on a patch by Durgadoss R <durgadoss.r@intel.com>, from whom the
commit message is shamelessly copy pasted.

Reported-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 36291838409b..508156cc750d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4569,6 +4569,29 @@ static bool vlv_digital_port_connected(struct drm_i915_private *dev_priv,
 	return I915_READ(PORT_HOTPLUG_STAT) & bit;
 }
 
+static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port)
+{
+	u32 bit;
+
+	switch (port->port) {
+	case PORT_A:
+		bit = BXT_DE_PORT_HP_DDIA;
+		break;
+	case PORT_B:
+		bit = BXT_DE_PORT_HP_DDIB;
+		break;
+	case PORT_C:
+		bit = BXT_DE_PORT_HP_DDIC;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
+	}
+
+	return I915_READ(GEN8_DE_PORT_ISR) & bit;
+}
+
 /*
  * intel_digital_port_connected - is the specified port connected?
  * @dev_priv: i915 private structure
@@ -4583,6 +4606,8 @@ static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
 		return ibx_digital_port_connected(dev_priv, port);
 	if (HAS_PCH_SPLIT(dev_priv))
 		return cpt_digital_port_connected(dev_priv, port);
+	else if (IS_BROXTON(dev_priv))
+		return bxt_digital_port_connected(dev_priv, port);
 	else if (IS_VALLEYVIEW(dev_priv))
 		return vlv_digital_port_connected(dev_priv, port);
 	else
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status
  2015-08-20  7:47 ` [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status Jani Nikula
@ 2015-08-20  8:17   ` R, Durgadoss
  0 siblings, 0 replies; 20+ messages in thread
From: R, Durgadoss @ 2015-08-20  8:17 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx



>-----Original Message-----
>From: Nikula, Jani
>Sent: Thursday, August 20, 2015 1:18 PM
>To: intel-gfx@lists.freedesktop.org
>Cc: R, Durgadoss; Ville Syrjälä; Nikula, Jani
>Subject: [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status
>
>We should not be hitting any of the default cases in
>g4x_digital_port_connected, so add MISSING_CASE annotation and return
>boolean status. The current behaviour is just cargo culting from the
>days of yonder when the display port support was added to i915.
>

Reviewed-by: Durgadoss R <durgadoss.r@intel.com>

Thanks,
Durga

>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>---
> drivers/gpu/drm/i915/intel_dp.c | 26 +++++++++++---------------
> 1 file changed, 11 insertions(+), 15 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>index 4aa3d664765b..d35dc0711f9b 100644
>--- a/drivers/gpu/drm/i915/intel_dp.c
>+++ b/drivers/gpu/drm/i915/intel_dp.c
>@@ -4518,14 +4518,14 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
> 	return I915_READ(SDEISR) & bit;
> }
>
>-static int g4x_digital_port_connected(struct drm_device *dev,
>-				       struct intel_digital_port *intel_dig_port)
>+static bool g4x_digital_port_connected(struct drm_device *dev,
>+				       struct intel_digital_port *port)
> {
> 	struct drm_i915_private *dev_priv = dev->dev_private;
> 	uint32_t bit;
>
> 	if (IS_VALLEYVIEW(dev)) {
>-		switch (intel_dig_port->port) {
>+		switch (port->port) {
> 		case PORT_B:
> 			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
> 			break;
>@@ -4536,10 +4536,11 @@ static int g4x_digital_port_connected(struct drm_device *dev,
> 			bit = PORTD_HOTPLUG_LIVE_STATUS_VLV;
> 			break;
> 		default:
>-			return -EINVAL;
>+			MISSING_CASE(port->port);
>+			return false;
> 		}
> 	} else {
>-		switch (intel_dig_port->port) {
>+		switch (port->port) {
> 		case PORT_B:
> 			bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
> 			break;
>@@ -4550,13 +4551,12 @@ static int g4x_digital_port_connected(struct drm_device *dev,
> 			bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
> 			break;
> 		default:
>-			return -EINVAL;
>+			MISSING_CASE(port->port);
>+			return false;
> 		}
> 	}
>
>-	if ((I915_READ(PORT_HOTPLUG_STAT) & bit) == 0)
>-		return 0;
>-	return 1;
>+	return I915_READ(PORT_HOTPLUG_STAT) & bit;
> }
>
> static enum drm_connector_status
>@@ -4577,7 +4577,6 @@ g4x_dp_detect(struct intel_dp *intel_dp)
> {
> 	struct drm_device *dev = intel_dp_to_dev(intel_dp);
> 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>-	int ret;
>
> 	/* Can't disconnect eDP, but you can close the lid... */
> 	if (is_edp(intel_dp)) {
>@@ -4589,10 +4588,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
> 		return status;
> 	}
>
>-	ret = g4x_digital_port_connected(dev, intel_dig_port);
>-	if (ret == -EINVAL)
>-		return connector_status_unknown;
>-	else if (ret == 0)
>+	if (!g4x_digital_port_connected(dev, intel_dig_port))
> 		return connector_status_disconnected;
>
> 	return intel_dp_detect_dpcd(intel_dp);
>@@ -5059,7 +5055,7 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
> 			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
> 				goto mst_fail;
> 		} else {
>-			if (g4x_digital_port_connected(dev, intel_dig_port) != 1)
>+			if (!g4x_digital_port_connected(dev, intel_dig_port))
> 				goto mst_fail;
> 		}
>
>--
>2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
  2015-08-20  7:47 ` [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected Jani Nikula
@ 2015-08-20 14:26   ` R, Durgadoss
  0 siblings, 0 replies; 20+ messages in thread
From: R, Durgadoss @ 2015-08-20 14:26 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx

>-----Original Message-----
>From: Nikula, Jani
>Sent: Thursday, August 20, 2015 1:18 PM
>To: intel-gfx@lists.freedesktop.org
>Cc: R, Durgadoss; Ville Syrjälä; Nikula, Jani
>Subject: [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
>
>With the case added for eDP on port A (always connected from this
>function's point of view), we should not be hitting any of the default
>cases in ibx_digital_port_connected, so add MISSING_CASE annotation.
>

For the entire v2 series,
Reviewed-by: Durgadoss R <durgadoss.r@intel.com>

Thanks,
Durga

>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>---
> drivers/gpu/drm/i915/intel_dp.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>index d35dc0711f9b..f08859471841 100644
>--- a/drivers/gpu/drm/i915/intel_dp.c
>+++ b/drivers/gpu/drm/i915/intel_dp.c
>@@ -4487,6 +4487,8 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>
> 	if (HAS_PCH_IBX(dev_priv->dev)) {
> 		switch (port->port) {
>+		case PORT_A:
>+			return true;
> 		case PORT_B:
> 			bit = SDE_PORTB_HOTPLUG;
> 			break;
>@@ -4497,10 +4499,13 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
> 			bit = SDE_PORTD_HOTPLUG;
> 			break;
> 		default:
>-			return true;
>+			MISSING_CASE(port->port);
>+			return false;
> 		}
> 	} else {
> 		switch (port->port) {
>+		case PORT_A:
>+			return true;
> 		case PORT_B:
> 			bit = SDE_PORTB_HOTPLUG_CPT;
> 			break;
>@@ -4511,7 +4516,8 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
> 			bit = SDE_PORTD_HOTPLUG_CPT;
> 			break;
> 		default:
>-			return true;
>+			MISSING_CASE(port->port);
>+			return false;
> 		}
> 	}
>
>--
>2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c
  2015-08-20  7:47 ` [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c Jani Nikula
@ 2015-08-26  5:04   ` Jindal, Sonika
  0 siblings, 0 replies; 20+ messages in thread
From: Jindal, Sonika @ 2015-08-26  5:04 UTC (permalink / raw)
  To: intel-gfx; +Cc: Nikula, Jani

Hmm, so we might need to make it global again, because we would want to check the live status for hdmi in the hdmi optimization series:
http://lists.freedesktop.org/archives/intel-gfx/2015-August/074306.html 
Maybe we can drop this patch alone?

Regards,
Sonika

-----Original Message-----
From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of Jani Nikula
Sent: Thursday, August 20, 2015 1:18 PM
To: intel-gfx@lists.freedesktop.org
Cc: Nikula, Jani
Subject: [Intel-gfx] [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c

The function can be made static there. No functional changes.

Reviewed-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 45 --------------------------
 drivers/gpu/drm/i915/intel_dp.c      | 61 +++++++++++++++++++++++++++++++-----
 drivers/gpu/drm/i915/intel_drv.h     |  2 --
 3 files changed, 53 insertions(+), 55 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f604ce1c528b..1a0670259cdf 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1061,51 +1061,6 @@ static void intel_wait_for_pipe_off(struct intel_crtc *crtc)
 	}
 }
 
-/*
- * ibx_digital_port_connected - is the specified port connected?
- * @dev_priv: i915 private structure
- * @port: the port to test
- *
- * Returns true if @port is connected, false otherwise.
- */
-bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
-				struct intel_digital_port *port)
-{
-	u32 bit;
-
-	if (HAS_PCH_IBX(dev_priv->dev)) {
-		switch (port->port) {
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG;
-			break;
-		default:
-			return true;
-		}
-	} else {
-		switch (port->port) {
-		case PORT_B:
-			bit = SDE_PORTB_HOTPLUG_CPT;
-			break;
-		case PORT_C:
-			bit = SDE_PORTC_HOTPLUG_CPT;
-			break;
-		case PORT_D:
-			bit = SDE_PORTD_HOTPLUG_CPT;
-			break;
-		default:
-			return true;
-		}
-	}
-
-	return I915_READ(SDEISR) & bit;
-}
-
 static const char *state_string(bool enabled)  {
 	return enabled ? "on" : "off";
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index d32ce4841654..4aa3d664765b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4473,17 +4473,49 @@ edp_detect(struct intel_dp *intel_dp)
 	return status;
 }
 
-static enum drm_connector_status
-ironlake_dp_detect(struct intel_dp *intel_dp)
+/*
+ * ibx_digital_port_connected - is the specified port connected?
+ * @dev_priv: i915 private structure
+ * @port: the port to test
+ *
+ * Returns true if @port is connected, false otherwise.
+ */
+static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port)
 {
-	struct drm_device *dev = intel_dp_to_dev(intel_dp);
-	struct drm_i915_private *dev_priv = dev->dev_private;
-	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+	u32 bit;
 
-	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
-		return connector_status_disconnected;
+	if (HAS_PCH_IBX(dev_priv->dev)) {
+		switch (port->port) {
+		case PORT_B:
+			bit = SDE_PORTB_HOTPLUG;
+			break;
+		case PORT_C:
+			bit = SDE_PORTC_HOTPLUG;
+			break;
+		case PORT_D:
+			bit = SDE_PORTD_HOTPLUG;
+			break;
+		default:
+			return true;
+		}
+	} else {
+		switch (port->port) {
+		case PORT_B:
+			bit = SDE_PORTB_HOTPLUG_CPT;
+			break;
+		case PORT_C:
+			bit = SDE_PORTC_HOTPLUG_CPT;
+			break;
+		case PORT_D:
+			bit = SDE_PORTD_HOTPLUG_CPT;
+			break;
+		default:
+			return true;
+		}
+	}
 
-	return intel_dp_detect_dpcd(intel_dp);
+	return I915_READ(SDEISR) & bit;
 }
 
 static int g4x_digital_port_connected(struct drm_device *dev, @@ -4528,6 +4560,19 @@ static int g4x_digital_port_connected(struct drm_device *dev,  }
 
 static enum drm_connector_status
+ironlake_dp_detect(struct intel_dp *intel_dp) {
+	struct drm_device *dev = intel_dp_to_dev(intel_dp);
+	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+
+	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
+		return connector_status_disconnected;
+
+	return intel_dp_detect_dpcd(intel_dp); }
+
+static enum drm_connector_status
 g4x_dp_detect(struct intel_dp *intel_dp)  {
 	struct drm_device *dev = intel_dp_to_dev(intel_dp); diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 81b7d77a3c8b..a9e6c2789ea9 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1001,8 +1001,6 @@ void intel_encoder_destroy(struct drm_encoder *encoder);  int intel_connector_init(struct intel_connector *);  struct intel_connector *intel_connector_alloc(void);  bool intel_connector_get_hw_state(struct intel_connector *connector); -bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
-				struct intel_digital_port *port);
 void intel_connector_attach_encoder(struct intel_connector *connector,
 				    struct intel_encoder *encoder);  struct drm_encoder *intel_best_encoder(struct drm_connector *connector);
--
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-20  7:47 ` [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function Jani Nikula
@ 2015-08-26  5:26   ` Jindal, Sonika
  2015-08-26 15:18   ` Sivakumar Thulasimani
  1 sibling, 0 replies; 20+ messages in thread
From: Jindal, Sonika @ 2015-08-26  5:26 UTC (permalink / raw)
  To: intel-gfx; +Cc: Nikula, Jani

So, looks like I can use intel_digital_port_connected for hdmi case.
In that case, we can make this function global and add a case for bxt as well.

Regards,
Sonika

-----Original Message-----
From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of Jani Nikula
Sent: Thursday, August 20, 2015 1:18 PM
To: intel-gfx@lists.freedesktop.org
Cc: Nikula, Jani
Subject: [Intel-gfx] [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function

Add a common intel_digital_port_connected() that splits out to functions for different platforms. No functional changes.

v2: make the function return a boolean

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f08859471841..f947951a01d4 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
 	return status;
 }
 
-/*
- * ibx_digital_port_connected - is the specified port connected?
- * @dev_priv: i915 private structure
- * @port: the port to test
- *
- * Returns true if @port is connected, false otherwise.
- */
 static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 				       struct intel_digital_port *port)  { @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
 	return I915_READ(SDEISR) & bit;
 }
 
-static bool g4x_digital_port_connected(struct drm_device *dev,
+static bool g4x_digital_port_connected(struct drm_i915_private 
+*dev_priv,
 				       struct intel_digital_port *port)  {
-	struct drm_i915_private *dev_priv = dev->dev_private;
 	uint32_t bit;
 
-	if (IS_VALLEYVIEW(dev)) {
+	if (IS_VALLEYVIEW(dev_priv)) {
 		switch (port->port) {
 		case PORT_B:
 			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV; @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
 	return I915_READ(PORT_HOTPLUG_STAT) & bit;  }
 
+/*
+ * intel_digital_port_connected - is the specified port connected?
+ * @dev_priv: i915 private structure
+ * @port: the port to test
+ *
+ * Return %true if @port is connected, %false otherwise.
+ */
+static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
+					 struct intel_digital_port *port)
+{
+	if (HAS_PCH_SPLIT(dev_priv))
+		return ibx_digital_port_connected(dev_priv, port);
+	else
+		return g4x_digital_port_connected(dev_priv, port); }
+
 static enum drm_connector_status
 ironlake_dp_detect(struct intel_dp *intel_dp)  { @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 
-	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
+	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
 		return connector_status_disconnected;
 
 	return intel_dp_detect_dpcd(intel_dp); @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
 		return status;
 	}
 
-	if (!g4x_digital_port_connected(dev, intel_dig_port))
+	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
 		return connector_status_disconnected;
 
 	return intel_dp_detect_dpcd(intel_dp); @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 		/* indicate that we need to restart link training */
 		intel_dp->train_set_valid = false;
 
-		if (HAS_PCH_SPLIT(dev)) {
-			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
-				goto mst_fail;
-		} else {
-			if (!g4x_digital_port_connected(dev, intel_dig_port))
-				goto mst_fail;
-		}
+		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
+			goto mst_fail;
 
 		if (!intel_dp_get_dpcd(intel_dp)) {
 			goto mst_fail;
--
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform
  2015-08-20  7:47 ` [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform Jani Nikula
@ 2015-08-26  5:32   ` Jindal, Sonika
  2015-08-26  6:35     ` Jani Nikula
  0 siblings, 1 reply; 20+ messages in thread
From: Jindal, Sonika @ 2015-08-26  5:32 UTC (permalink / raw)
  To: intel-gfx; +Cc: Nikula, Jani

Oh, bxt is here..:) Spoke too soon..
But will need to make it based upon intel_encoder->hpd_pin because of the A0/A1 WA for BXT.
Also, we need to make intel_digital_port_connected global to be accessed from intel_hdmi.c

Regards,
Sonika

-----Original Message-----
From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of Jani Nikula
Sent: Thursday, August 20, 2015 1:18 PM
To: intel-gfx@lists.freedesktop.org
Cc: Nikula, Jani
Subject: [Intel-gfx] [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform

BXT platform uses live status bits from 0x44440 register to obtain DP status on hotplug. The existing g4x_digital_port_connected() uses a different register and hence misses DP hotplug events on BXT platform. This patch fixes it by using the appropriate register(0x44440) and live status bits(3:5).

Based on a patch by Durgadoss R <durgadoss.r@intel.com>, from whom the commit message is shamelessly copy pasted.

Reported-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 36291838409b..508156cc750d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4569,6 +4569,29 @@ static bool vlv_digital_port_connected(struct drm_i915_private *dev_priv,
 	return I915_READ(PORT_HOTPLUG_STAT) & bit;  }
 
+static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
+				       struct intel_digital_port *port) {
+	u32 bit;
+
+	switch (port->port) {
+	case PORT_A:
+		bit = BXT_DE_PORT_HP_DDIA;
+		break;
+	case PORT_B:
+		bit = BXT_DE_PORT_HP_DDIB;
+		break;
+	case PORT_C:
+		bit = BXT_DE_PORT_HP_DDIC;
+		break;
+	default:
+		MISSING_CASE(port->port);
+		return false;
+	}
+
+	return I915_READ(GEN8_DE_PORT_ISR) & bit; }
+
 /*
  * intel_digital_port_connected - is the specified port connected?
  * @dev_priv: i915 private structure
@@ -4583,6 +4606,8 @@ static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
 		return ibx_digital_port_connected(dev_priv, port);
 	if (HAS_PCH_SPLIT(dev_priv))
 		return cpt_digital_port_connected(dev_priv, port);
+	else if (IS_BROXTON(dev_priv))
+		return bxt_digital_port_connected(dev_priv, port);
 	else if (IS_VALLEYVIEW(dev_priv))
 		return vlv_digital_port_connected(dev_priv, port);
 	else
--
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform
  2015-08-26  5:32   ` Jindal, Sonika
@ 2015-08-26  6:35     ` Jani Nikula
  0 siblings, 0 replies; 20+ messages in thread
From: Jani Nikula @ 2015-08-26  6:35 UTC (permalink / raw)
  To: Jindal, Sonika, intel-gfx

On Wed, 26 Aug 2015, "Jindal, Sonika" <sonika.jindal@intel.com> wrote:
> Oh, bxt is here..:) Spoke too soon..
> But will need to make it based upon intel_encoder->hpd_pin because of the A0/A1 WA for BXT.

That should anyway be a separate patch changing the port->port to a port
acquired from pin_to_port. We'll take it out after we don't need to
support A0/A1. Also, that should have a comment there.

> Also, we need to make intel_digital_port_connected global to be accessed from intel_hdmi.c

Trivial addition in your series.

BR,
Jani.

>
> Regards,
> Sonika
>
> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of Jani Nikula
> Sent: Thursday, August 20, 2015 1:18 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Nikula, Jani
> Subject: [Intel-gfx] [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform
>
> BXT platform uses live status bits from 0x44440 register to obtain DP status on hotplug. The existing g4x_digital_port_connected() uses a different register and hence misses DP hotplug events on BXT platform. This patch fixes it by using the appropriate register(0x44440) and live status bits(3:5).
>
> Based on a patch by Durgadoss R <durgadoss.r@intel.com>, from whom the commit message is shamelessly copy pasted.
>
> Reported-by: Durgadoss R <durgadoss.r@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 36291838409b..508156cc750d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -4569,6 +4569,29 @@ static bool vlv_digital_port_connected(struct drm_i915_private *dev_priv,
>  	return I915_READ(PORT_HOTPLUG_STAT) & bit;  }
>  
> +static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
> +				       struct intel_digital_port *port) {
> +	u32 bit;
> +
> +	switch (port->port) {
> +	case PORT_A:
> +		bit = BXT_DE_PORT_HP_DDIA;
> +		break;
> +	case PORT_B:
> +		bit = BXT_DE_PORT_HP_DDIB;
> +		break;
> +	case PORT_C:
> +		bit = BXT_DE_PORT_HP_DDIC;
> +		break;
> +	default:
> +		MISSING_CASE(port->port);
> +		return false;
> +	}
> +
> +	return I915_READ(GEN8_DE_PORT_ISR) & bit; }
> +
>  /*
>   * intel_digital_port_connected - is the specified port connected?
>   * @dev_priv: i915 private structure
> @@ -4583,6 +4606,8 @@ static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
>  		return ibx_digital_port_connected(dev_priv, port);
>  	if (HAS_PCH_SPLIT(dev_priv))
>  		return cpt_digital_port_connected(dev_priv, port);
> +	else if (IS_BROXTON(dev_priv))
> +		return bxt_digital_port_connected(dev_priv, port);
>  	else if (IS_VALLEYVIEW(dev_priv))
>  		return vlv_digital_port_connected(dev_priv, port);
>  	else
> --
> 2.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected
  2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
                   ` (6 preceding siblings ...)
  2015-08-20  7:47 ` [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform Jani Nikula
@ 2015-08-26  9:01 ` Daniel Vetter
  7 siblings, 0 replies; 20+ messages in thread
From: Daniel Vetter @ 2015-08-26  9:01 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Aug 20, 2015 at 10:47:35AM +0300, Jani Nikula wrote:
> v2 with missing cases handled and intel_digital_port_connected return
> value changed to bool. Mostly it's just the addition of patches 2 and 3,
> and rebase of the rest.

Pulled in entire series, thanks.
-Daniel

> 
> BR,
> Jani.
> 
> 
> Jani Nikula (7):
>   drm/i915: move ibx_digital_port_connected to intel_dp.c
>   drm/i915: make g4x_digital_port_connected return boolean status
>   drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
>   drm/i915: add common intel_digital_port_connected function
>   drm/i915: split ibx_digital_port_connected to ibx and cpt variants
>   drm/i915: split g4x_digital_port_connected to g4x and vlv variants
>   drm/i915/bxt: Use correct live status register for BXT platform
> 
>  drivers/gpu/drm/i915/intel_display.c |  45 --------
>  drivers/gpu/drm/i915/intel_dp.c      | 199 +++++++++++++++++++++++++----------
>  drivers/gpu/drm/i915/intel_drv.h     |   2 -
>  3 files changed, 145 insertions(+), 101 deletions(-)
> 
> -- 
> 2.1.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-20  7:47 ` [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function Jani Nikula
  2015-08-26  5:26   ` Jindal, Sonika
@ 2015-08-26 15:18   ` Sivakumar Thulasimani
  2015-08-27  7:00     ` Jani Nikula
  1 sibling, 1 reply; 20+ messages in thread
From: Sivakumar Thulasimani @ 2015-08-26 15:18 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx



On 8/20/2015 1:17 PM, Jani Nikula wrote:
> Add a common intel_digital_port_connected() that splits out to functions
> for different platforms. No functional changes.
>
> v2: make the function return a boolean
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
>   1 file changed, 22 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index f08859471841..f947951a01d4 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
>   	return status;
>   }
>   
> -/*
> - * ibx_digital_port_connected - is the specified port connected?
> - * @dev_priv: i915 private structure
> - * @port: the port to test
> - *
> - * Returns true if @port is connected, false otherwise.
> - */
>   static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>   				       struct intel_digital_port *port)
>   {
> @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>   	return I915_READ(SDEISR) & bit;
>   }
>   
> -static bool g4x_digital_port_connected(struct drm_device *dev,
> +static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
>   				       struct intel_digital_port *port)
>   {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>   	uint32_t bit;
>   
> -	if (IS_VALLEYVIEW(dev)) {
> +	if (IS_VALLEYVIEW(dev_priv)) {
this might not work :(.  just noted this as part of another review. 
please fix this since
it is merged.
>   		switch (port->port) {
>   		case PORT_B:
>   			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
> @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
>   	return I915_READ(PORT_HOTPLUG_STAT) & bit;
>   }
>   
> +/*
> + * intel_digital_port_connected - is the specified port connected?
> + * @dev_priv: i915 private structure
> + * @port: the port to test
> + *
> + * Return %true if @port is connected, %false otherwise.
> + */
> +static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
> +					 struct intel_digital_port *port)
> +{
> +	if (HAS_PCH_SPLIT(dev_priv))
> +		return ibx_digital_port_connected(dev_priv, port);
> +	else
> +		return g4x_digital_port_connected(dev_priv, port);
> +}
> +
>   static enum drm_connector_status
>   ironlake_dp_detect(struct intel_dp *intel_dp)
>   {
> @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>   
> -	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
> +	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>   		return connector_status_disconnected;
>   
>   	return intel_dp_detect_dpcd(intel_dp);
> @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
>   		return status;
>   	}
>   
> -	if (!g4x_digital_port_connected(dev, intel_dig_port))
> +	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
>   		return connector_status_disconnected;
>   
>   	return intel_dp_detect_dpcd(intel_dp);
> @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>   		/* indicate that we need to restart link training */
>   		intel_dp->train_set_valid = false;
>   
> -		if (HAS_PCH_SPLIT(dev)) {
> -			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
> -				goto mst_fail;
> -		} else {
> -			if (!g4x_digital_port_connected(dev, intel_dig_port))
> -				goto mst_fail;
> -		}
> +		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
> +			goto mst_fail;
>   
>   		if (!intel_dp_get_dpcd(intel_dp)) {
>   			goto mst_fail;

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-26 15:18   ` Sivakumar Thulasimani
@ 2015-08-27  7:00     ` Jani Nikula
  2015-08-27  8:01       ` Sivakumar Thulasimani
  0 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-27  7:00 UTC (permalink / raw)
  To: Sivakumar Thulasimani, intel-gfx

On Wed, 26 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
> On 8/20/2015 1:17 PM, Jani Nikula wrote:
>> Add a common intel_digital_port_connected() that splits out to functions
>> for different platforms. No functional changes.
>>
>> v2: make the function return a boolean
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
>>   1 file changed, 22 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index f08859471841..f947951a01d4 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
>>   	return status;
>>   }
>>   
>> -/*
>> - * ibx_digital_port_connected - is the specified port connected?
>> - * @dev_priv: i915 private structure
>> - * @port: the port to test
>> - *
>> - * Returns true if @port is connected, false otherwise.
>> - */
>>   static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>   				       struct intel_digital_port *port)
>>   {
>> @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>   	return I915_READ(SDEISR) & bit;
>>   }
>>   
>> -static bool g4x_digital_port_connected(struct drm_device *dev,
>> +static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
>>   				       struct intel_digital_port *port)
>>   {
>> -	struct drm_i915_private *dev_priv = dev->dev_private;
>>   	uint32_t bit;
>>   
>> -	if (IS_VALLEYVIEW(dev)) {
>> +	if (IS_VALLEYVIEW(dev_priv)) {
> this might not work :(.  just noted this as part of another review. 
> please fix this since
> it is merged.

Sorry, what might not work?

Jani.


>>   		switch (port->port) {
>>   		case PORT_B:
>>   			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
>> @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
>>   	return I915_READ(PORT_HOTPLUG_STAT) & bit;
>>   }
>>   
>> +/*
>> + * intel_digital_port_connected - is the specified port connected?
>> + * @dev_priv: i915 private structure
>> + * @port: the port to test
>> + *
>> + * Return %true if @port is connected, %false otherwise.
>> + */
>> +static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
>> +					 struct intel_digital_port *port)
>> +{
>> +	if (HAS_PCH_SPLIT(dev_priv))
>> +		return ibx_digital_port_connected(dev_priv, port);
>> +	else
>> +		return g4x_digital_port_connected(dev_priv, port);
>> +}
>> +
>>   static enum drm_connector_status
>>   ironlake_dp_detect(struct intel_dp *intel_dp)
>>   {
>> @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
>>   	struct drm_i915_private *dev_priv = dev->dev_private;
>>   	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>>   
>> -	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>> +	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>   		return connector_status_disconnected;
>>   
>>   	return intel_dp_detect_dpcd(intel_dp);
>> @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
>>   		return status;
>>   	}
>>   
>> -	if (!g4x_digital_port_connected(dev, intel_dig_port))
>> +	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
>>   		return connector_status_disconnected;
>>   
>>   	return intel_dp_detect_dpcd(intel_dp);
>> @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>>   		/* indicate that we need to restart link training */
>>   		intel_dp->train_set_valid = false;
>>   
>> -		if (HAS_PCH_SPLIT(dev)) {
>> -			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>> -				goto mst_fail;
>> -		} else {
>> -			if (!g4x_digital_port_connected(dev, intel_dig_port))
>> -				goto mst_fail;
>> -		}
>> +		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>> +			goto mst_fail;
>>   
>>   		if (!intel_dp_get_dpcd(intel_dp)) {
>>   			goto mst_fail;
>
> -- 
> regards,
> Sivakumar
>

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-27  7:00     ` Jani Nikula
@ 2015-08-27  8:01       ` Sivakumar Thulasimani
  2015-08-27  8:08         ` Jani Nikula
  0 siblings, 1 reply; 20+ messages in thread
From: Sivakumar Thulasimani @ 2015-08-27  8:01 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx



On 8/27/2015 12:30 PM, Jani Nikula wrote:
> On Wed, 26 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
>> On 8/20/2015 1:17 PM, Jani Nikula wrote:
>>> Add a common intel_digital_port_connected() that splits out to functions
>>> for different platforms. No functional changes.
>>>
>>> v2: make the function return a boolean
>>>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
>>>    1 file changed, 22 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>>> index f08859471841..f947951a01d4 100644
>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>> @@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
>>>    	return status;
>>>    }
>>>    
>>> -/*
>>> - * ibx_digital_port_connected - is the specified port connected?
>>> - * @dev_priv: i915 private structure
>>> - * @port: the port to test
>>> - *
>>> - * Returns true if @port is connected, false otherwise.
>>> - */
>>>    static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>    				       struct intel_digital_port *port)
>>>    {
>>> @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>    	return I915_READ(SDEISR) & bit;
>>>    }
>>>    
>>> -static bool g4x_digital_port_connected(struct drm_device *dev,
>>> +static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
>>>    				       struct intel_digital_port *port)
>>>    {
>>> -	struct drm_i915_private *dev_priv = dev->dev_private;
>>>    	uint32_t bit;
>>>    
>>> -	if (IS_VALLEYVIEW(dev)) {
>>> +	if (IS_VALLEYVIEW(dev_priv)) {
>> this might not work :(.  just noted this as part of another review.
>> please fix this since
>> it is merged.
> Sorry, what might not work?
>
> Jani.

-	if (IS_VALLEYVIEW(dev)) {
+	if (IS_VALLEYVIEW(dev_priv)) { <----- dev_priv is used instead of dev
should be IS_VALLEYVIEW(dev_priv->dev)

>
>>>    		switch (port->port) {
>>>    		case PORT_B:
>>>    			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
>>> @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
>>>    	return I915_READ(PORT_HOTPLUG_STAT) & bit;
>>>    }
>>>    
>>> +/*
>>> + * intel_digital_port_connected - is the specified port connected?
>>> + * @dev_priv: i915 private structure
>>> + * @port: the port to test
>>> + *
>>> + * Return %true if @port is connected, %false otherwise.
>>> + */
>>> +static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
>>> +					 struct intel_digital_port *port)
>>> +{
>>> +	if (HAS_PCH_SPLIT(dev_priv))
>>> +		return ibx_digital_port_connected(dev_priv, port);
>>> +	else
>>> +		return g4x_digital_port_connected(dev_priv, port);
>>> +}
>>> +
>>>    static enum drm_connector_status
>>>    ironlake_dp_detect(struct intel_dp *intel_dp)
>>>    {
>>> @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
>>>    	struct drm_i915_private *dev_priv = dev->dev_private;
>>>    	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>>>    
>>> -	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>> +	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>>    		return connector_status_disconnected;
>>>    
>>>    	return intel_dp_detect_dpcd(intel_dp);
>>> @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
>>>    		return status;
>>>    	}
>>>    
>>> -	if (!g4x_digital_port_connected(dev, intel_dig_port))
>>> +	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
>>>    		return connector_status_disconnected;
>>>    
>>>    	return intel_dp_detect_dpcd(intel_dp);
>>> @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>>>    		/* indicate that we need to restart link training */
>>>    		intel_dp->train_set_valid = false;
>>>    
>>> -		if (HAS_PCH_SPLIT(dev)) {
>>> -			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>> -				goto mst_fail;
>>> -		} else {
>>> -			if (!g4x_digital_port_connected(dev, intel_dig_port))
>>> -				goto mst_fail;
>>> -		}
>>> +		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>> +			goto mst_fail;
>>>    
>>>    		if (!intel_dp_get_dpcd(intel_dp)) {
>>>    			goto mst_fail;
>> -- 
>> regards,
>> Sivakumar
>>

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-27  8:01       ` Sivakumar Thulasimani
@ 2015-08-27  8:08         ` Jani Nikula
  2015-08-27  8:12           ` Sivakumar Thulasimani
  0 siblings, 1 reply; 20+ messages in thread
From: Jani Nikula @ 2015-08-27  8:08 UTC (permalink / raw)
  To: Sivakumar Thulasimani, intel-gfx

On Thu, 27 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
> On 8/27/2015 12:30 PM, Jani Nikula wrote:
>> On Wed, 26 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
>>> On 8/20/2015 1:17 PM, Jani Nikula wrote:
>>>> Add a common intel_digital_port_connected() that splits out to functions
>>>> for different platforms. No functional changes.
>>>>
>>>> v2: make the function return a boolean
>>>>
>>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>>> ---
>>>>    drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
>>>>    1 file changed, 22 insertions(+), 19 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>>>> index f08859471841..f947951a01d4 100644
>>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>>> @@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
>>>>    	return status;
>>>>    }
>>>>    
>>>> -/*
>>>> - * ibx_digital_port_connected - is the specified port connected?
>>>> - * @dev_priv: i915 private structure
>>>> - * @port: the port to test
>>>> - *
>>>> - * Returns true if @port is connected, false otherwise.
>>>> - */
>>>>    static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>    				       struct intel_digital_port *port)
>>>>    {
>>>> @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>    	return I915_READ(SDEISR) & bit;
>>>>    }
>>>>    
>>>> -static bool g4x_digital_port_connected(struct drm_device *dev,
>>>> +static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>    				       struct intel_digital_port *port)
>>>>    {
>>>> -	struct drm_i915_private *dev_priv = dev->dev_private;
>>>>    	uint32_t bit;
>>>>    
>>>> -	if (IS_VALLEYVIEW(dev)) {
>>>> +	if (IS_VALLEYVIEW(dev_priv)) {
>>> this might not work :(.  just noted this as part of another review.
>>> please fix this since
>>> it is merged.
>> Sorry, what might not work?
>>
>> Jani.
>
> -	if (IS_VALLEYVIEW(dev)) {
> +	if (IS_VALLEYVIEW(dev_priv)) { <----- dev_priv is used instead of dev
> should be IS_VALLEYVIEW(dev_priv->dev)

Ah, that may be confusing. We're transitioning towards preferring
dev_priv, and instead of switching everything at once (which would not
work) Chris put together some magic to have these macros accept either
drm_i915_private or drm_device pointer. See __I915__ in i915_drv.h.

BR,
Jani.

>
>>
>>>>    		switch (port->port) {
>>>>    		case PORT_B:
>>>>    			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
>>>> @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
>>>>    	return I915_READ(PORT_HOTPLUG_STAT) & bit;
>>>>    }
>>>>    
>>>> +/*
>>>> + * intel_digital_port_connected - is the specified port connected?
>>>> + * @dev_priv: i915 private structure
>>>> + * @port: the port to test
>>>> + *
>>>> + * Return %true if @port is connected, %false otherwise.
>>>> + */
>>>> +static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
>>>> +					 struct intel_digital_port *port)
>>>> +{
>>>> +	if (HAS_PCH_SPLIT(dev_priv))
>>>> +		return ibx_digital_port_connected(dev_priv, port);
>>>> +	else
>>>> +		return g4x_digital_port_connected(dev_priv, port);
>>>> +}
>>>> +
>>>>    static enum drm_connector_status
>>>>    ironlake_dp_detect(struct intel_dp *intel_dp)
>>>>    {
>>>> @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
>>>>    	struct drm_i915_private *dev_priv = dev->dev_private;
>>>>    	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>>>>    
>>>> -	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>>> +	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>>>    		return connector_status_disconnected;
>>>>    
>>>>    	return intel_dp_detect_dpcd(intel_dp);
>>>> @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
>>>>    		return status;
>>>>    	}
>>>>    
>>>> -	if (!g4x_digital_port_connected(dev, intel_dig_port))
>>>> +	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
>>>>    		return connector_status_disconnected;
>>>>    
>>>>    	return intel_dp_detect_dpcd(intel_dp);
>>>> @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>>>>    		/* indicate that we need to restart link training */
>>>>    		intel_dp->train_set_valid = false;
>>>>    
>>>> -		if (HAS_PCH_SPLIT(dev)) {
>>>> -			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>>> -				goto mst_fail;
>>>> -		} else {
>>>> -			if (!g4x_digital_port_connected(dev, intel_dig_port))
>>>> -				goto mst_fail;
>>>> -		}
>>>> +		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>>> +			goto mst_fail;
>>>>    
>>>>    		if (!intel_dp_get_dpcd(intel_dp)) {
>>>>    			goto mst_fail;
>>> -- 
>>> regards,
>>> Sivakumar
>>>
>
> -- 
> regards,
> Sivakumar
>

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function
  2015-08-27  8:08         ` Jani Nikula
@ 2015-08-27  8:12           ` Sivakumar Thulasimani
  0 siblings, 0 replies; 20+ messages in thread
From: Sivakumar Thulasimani @ 2015-08-27  8:12 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx



On 8/27/2015 1:38 PM, Jani Nikula wrote:
> On Thu, 27 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
>> On 8/27/2015 12:30 PM, Jani Nikula wrote:
>>> On Wed, 26 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
>>>> On 8/20/2015 1:17 PM, Jani Nikula wrote:
>>>>> Add a common intel_digital_port_connected() that splits out to functions
>>>>> for different platforms. No functional changes.
>>>>>
>>>>> v2: make the function return a boolean
>>>>>
>>>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>>>> ---
>>>>>     drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++++++++++-------------------
>>>>>     1 file changed, 22 insertions(+), 19 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>>>>> index f08859471841..f947951a01d4 100644
>>>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>>>> @@ -4473,13 +4473,6 @@ edp_detect(struct intel_dp *intel_dp)
>>>>>     	return status;
>>>>>     }
>>>>>     
>>>>> -/*
>>>>> - * ibx_digital_port_connected - is the specified port connected?
>>>>> - * @dev_priv: i915 private structure
>>>>> - * @port: the port to test
>>>>> - *
>>>>> - * Returns true if @port is connected, false otherwise.
>>>>> - */
>>>>>     static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>>     				       struct intel_digital_port *port)
>>>>>     {
>>>>> @@ -4524,13 +4517,12 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>>     	return I915_READ(SDEISR) & bit;
>>>>>     }
>>>>>     
>>>>> -static bool g4x_digital_port_connected(struct drm_device *dev,
>>>>> +static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>>     				       struct intel_digital_port *port)
>>>>>     {
>>>>> -	struct drm_i915_private *dev_priv = dev->dev_private;
>>>>>     	uint32_t bit;
>>>>>     
>>>>> -	if (IS_VALLEYVIEW(dev)) {
>>>>> +	if (IS_VALLEYVIEW(dev_priv)) {
>>>> this might not work :(.  just noted this as part of another review.
>>>> please fix this since
>>>> it is merged.
>>> Sorry, what might not work?
>>>
>>> Jani.
>> -	if (IS_VALLEYVIEW(dev)) {
>> +	if (IS_VALLEYVIEW(dev_priv)) { <----- dev_priv is used instead of dev
>> should be IS_VALLEYVIEW(dev_priv->dev)
> Ah, that may be confusing. We're transitioning towards preferring
> dev_priv, and instead of switching everything at once (which would not
> work) Chris put together some magic to have these macros accept either
> drm_i915_private or drm_device pointer. See __I915__ in i915_drv.h.
>
> BR,
> Jani.
sorry, missed that part :(.
>
>>>>>     		switch (port->port) {
>>>>>     		case PORT_B:
>>>>>     			bit = PORTB_HOTPLUG_LIVE_STATUS_VLV;
>>>>> @@ -4565,6 +4557,22 @@ static bool g4x_digital_port_connected(struct drm_device *dev,
>>>>>     	return I915_READ(PORT_HOTPLUG_STAT) & bit;
>>>>>     }
>>>>>     
>>>>> +/*
>>>>> + * intel_digital_port_connected - is the specified port connected?
>>>>> + * @dev_priv: i915 private structure
>>>>> + * @port: the port to test
>>>>> + *
>>>>> + * Return %true if @port is connected, %false otherwise.
>>>>> + */
>>>>> +static bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
>>>>> +					 struct intel_digital_port *port)
>>>>> +{
>>>>> +	if (HAS_PCH_SPLIT(dev_priv))
>>>>> +		return ibx_digital_port_connected(dev_priv, port);
>>>>> +	else
>>>>> +		return g4x_digital_port_connected(dev_priv, port);
>>>>> +}
>>>>> +
>>>>>     static enum drm_connector_status
>>>>>     ironlake_dp_detect(struct intel_dp *intel_dp)
>>>>>     {
>>>>> @@ -4572,7 +4580,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
>>>>>     	struct drm_i915_private *dev_priv = dev->dev_private;
>>>>>     	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>>>>>     
>>>>> -	if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>>>> +	if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>>>>     		return connector_status_disconnected;
>>>>>     
>>>>>     	return intel_dp_detect_dpcd(intel_dp);
>>>>> @@ -4594,7 +4602,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
>>>>>     		return status;
>>>>>     	}
>>>>>     
>>>>> -	if (!g4x_digital_port_connected(dev, intel_dig_port))
>>>>> +	if (!intel_digital_port_connected(dev->dev_private, intel_dig_port))
>>>>>     		return connector_status_disconnected;
>>>>>     
>>>>>     	return intel_dp_detect_dpcd(intel_dp);
>>>>> @@ -5057,13 +5065,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>>>>>     		/* indicate that we need to restart link training */
>>>>>     		intel_dp->train_set_valid = false;
>>>>>     
>>>>> -		if (HAS_PCH_SPLIT(dev)) {
>>>>> -			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
>>>>> -				goto mst_fail;
>>>>> -		} else {
>>>>> -			if (!g4x_digital_port_connected(dev, intel_dig_port))
>>>>> -				goto mst_fail;
>>>>> -		}
>>>>> +		if (!intel_digital_port_connected(dev_priv, intel_dig_port))
>>>>> +			goto mst_fail;
>>>>>     
>>>>>     		if (!intel_dp_get_dpcd(intel_dp)) {
>>>>>     			goto mst_fail;
>>>> -- 
>>>> regards,
>>>> Sivakumar
>>>>
>> -- 
>> regards,
>> Sivakumar
>>

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-08-27  8:12 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-20  7:47 [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Jani Nikula
2015-08-20  7:47 ` [PATCH v2 1/7] drm/i915: move ibx_digital_port_connected to intel_dp.c Jani Nikula
2015-08-26  5:04   ` Jindal, Sonika
2015-08-20  7:47 ` [PATCH v2 2/7] drm/i915: make g4x_digital_port_connected return boolean status Jani Nikula
2015-08-20  8:17   ` R, Durgadoss
2015-08-20  7:47 ` [PATCH v2 3/7] drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected Jani Nikula
2015-08-20 14:26   ` R, Durgadoss
2015-08-20  7:47 ` [PATCH v2 4/7] drm/i915: add common intel_digital_port_connected function Jani Nikula
2015-08-26  5:26   ` Jindal, Sonika
2015-08-26 15:18   ` Sivakumar Thulasimani
2015-08-27  7:00     ` Jani Nikula
2015-08-27  8:01       ` Sivakumar Thulasimani
2015-08-27  8:08         ` Jani Nikula
2015-08-27  8:12           ` Sivakumar Thulasimani
2015-08-20  7:47 ` [PATCH v2 5/7] drm/i915: split ibx_digital_port_connected to ibx and cpt variants Jani Nikula
2015-08-20  7:47 ` [PATCH v2 6/7] drm/i915: split g4x_digital_port_connected to g4x and vlv variants Jani Nikula
2015-08-20  7:47 ` [PATCH v2 7/7] drm/i915/bxt: Use correct live status register for BXT platform Jani Nikula
2015-08-26  5:32   ` Jindal, Sonika
2015-08-26  6:35     ` Jani Nikula
2015-08-26  9:01 ` [PATCH v2 0/7] drm/i915: clean up *_digital_port_connected Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.