<div dir="ltr"><br><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Nov 29, 2018 at 9:52 AM Guang Bai <<a href="mailto:guang.bai@intel.com" target="_blank">guang.bai@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes<br>
the kernel to believe the HDMI display is still connected. This is because<br>
the HDMI DDC lines are disconnected a little bit later after the hot-plug<br>
interrupt triggered thus an immediate edid fetch can be made. This problem<br>
has been identified by more than one customer recently. Use digital<br>
port live states to authorize the edid read at HDMI detection point will<br>
ensure most of the display related software states updated and rest of them<br>
will be renewed accordingly when the port is connected.<br>
<br>
v2: Fix the formatting issue<br>
v3: Use digital port states to authorize the edid read<br>
v4: Add comments on issue histories and rationale of the fix (Chris W)<br>
<br>
Cc: Jani Nikula <<a href="mailto:jani.nikula@intel.com" target="_blank">jani.nikula@intel.com</a>><br>
Cc: Chris Chiu <<a href="mailto:chiu@endlessm.com" target="_blank">chiu@endlessm.com</a>><br>
Cc: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk" target="_blank">chris@chris-wilson.co.uk</a>><br>
Signed-off-by: Guang Bai <<a href="mailto:guang.bai@intel.com" target="_blank">guang.bai@intel.com</a>><br>
---<br>
 drivers/gpu/drm/i915/intel_hdmi.c | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c<br>
index e2c6a2b..8cf7c78 100644<br>
--- a/drivers/gpu/drm/i915/intel_hdmi.c<br>
+++ b/drivers/gpu/drm/i915/intel_hdmi.c<br>
@@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)<br>
<br>
        intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);<br>
<br>
-       if (IS_ICELAKE(dev_priv) &&<br>
+       if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&<br>
            !intel_digital_port_connected(encoder))<br>
                goto out;<br>
<br>
-- <br>
2.7.4<br>
<br></blockquote><div><br></div><div>I've tried on my problematic ASUS X705FD, seems no problem on my test</div><div>scenarios (100% pass). I can reproduce with very slow unplug on previous</div><div>versions but can't reproduce anymore on this one. I tried slow unplgug with</div><div>few finds of HDMI jack I have in hand, it responds as expected. </div><div><br></div><div>Don't know if there's any tough test case I should try, but I think it pretty</div><div>much solve the problem. Thanks.</div><div><br></div><div>Chris</div><br></div></div></div>