Bug 24458

Summary: TMDS no longer detected as connected due to commit #02fe9be6
Product: xorg Reporter: Stefan Dirsch <sndirsch>
Component: Driver/intelAssignee: ykzhao <yakui.zhao>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: critical    
Priority: high CC: eich, mat, yakui.zhao
Version: gitKeywords: NEEDINFO, regression
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
try the debug patch, which skips the edid check in course of SDVO detection none

Description Stefan Dirsch 2009-10-11 04:45:13 UTC
I've found a regression due to commit #02fe9be6, which resulted in TMDS no longer being detected. The reason is that xf86OutputGetEDID() fails, i.e. it returns NULL. Reverting the commit fixes the issue. For your convenience here is the commit:

commit 02fe9be695f7e209944bd0f7b67950f93619feee
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Sep 22 10:58:38 2009 +0800

    Check whether the DVI-I/D is connected or disconnected based on EDID
    
    When the monitor is digital type for SDVO-DVI D, there should exist the 
    EDID. If there is no EDID, it should be detected as disconnected.
    
    Signe-off-by: Zhao Yakui <yakui.zhao@intel.com>

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index 8f3193b..5ffe0e8 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -1824,6 +1824,9 @@ i830_sdvo_detect(xf86OutputPtr output)
        xf86MonPtr edid_mon;
        /* Check EDID in DVI-I case */
        edid_mon = xf86OutputGetEDID (output, intel_output->pDDCBus);
+       /* when there is no EDID, it should be detected as disconnected */
+       if (!edid_mon)
+           return XF86OutputStatusDisconnected;
        if (edid_mon && !DIGITAL(edid_mon->features.input_type)) {
            xfree(edid_mon);
            return XF86OutputStatusDisconnected;
Comment 1 ykzhao 2009-10-11 17:33:09 UTC
Please add the "modedebug" option in xorg.conf and attach the output of Xorg.0.log, vbios.dump, lspci -vxxx.
The vbios.dump can be obtained by using the following commands:
     echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
     cat /sys/devices/pci0000:00/0000:00:02.0/rom > vbios.dump
     echo 0 > /sys/devices/pci0000:00/0000:00:02.0/rom

Please try the KMS mode and see whether the issue still exists.
Comment 2 ykzhao 2009-10-11 22:21:11 UTC
Please also try the debug patch in https://bugs.freedesktop.org/show_bug.cgi?id=24282#C12 on Eric's drm-intel-next tree and attach the output of dmesg.(the system should be booted with KMS enabled).

thanks.
Comment 3 Lars-Göran Andersson 2009-10-13 08:34:40 UTC
Hi! I'm the one that reported the problem to Stefan in the first place and he has nicely and smoothly got it corrected for me. My part in this was to carry out specific tests as requested by Stefan and I'm more than happy to do that for you as well - but I do require proper supervision. So to start with - would you like me to regenerate the error? Where should I add 'modedebux' in xorg.conf? Your second comment is a bit tricky for me. I'm afraid I need some more information on this one :-( . My background is not really enough to understand what you expect me to do.
Comment 4 ykzhao 2009-10-13 20:17:39 UTC
You can attach the vbios.dump, which can be obtained by using the following commands:
   >echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
     cat /sys/devices/pci0000:00/0000:00:02.0/rom > vbios.dump
     echo 0 > /sys/devices/pci0000:00/0000:00:02.0/rom

Please also attach the output of lspci -vxxx.

Please try the debug patch mentioned in comment #4 on the Eric's drm-intel-next tree and attach the output of dmesg, Xorg.0.log. It is noted that the KMS should be enabled(CONFIG_DRM_I915_KMS should be y in kernel configuration). It will be great if you can add the boot option of "drm.debug=0x06" when booting the system.
  you can get the Eric's drm-intel-next tree by using the following commands:
  a. git clone git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel.git
b. git branch -r
c. git checkout -b origin/drm-intel-next
   Of course the 2.6.32-rc4 kernel is also OK.

It is unnecessary to add the "modedebug" option again, which is useless in KMS mode.

thanks.



Comment 5 ykzhao 2009-10-15 20:08:11 UTC
Please also attach the output of dmidecode.
thanks.
Comment 6 ykzhao 2009-10-21 22:50:41 UTC
Created attachment 30611 [details] [review]
try the debug patch, which skips the edid check in course of SDVO detection

Will you please try the debug patch on the latest upstream kernel and see whether the issue still exists?
Thanks.
Comment 7 ykzhao 2009-11-08 18:34:19 UTC
The commit #02fe9be6 is reverted in the following commit:
   commit 8e4fc7d3ba0baa6b680c685429060cb62a08f89f
Author: Carl Worth <cworth@cworth.org>
Date:   Mon Oct 26 04:40:51 2009 -0700

    Revert "Check whether the DVI-I/D is connected or disconnected based on EDID"

And the above commit is already shipped in 2.9.1 branch. So this bug will be marked as resolved.

Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.