public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Todd Previte <tprevite@gmail.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 03/12] drm/i915: Add EDID read in intel_dp_check_link_status() for Link CTS 4.2.2.1
Date: Wed, 15 Apr 2015 12:29:20 -0700	[thread overview]
Message-ID: <1429126160-1382-1-git-send-email-tprevite@gmail.com> (raw)
In-Reply-To: <1429112327-7695-4-git-send-email-tprevite@gmail.com>

Adds in an EDID read after the DPCD read to accommodate test 4.2.2.1 in the
Displayport Link CTS Core 1.2 rev1.1. This test requires an EDID read for
all HPD plug events. To reduce the amount of code, this EDID read is also
used for Link CTS tests 4.2.2.3, 4.2.2.4, 4.2.2.5 and 4.2.2.6. Actual
support for these tests is implemented in later patches in this series.

V2:
- Fixed compilation error introduced during rework
V3:
- Plugged a memory leak where the EDID data wasn't being freed
  after allocation in this function
V4:
- Fixed whitespace problems
- Cleaned up formatting
V5:
- Added propagation of the long_hpd flag from the hot_pulse function
V6:
- Versioning, accommodating changes from previous patch

Signed-off-by: Todd Previte <tprevite@gmail.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 9c38986..a875b44 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4110,10 +4110,13 @@ go_again:
  *  4. Check link status on receipt of hot-plug interrupt
  */
 static void
-intel_dp_check_link_status(struct intel_dp *intel_dp)
+intel_dp_check_link_status(struct intel_dp *intel_dp, bool long_hpd)
 {
 	struct drm_device *dev = intel_dp_to_dev(intel_dp);
 	struct intel_encoder *intel_encoder = &dp_to_dig_port(intel_dp)->base;
+	struct drm_connector *connector = &intel_dp->attached_connector->base;
+	struct i2c_adapter *adapter = &intel_dp->aux.ddc;
+	struct edid *edid_read = NULL;
 	u8 sink_irq_vector;
 	u8 link_status[DP_LINK_STATUS_SIZE];
 
@@ -4122,6 +4125,18 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
 	if (!intel_dp_get_dpcd(intel_dp))
 		return;
 
+	/* Displayport Link CTS Core 1.2 rev1.1 EDID testing
+	 * 4.2.2.1 - EDID read required for all HPD events
+	 */
+	if (long_hpd) {
+		edid_read = drm_get_edid(connector, adapter);
+		if (!edid_read) {
+			DRM_DEBUG_DRIVER("Invalid EDID detected\n");
+		} else {
+			kfree(edid_read);
+		}
+	}
+
 	/* Try to read the source of the interrupt */
 	if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
 	    intel_dp_get_sink_irq(intel_dp, &sink_irq_vector)) {
@@ -4776,7 +4791,7 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 			 * but for short hpds we should check it now
 			 */
 			drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
-			intel_dp_check_link_status(intel_dp);
+			intel_dp_check_link_status(intel_dp, long_hpd);
 			drm_modeset_unlock(&dev->mode_config.connection_mutex);
 		}
 	}
-- 
1.9.1

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

  parent reply	other threads:[~2015-04-15 19:29 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-15 15:38 [PATCH V6] Displayport compliance testing V6 Todd Previte
2015-04-15 15:38 ` [PATCH 01/10] drm/i915: Add automated testing support for Displayport compliance testing Todd Previte
2015-04-16 11:32   ` Daniel Vetter
2015-04-15 15:38 ` [PATCH 02/10] drm/i915: Update intel_dp_check_link_status() " Todd Previte
2015-04-15 19:28   ` [PATCH 02/12] " Todd Previte
2015-04-15 19:45     ` Paulo Zanoni
2015-04-15 15:38 ` [PATCH 03/10] drm/i915: Add EDID read in intel_dp_check_link_status() for Link CTS 4.2.2.1 Todd Previte
2015-04-15 17:15   ` [PATCH 03/12] " Todd Previte
2015-04-15 19:29   ` Todd Previte [this message]
2015-04-15 15:38 ` [PATCH 04/10] drm/i915: Add a delay in Displayport AUX transactions for compliance testing Todd Previte
2015-04-16 12:37   ` Daniel Vetter
2015-04-15 15:38 ` [PATCH 05/10] drm: Add supporting structure for Displayport Link CTS test 4.2.2.6 Todd Previte
2015-04-15 17:15   ` [PATCH 05/12] " Todd Previte
2015-04-15 20:25     ` [Intel-gfx] " Paulo Zanoni
2015-04-15 21:59       ` Todd Previte
2015-04-15 22:03   ` Todd Previte
2015-04-16 13:34     ` Paulo Zanoni
2015-04-16 14:02       ` Todd Previte
2015-04-16 15:47   ` Todd Previte
2015-04-15 15:38 ` [PATCH 06/10] drm/i915: Update intel_dp_hpd_pulse() for non-MST operation Todd Previte
2015-04-15 17:15   ` [PATCH 06/12] " Todd Previte
2015-04-16  7:22   ` Todd Previte
2015-04-15 15:38 ` [PATCH 07/10] drm/i915: Support EDID compliance tests with the intel_dp_autotest_edid() function Todd Previte
2015-04-15 17:16   ` [PATCH 07/12] " Todd Previte
2015-04-15 15:38 ` [PATCH 08/10] drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling Todd Previte
2015-04-16 20:23   ` Paulo Zanoni
2015-04-15 15:38 ` [PATCH 09/10] drm/i915: Add debugfs test control files for Displayport compliance testing Todd Previte
2015-04-16 21:25   ` Paulo Zanoni
2015-04-15 15:38 ` [PATCH 10/10] drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() Todd Previte
2015-04-16 12:42   ` Daniel Vetter
2015-04-16 12:44   ` Daniel Vetter

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=1429126160-1382-1-git-send-email-tprevite@gmail.com \
    --to=tprevite@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox