All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Pavel Machek <pavel@ucw.cz>, Martin Steigerwald <martin@lichtvoll.de>
Cc: kernel list <linux-kernel@vger.kernel.org>,
	daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: 4.8-rc1: it is now common that machine needs re-run of xrandr after resume
Date: Wed, 14 Sep 2016 14:14:35 +0300	[thread overview]
Message-ID: <87h99iraw4.fsf@intel.com> (raw)
In-Reply-To: <87h99isuv2.fsf@intel.com>

On Wed, 14 Sep 2016, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Wed, 14 Sep 2016, Pavel Machek <pavel@ucw.cz> wrote:
>> For the "sometimes need xrandr after resume": I don't think I can
>> bisect that. It only happens sometimes :-(. But there's something
>> helpful in the logs:
>
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] i915 0000:00:02.0: HDMI-A-1: EDID block 0 invalid.
>
> Pavel, Martin, do you always see this when the display fails to resume?
> Is it HDMI/DVI for both of you?

Please try this patch, backported from our next.

BR,
Jani.

>From c5cec7b2df1a518a632998aecd6f73f3fefe59ec Mon Sep 17 00:00:00 2001
From: David Weinehall <david.weinehall@linux.intel.com>
Date: Wed, 17 Aug 2016 15:47:48 +0300
Subject: [PATCH] Revert "drm/i915: Check live status before reading edid"
Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
Cc: Jani Nikula <jani.nikula@intel.com>

This reverts commit 237ed86c693d8a8e4db476976aeb30df4deac74b.

Our current implementation of live status check (repeat 9 times
with 10ms delays between each attempt as a workaround for
buggy displays) imposes a rather serious penalty, time wise,
on intel_hdmi_detect().  Since we we already skip live status
checks on platforms before gen 7, and since we seem to have
coped quite well before the live status check was introduced
for newer platforms too, the previous behaviour is probably
preferable, at least unless someone can point to a use-case
that the live status check improves (apart from "Bspec says so".)

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid")
Fixes: f8d03ea0053b ("drm/i915: increase the tries for HDMI hotplug live status checking")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97139
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94014
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org # v4.4+
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160817124748.31208-1-david.weinehall@linux.intel.com

Conflicts:
	drivers/gpu/drm/i915/intel_drv.h
---
 drivers/gpu/drm/i915/intel_dp.c   |  2 +-
 drivers/gpu/drm/i915/intel_drv.h  |  2 --
 drivers/gpu/drm/i915/intel_hdmi.c | 43 +++++++++------------------------------
 3 files changed, 11 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 21b04c3eda41..81c9b89b7a38 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4148,7 +4148,7 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
  *
  * Return %true if @port is connected, %false otherwise.
  */
-bool intel_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_IBX(dev_priv))
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index ff399b9a5c1f..2c74213a8467 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1387,8 +1387,6 @@ void intel_edp_drrs_disable(struct intel_dp *intel_dp);
 void intel_edp_drrs_invalidate(struct drm_device *dev,
 		unsigned frontbuffer_bits);
 void intel_edp_drrs_flush(struct drm_device *dev, unsigned frontbuffer_bits);
-bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
-					 struct intel_digital_port *port);
 
 void
 intel_dp_program_link_training_pattern(struct intel_dp *intel_dp,
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 4df9f384910c..c3aa9e670d15 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1422,24 +1422,22 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid)
 }
 
 static bool
