[Intel-gfx] [PATCH] drm/i915: Update the status of connector when receiving MST unplug event
Ethan Hsieh
ethan.hsieh at canonical.com
Tue Aug 1 08:51:31 UTC 2017
We do not update the status of connector when receiving MST unplug event.
Call detect function to get latest status and then update status of connector.
Before applying the patch:
[313.665321] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat 0x00200000, dig 0x10101012, pins 0x00000020
[313.665383] [drm:intel_hpd_irq_handler [i915]] digital hpd port B - long
[313.665436] [drm:intel_hpd_irq_handler [i915]] Received HPD interrupt on PIN 5 - cnt: 0
[313.665539] [drm:intel_dp_hpd_pulse [i915]] got hpd irq on port B - long
[313.944743] [drm:intel_dp_destroy_mst_connector [i915]]
[313.944848] [drm:intel_dp_destroy_mst_connector [i915]]
After applying the patch:
[43.175798] [drm:intel_dp_destroy_mst_connector [i915]] [CONNECTOR:70:DP-4] status updated from connected to disconnected
[43.175870] [drm:intel_dp_destroy_mst_connector [i915]]
[43.177675] [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:70:DP-4]
[43.177679] [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:70:DP-4] disconnected
Signed-off-by: Ethan Hsieh <ethan.hsieh at canonical.com>
---
drivers/gpu/drm/i915/intel_dp_mst.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index e4ea968..b02a9a8 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -492,6 +492,20 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
{
struct intel_connector *intel_connector = to_intel_connector(connector);
struct drm_i915_private *dev_priv = to_i915(connector->dev);
+ enum drm_connector_status old_status;
+
+ mutex_lock(&connector->dev->mode_config.mutex);
+ old_status = connector->status;
+ connector->status = connector->funcs->detect(connector, false);
+
+ if (old_status != connector->status)
+ DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s\n",
+ connector->base.id,
+ connector->name,
+ drm_get_connector_status_name(old_status),
+ drm_get_connector_status_name(connector->status));
+
+ mutex_unlock(&connector->dev->mode_config.mutex);
drm_connector_unregister(connector);
--
2.7.4
More information about the Intel-gfx
mailing list