[Bug 101461] [SKL] Unplugging the HDMI/DP/mDP cable from dock will not automically resize framebuffer

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Jun 20 09:04:23 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=101461

--- Comment #10 from Ethan Hsieh <ethan.hsieh at canonical.com> ---
Created attachment 132079
  --> https://bugs.freedesktop.org/attachment.cgi?id=132079&action=edit
kern.log

When I unplugged the cable, the status of DP-4 was still "connected".
That is why the framebuffer is not resized automatically.

Here is the log:
[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.944745] intel_dp_destroy_mst_connector: connector->name=DP-4
status=connected
[313.944848] [drm:intel_dp_destroy_mst_connector [i915]]

---

The framebuffer is resized automatically after applying the following
workaround.
drivers/gpu/drm/i915/intel_dp_mst.c
@@ -474,6 +478,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_device *dev = connector->dev;
+       enum drm_connector_status old_status;
+
+       printk(KERN_ERR "%s: connector->name=%s status=%s\n", __func__,
connector->name, drm_get_connector_status_name(connector->status));
+
+       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));

Here is the log:
[43.175787] intel_dp_destroy_mst_connector: connector->name=DP-4
status=connected
[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

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20170620/60559651/attachment.html>


More information about the intel-gfx-bugs mailing list