All of lore.kernel.org
 help / color / mirror / Atom feed
From: Todd Previte <tprevite@gmail.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 07/11] drm/i915: Update intel_dp_hpd_pulse() for non-MST operation
Date: Fri, 10 Apr 2015 09:12:48 -0700	[thread overview]
Message-ID: <1428682372-21586-8-git-send-email-tprevite@gmail.com> (raw)
In-Reply-To: <1428682372-21586-1-git-send-email-tprevite@gmail.com>

Update the hot plug function to handle the SST case. Instead of placing
the SST case within the long/short pulse block, it is now handled after
determining that MST mode is not in use. This way, the topology management
layer can handle any MST-related operations while SST operations are still
correctly handled afterwards.

This patch also corrects the problem of SST mode only being handled in the
case of a short (0.5ms - 1.0ms) HPD pulse. For compliance testing purposes
both short and long pulses are used by the different tests, thus both cases
need to be addressed for SST.

This patch replaces [PATCH 10/10] drm/i915: Fix intel_dp_hot_plug() in the
previous compliance testing patch sequence. Review feedback on that patch
indicated that updating intel_dp_hot_plug() was not the correct place for
the test handler.

For the SST case, the main stream is disabled for long HPD pulses as this
generally indicates either a connect/disconnect event or link failure. For
a number of case in compliance testing, the source is required to disable
the main link upon detection of a long HPD.

V2:
- N/A
V3:
- Place the SST mode link status check into the mst_fail case
- Remove obsolete comment regarding SST mode operation
- Removed an erroneous line of code that snuck in during rebasing
V4:
- Added a disable of the main stream (DP transport) for the long pulse case
  for SST to support compliance testing
V5:
- Reworked SST handling to support tests 4.2.2.7 and 4.2.2.8
V6:
- Reformatted a comment

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

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 77b6b15..ba2da44 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4572,29 +4572,26 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 			if (intel_dp_check_mst_status(intel_dp) == -EINVAL)
 				goto mst_fail;
 		}
-
-		if (!intel_dp->is_mst) {
-			/*
-			 * we'll check the link status via the normal hot plug path later -
-			 * 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);
-			drm_modeset_unlock(&dev->mode_config.connection_mutex);
-		}
 	}
 
 	ret = IRQ_HANDLED;
 
 	goto put_power;
 mst_fail:
-	/* if we were in MST mode, and device is not there get out of MST mode */
 	if (intel_dp->is_mst) {
+		/* if we were in MST mode, and device is not there get out of MST mode */
 		DRM_DEBUG_KMS("MST device may have disappeared %d vs %d\n", intel_dp->is_mst, intel_dp->mst_mgr.mst_state);
 		intel_dp->is_mst = false;
 		drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
 	}
 put_power:
+	/* SST mode - handle short/long pulses here */
+	if (!intel_dp->is_mst) {
+		drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
+		intel_dp_check_link_status(intel_dp);
+		drm_modeset_unlock(&dev->mode_config.connection_mutex);
+		ret = IRQ_HANDLED;
+	}
 	intel_display_power_put(dev_priv, power_domain);
 
 	return ret;
-- 
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-10 16:13 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-10 16:12 [intel-gfx][PATCH V5] Displayport compliance testing V5 Todd Previte
2015-04-10 16:12 ` [PATCH 01/11] drm/i915: Add automated testing support for Displayport compliance testing Todd Previte
2015-04-13 17:30   ` Paulo Zanoni
2015-04-10 16:12 ` [PATCH 02/11] drm/i915: Ignore disconnected Displayport connectors in check_link_status Todd Previte
2015-04-10 16:12 ` [PATCH 03/11] drm/i915: Move the DPCD read further up in intel_dp_check_link_status() Todd Previte
2015-04-14 17:48   ` Todd Previte
2015-04-10 16:12 ` [PATCH 04/11] drm/i915: Add EDID read in intel_dp_check_link_status() for Link CTS 4.2.2.1 Todd Previte
2015-04-13 14:10   ` Paulo Zanoni
2015-04-13 14:57     ` Todd Previte
2015-04-13 14:53   ` [PATCH 04/13] " Todd Previte
2015-04-14 16:53     ` Paulo Zanoni
2015-04-15  8:48       ` Daniel Vetter
2015-04-15 15:37       ` Todd Previte
2015-04-15 17:42         ` Paulo Zanoni
2015-04-16 15:41           ` Todd Previte
2015-04-16 16:31             ` Daniel Vetter
2015-04-16 17:32               ` Todd Previte
2015-04-20  5:10               ` Todd Previte
2015-04-10 16:12 ` [PATCH 05/11] drm/i915: Add a delay in Displayport AUX transactions for compliance testing Todd Previte
2015-04-13 21:05   ` Paulo Zanoni
2015-04-10 16:12 ` [PATCH 06/11] drm/i915: Add supporting structure for Displayport Link CTS test 4.2.2.6 Todd Previte
2015-04-10 17:38   ` [PATCH 06/13] drm: " Todd Previte
2015-04-10 17:45   ` [PATCH 06/11] drm/i915: " Emil Velikov
2015-04-10 17:38     ` Todd Previte
2015-04-13 14:53   ` [PATCH 06/13] drm: " Todd Previte
2015-04-13 22:18     ` Paulo Zanoni
2015-04-15  6:56       ` Todd Previte
2015-04-10 16:12 ` Todd Previte [this message]
2015-04-14 11:29   ` [PATCH 07/11] drm/i915: Update intel_dp_hpd_pulse() for non-MST operation Paulo Zanoni
2015-04-14 17:36     ` Todd Previte
2015-04-14 19:00       ` Paulo Zanoni
2015-04-15  2:00         ` Todd Previte
2015-04-10 16:12 ` [PATCH 08/11] drm/i915: Support EDID compliance tests with the intel_dp_autotest_edid() function Todd Previte
2015-04-10 17:42   ` [PATCH 08/13] " Todd Previte
2015-04-14 13:35     ` Paulo Zanoni
2015-04-14 17:42       ` Todd Previte
2015-04-10 16:12 ` [PATCH 09/11] drm/i915: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling Todd Previte
2015-04-10 17:41   ` [PATCH 09/13] drm: " Todd Previte
2015-04-10 16:12 ` [PATCH 10/11] drm/i915: Add debugfs test control files for Displayport compliance testing Todd Previte
2015-04-10 16:12 ` [PATCH 11/11] drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() Todd Previte
2015-04-10 16:18   ` Alex Deucher

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=1428682372-21586-8-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 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.