From: "José Roberto de Souza" <jose.souza@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Subject: [PATCH 02/10] drm/i915: Make intel_dp_detect() more clear to read
Date: Tue, 2 Oct 2018 10:50:46 -0700 [thread overview]
Message-ID: <20181002175054.15010-2-jose.souza@intel.com> (raw)
In-Reply-To: <20181002175054.15010-1-jose.souza@intel.com>
Moving all the error handling to the end of the function and ealier
returning for connected MST ports make this function way more easy to
read.
No functional changed is intended here.
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
drivers/gpu/drm/i915/intel_dp.c | 55 +++++++++++++++++++--------------
1 file changed, 31 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 15a981ef5966..5a84a929bc7d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5077,28 +5077,20 @@ intel_dp_detect(struct drm_connector *connector,
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
- /* Can't disconnect eDP */
+ /* Is port connected? eDP can't be disconnected */
+ if (!intel_dp_is_edp(intel_dp) &&
+ !intel_digital_port_connected(encoder)) {
+ status = connector_status_disconnected;
+ goto port_disconnected;
+ }
+
if (intel_dp_is_edp(intel_dp))
status = edp_detect(intel_dp);
- else if (intel_digital_port_connected(encoder))
- status = intel_dp_detect_dpcd(intel_dp);
else
- status = connector_status_disconnected;
-
- if (status == connector_status_disconnected) {
- memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
-
- if (intel_dp->is_mst) {
- 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);
- }
+ status = intel_dp_detect_dpcd(intel_dp);
- goto out;
- }
+ if (status == connector_status_disconnected)
+ goto port_not_detected;
if (intel_dp->reset_link_params) {
/* Initial max link lane count */
@@ -5123,8 +5115,8 @@ intel_dp_detect(struct drm_connector *connector,
* won't appear connected or have anything
* with EDID on it
*/
- status = connector_status_disconnected;
- goto out;
+ intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
+ return connector_status_disconnected;
}
/*
@@ -5151,14 +5143,29 @@ intel_dp_detect(struct drm_connector *connector,
intel_dp->aux.i2c_defer_count = 0;
intel_dp_set_edid(intel_dp);
- if (intel_dp_is_edp(intel_dp) ||
- to_intel_connector(connector)->detect_edid)
+ /*
+ * intel_dp_detect_dpcd() will return connector_status_unknown for some
+ * type of DP devices, if edid can be read set status as connected
+ */
+ if (to_intel_connector(connector)->detect_edid)
status = connector_status_connected;
intel_dp_check_service_irq(intel_dp);
-out:
- if (status != connector_status_connected && !intel_dp->is_mst)
+ intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
+ return status;
+
+port_not_detected:
+port_disconnected:
+ memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
+
+ if (intel_dp->is_mst) {
+ 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);
+ } else
intel_dp_unset_edid(intel_dp);
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
--
2.19.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-10-02 17:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-02 17:50 [PATCH 01/10] drm: Do not call drm_dp_cec_set_edid() while registering DP connectors José Roberto de Souza
2018-10-02 17:50 ` José Roberto de Souza [this message]
2018-10-03 7:25 ` [PATCH 02/10] drm/i915: Make intel_dp_detect() more clear to read Jani Nikula
2018-10-02 17:50 ` [PATCH 03/10] drm/i915: Do not get aux power for disconnected DP ports José Roberto de Souza
2018-10-02 20:04 ` Ville Syrjälä
2018-10-02 20:49 ` Ville Syrjälä
2018-10-02 17:50 ` [PATCH 04/10] drm/i915/debugfs: Do not print cached information of a disconnected sink José Roberto de Souza
2018-10-02 17:50 ` [PATCH 05/10] drm/i915: Do not try to set DPMS if sink is disconnected José Roberto de Souza
2018-10-02 20:32 ` Ville Syrjälä
2018-10-02 17:50 ` [PATCH 06/10] drm/i915/icl: Mark TC port as safe when interruptions are disabled José Roberto de Souza
2018-10-02 20:35 ` Ville Syrjälä
2018-10-10 0:55 ` Souza, Jose
2018-10-10 17:15 ` Ville Syrjälä
2018-10-10 17:23 ` Souza, Jose
2018-10-10 17:52 ` Ville Syrjälä
2018-10-10 18:27 ` Souza, Jose
2018-10-10 18:38 ` Ville Syrjälä
2018-10-02 17:50 ` [PATCH 07/10] drm/i915/icl: Set TC type to unknown in the disconnection flow José Roberto de Souza
2018-10-02 17:50 ` [PATCH 08/10] drm/i915/icl: Set TC type to unknown when a sudden disconnection happen José Roberto de Souza
2018-10-02 17:50 ` [PATCH 09/10] drm/i915: Initialize panel_vdd_work only for eDP ports José Roberto de Souza
2018-10-02 17:50 ` [PATCH 10/10] drm/i915/icl: Delay hotplug processing for tc ports José Roberto de Souza
2018-10-02 18:10 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/10] drm: Do not call drm_dp_cec_set_edid() while registering DP connectors Patchwork
2018-10-02 18:12 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-10-02 18:33 ` ✓ Fi.CI.BAT: success " Patchwork
2018-10-03 8:32 ` ✗ Fi.CI.IGT: failure " Patchwork
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=20181002175054.15010-2-jose.souza@intel.com \
--to=jose.souza@intel.com \
--cc=dhinakaran.pandiyan@intel.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