Re: PROBLEM: Intel HDMI output busticated on 4.4 (regression)

From: Jindal, Sonika
Date: Tue Jan 19 2016 - 23:30:16 EST


Can you please check if you have following patch:
"commit 3d8acd1f667b45c531401c8f0c2033072e32a05d
Author: Gary Wang <gary.c.wang@xxxxxxxxx>
Date: Wed Dec 23 16:11:35 2015 +0800

drm/i915: increase the tries for HDMI hotplug live status checking"

For some monitors, 30ms delay is not good enough to report the live status correctly.

Does the same system works with any other monitor?

Daniel,

Can this be related to the live status bits on g45?
"commit 0ce99f749b3834edeb500e17d6ad17e86b60ff83
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Fri Jul 26 11:27:49 2013 +0200

drm/i915: fix gen4 digital port hotplug definitions"

Regards,
Sonika


On 1/20/2016 3:56 AM, Nick Bowler wrote:
Hi,

Upgrading from 4.3 to 4.4 breaks my HDMI output on my G45 machine.

As soon as the intel driver is loaded, the monitor shuts off
(standby mode). Inspecting /sys/class/drm/card0-HDMI-A-1/status
reports "disconnected". When it is working, this attribute says
"connected".

There is nothing unusual printed to dmesg.

Bisection pinpoints the following:

237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
commit 237ed86c693d8a8e4db476976aeb30df4deac74b
Author: Sonika Jindal <sonika.jindal@xxxxxxxxx>
Date: Tue Sep 15 09:44:20 2015 +0530
drm/i915: Check live status before reading edid
[...]
Signed-off-by: Shashank Sharma <shashank.sharma@xxxxxxxxx>
Signed-off-by: Sonika Jindal <sonika.jindal@xxxxxxxxx>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>

The commit does not revert cleanly, but this patch resolves the issue:

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index e6c035b0fc1c..8cefb9105f26 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1393,7 +1393,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
intel_hdmi_unset_edid(connector);
- if (intel_hdmi_set_edid(connector, live_status)) {
+ if (intel_hdmi_set_edid(connector, true)) {
struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI;

Let me know if you need any more info.

Thanks,
Nick