-intel_hdmi_set_edid(struct drm_connector *connector, bool force)
+intel_hdmi_set_edid(struct drm_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
-	struct edid *edid = NULL;
+	struct edid *edid;
 	bool connected = false;
 
-	if (force) {
-		intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
+	intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-		edid = drm_get_edid(connector,
-				    intel_gmbus_get_adapter(dev_priv,
-				    intel_hdmi->ddc_bus));
+	edid = drm_get_edid(connector,
+			    intel_gmbus_get_adapter(dev_priv,
+			    intel_hdmi->ddc_bus));
 
-		intel_hdmi_dp_dual_mode_detect(connector, edid != NULL);
+	intel_hdmi_dp_dual_mode_detect(connector, edid != NULL);
 
-		intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
-	}
+	intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
 
 	to_intel_connector(connector)->detect_edid = edid;
 	if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) {
@@ -1465,37 +1463,16 @@ static enum drm_connector_status
 intel_hdmi_detect(struct drm_connector *connector, bool force)
 {
 	enum drm_connector_status status;
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	bool live_status = false;
-	unsigned int try;
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
 		      connector->base.id, connector->name);
 
 	intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-	for (try = 0; !live_status && try < 9; try++) {
-		if (try)
-			msleep(10);
-		live_status = intel_digital_port_connected(dev_priv,
-				hdmi_to_dig_port(intel_hdmi));
-	}
-
-	if (!live_status) {
-		DRM_DEBUG_KMS("HDMI live status down\n");
-		/*
-		 * Live status register is not reliable on all intel platforms.
-		 * So consider live_status only for certain platforms, for
-		 * others, read EDID to determine presence of sink.
-		 */
-		if (INTEL_INFO(dev_priv)->gen < 7 || IS_IVYBRIDGE(dev_priv))
-			live_status = true;
-	}
-
 	intel_hdmi_unset_edid(connector);
 
-	if (intel_hdmi_set_edid(connector, live_status)) {
+	if (intel_hdmi_set_edid(connector)) {
 		struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
 
 		hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI;
@@ -1521,7 +1498,7 @@ intel_hdmi_force(struct drm_connector *connector)
 	if (connector->status != connector_status_connected)
 		return;
 
-	intel_hdmi_set_edid(connector, true);
+	intel_hdmi_set_edid(connector);
 	hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI;
 }
 
-- 
2.1.4



-- 
Jani Nikula, Intel Open Source Technology Center

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Pavel Machek <pavel@ucw.cz>, Martin Steigerwald <martin@lichtvoll.de>
Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	kernel list <linux-kernel@vger.kernel.org>,
	dri-devel@lists.freedesktop.org
Subject: Re: 4.8-rc1: it is now common that machine needs re-run of xrandr after resume
Date: Wed, 14 Sep 2016 14:14:35 +0300	[thread overview]
Message-ID: <87h99iraw4.fsf@intel.com> (raw)
In-Reply-To: <87h99isuv2.fsf@intel.com>

On Wed, 14 Sep 2016, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Wed, 14 Sep 2016, Pavel Machek <pavel@ucw.cz> wrote:
>> For the "sometimes need xrandr after resume": I don't think I can
>> bisect that. It only happens sometimes :-(. But there's something
>> helpful in the logs:
>
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>> invalid, remainder is 130
>> [ 1856.218863] Raw EDID:
>> [ 1856.218863]     00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863]     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>> [ 1856.218863] i915 0000:00:02.0: HDMI-A-1: EDID block 0 invalid.
>
> Pavel, Martin, do you always see this when the display fails to resume?
> Is it HDMI/DVI for both of you?

Please try this patch, backported from our next.

BR,
Jani.

From c5cec7b2df1a518a632998aecd6f73f3fefe59ec Mon Sep 17 00:00:00 2001
From: David Weinehall <david.weinehall@linux.intel.com>
Date: Wed, 17 Aug 2016 15:47:48 +0300
Subject: [PATCH] Revert "drm/i915: Check live status before reading edid"
Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
Cc: Jani Nikula <jani.nikula@intel.com>

This reverts commit 237ed86c693d8a8e4db476976aeb30df4deac74b.

Our current implementation of live status check (repeat 9 times
with 10ms delays between each attempt as a workaround for
buggy displays) imposes a rather serious penalty, time wise,
on intel_hdmi_detect().  Since we we already skip live status
checks on platforms before gen 7, and since we seem to have
coped quite well before the live status check was introduced
for newer platforms too, the previous behaviour is probably
preferable, at least unless someone can point to a use-case
that the live status check improves (apart from "Bspec says so".)

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid")
Fixes: f8d03ea0053b ("drm/i915: increase the tries for HDMI hotplug live status checking")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97139
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94014
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org # v4.4+
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160817124748.31208-1-david.weinehall@linux.intel.com

Conflicts:
	drivers/gpu/drm/i915/intel_drv.h
---
 drivers/gpu/drm/i915/intel_dp.c   |  2 +-
 drivers/gpu/drm/i915/intel_drv.h  |  2 --
 drivers/gpu/drm/i915/intel_hdmi.c | 43 +++++++++------------------------------
 3 files changed, 11 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 21b04c3eda41..81c9b89b7a38 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4148,7 +4148,7 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
  *
  * Return %true if @port is connected, %false otherwise.
  */
-bool intel_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_IBX(dev_priv))
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index ff399b9a5c1f..2c74213a8467 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1387,8 +1387,6 @@ void intel_edp_drrs_disable(struct intel_dp *intel_dp);
 void intel_edp_drrs_invalidate(struct drm_device *dev,
 		unsigned frontbuffer_bits);
 void intel_edp_drrs_flush(struct drm_device *dev, unsigned frontbuffer_bits);
-bool intel_digital_port_connected(struct drm_i915_private *dev_priv,
-					 struct intel_digital_port *port);
 
 void
 intel_dp_program_link_training_pattern(struct intel_dp *intel_dp,
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 4df9f384910c..c3aa9e670d15 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1422,24 +1422,22 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid)
 }
 
 static bool
-intel_hdmi_set_edid(struct drm_connector *connector, bool force)
+intel_hdmi_set_edid(struct drm_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
-	struct edid *edid = NULL;
+	struct edid *edid;
 	bool connected = false;
 
-	if (force) {
-		intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
+	intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-		edid = drm_get_edid(connector,
-				    intel_gmbus_get_adapter(dev_priv,
-				    intel_hdmi->ddc_bus));
+	edid = drm_get_edid(connector,
+			    intel_gmbus_get_adapter(dev_priv,
+			    intel_hdmi->ddc_bus));
 
-		intel_hdmi_dp_dual_mode_detect(connector, edid != NULL);
+	intel_hdmi_dp_dual_mode_detect(connector, edid != NULL);
 
-		intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
-	}
+	intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
 
 	to_intel_connector(connector)->detect_edid = edid;
 	if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) {
@@ -1465,37 +1463,16 @@ static enum drm_connector_status
 intel_hdmi_detect(struct drm_connector *connector, bool force)
 {
 	enum drm_connector_status status;
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	bool live_status = false;
-	unsigned int try;
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
 		      connector->base.id, connector->name);
 
 	intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-	for (try = 0; !live_status && try < 9; try++) {
-		if (try)
-			msleep(10);
-		live_status = intel_digital_port_connected(dev_priv,
-				hdmi_to_dig_port(intel_hdmi));
-	}
-
-	if (!live_status) {
-		DRM_DEBUG_KMS("HDMI live status down\n");
-		/*
-		 * Live status register is not reliable on all intel platforms.
-		 * So consider live_status only for certain platforms, for
-		 * others, read EDID to determine presence of sink.
-		 */
-		if (INTEL_INFO(dev_priv)->gen < 7 || IS_IVYBRIDGE(dev_priv))
-			live_status = true;
-	}
-
 	intel_hdmi_unset_edid(connector);
 
-	if (intel_hdmi_set_edid(connector, live_status)) {
+	if (intel_hdmi_set_edid(connector)) {
 		struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
 
 		hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI;
@@ -1521,7 +1498,7 @@ intel_hdmi_force(struct drm_connector *connector)
 	if (connector->status != connector_status_connected)
 		return;
 
-	intel_hdmi_set_edid(connector, true);
+	intel_hdmi_set_edid(connector);
 	hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI;
 }
 
-- 
2.1.4



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

  reply	other threads:[~2016-09-14 11:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13 20:23 4.8-rc1: it is now common that machine needs re-run of xrandr after resume Pavel Machek
2016-09-13 20:38 ` Martin Steigerwald
2016-09-13 20:38   ` Martin Steigerwald
2016-09-14  7:43   ` Pavel Machek
2016-09-14  7:43     ` Pavel Machek
2016-09-14 10:03     ` Jani Nikula
2016-09-13 21:04 ` Pavel Machek
2016-09-14  7:38   ` Jani Nikula
2016-09-14  7:38     ` Jani Nikula
2016-09-14  7:45     ` Jani Nikula
2016-09-14  7:45       ` Jani Nikula
2016-09-14  7:54     ` Pavel Machek
2016-09-14  7:54       ` Pavel Machek
2016-09-14  9:17       ` Jani Nikula
2016-09-14 11:14         ` Jani Nikula [this message]
2016-09-14 11:14           ` Jani Nikula
2016-09-15 15:34           ` Martin Steigerwald
2016-09-15 15:34             ` Martin Steigerwald
2016-09-16  6:57             ` Jani Nikula
2016-10-18 14:13           ` Pavel Machek
2016-10-18 14:13             ` Pavel Machek
2016-09-14 11:32         ` Martin Steigerwald
2016-09-14 11:32           ` Martin Steigerwald
2016-09-14 10:33   ` [Intel-gfx] " Chris Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h99iraw4.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin@lichtvoll.de \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.