Bug 15109 - i945GM fails to detect EDID on DVI port
Summary: i945GM fails to detect EDID on DVI port
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - Intel) (show other bugs)
Hardware: x86-64 Linux
: P1 normal
Assignee: drivers_video-dri-intel@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-22 22:06 UTC by Doug Semler
Modified: 2011-02-09 22:48 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.33-rc5
Subsystem:
Regression: No
Bisected commit-id:


Attachments
Output of lspci -vxxx (26.06 KB, text/plain)
2010-01-22 22:06 UTC, Doug Semler
Details
Output of dmidecode (12.42 KB, text/plain)
2010-01-22 22:07 UTC, Doug Semler
Details
Output of dmesg with drm.debug=0x6 (121.59 KB, text/plain)
2010-01-22 22:08 UTC, Doug Semler
Details
Dump of /sys/.../rom (64.00 KB, application/octet-stream)
2010-01-22 22:09 UTC, Doug Semler
Details
dmesg output of kernel 2.6.31 (76.66 KB, text/plain)
2010-01-26 15:35 UTC, Doug Semler
Details
dmesg output of kernel 2.6.33-rc3 drm.debug=0x6 (127.28 KB, text/plain)
2010-01-26 15:36 UTC, Doug Semler
Details
xorg.log with i915.modeset=0 (53.65 KB, application/octet-stream)
2010-01-26 15:46 UTC, Doug Semler
Details
dmesg output of kernel 2.6.33.2 (197.23 KB, text/plain)
2010-04-02 20:58 UTC, Doug Semler
Details
dmesg output of kernel 2.6.34-rc3-00121-g42be79e (199.67 KB, text/plain)
2010-04-02 21:06 UTC, Doug Semler
Details
VBE and i2c dumps kernel 2.6.33.2 (8.26 KB, text/plain)
2010-04-02 21:16 UTC, Doug Semler
Details

Description Doug Semler 2010-01-22 22:06:56 UTC
Created attachment 24676 [details]
Output of lspci -vxxx

I've been having this problem for a while but on my Dell (groan) Inspiron 9400 laptop (945GM chipset), when plugging in an external monitor on the DVI-D port, the kernel reports EDID failures.  This is not a problem on (cough) Windows, and the EDID is able to be read off port 0 using VBE in linux.  Plugging the same monitor into the VGA port works fine (the EDID is detected properly).   I use KMS.

When the monitor is plugged into the VGA port and I enter the BIOS setup utility, I am able to use the Fn-F8 key to switch between monitors; this does NOT work when I use the DVI port.

I will attach the files that seem to be requested whenever someone reports a bug of this nature...
Comment 1 Doug Semler 2010-01-22 22:07:28 UTC
Created attachment 24677 [details]
Output of dmidecode
Comment 2 Doug Semler 2010-01-22 22:08:13 UTC
Created attachment 24678 [details]
Output of dmesg with drm.debug=0x6
Comment 3 Doug Semler 2010-01-22 22:09:19 UTC
Created attachment 24679 [details]
Dump of /sys/.../rom
Comment 4 ykzhao 2010-01-25 14:41:49 UTC
Hi, Doug
    Will you please see whether the same issue still happens on the previous kernel? For example: 2.6.33-rc3/4. Please also add the boot option of "drm.debug=0x06" and attach the output of dmesg.
    thanks.
Comment 5 ykzhao 2010-01-25 14:43:18 UTC
Hi, Doug
    Do you have an opportunity to try another DVI-D monitor and see whether the issue still happens?
    Thanks.
Comment 6 Doug Semler 2010-01-26 00:17:45 UTC
(In reply to comment #4)
> Hi, Doug
>     Will you please see whether the same issue still happens on the previous
> kernel? For example: 2.6.33-rc3/4. Please also add the boot option of
> "drm.debug=0x06" and attach the output of dmesg.
>     thanks.

I will as soon as I have a chance to downgrade / compile the kernel when I get to work

I'm pretty sure the issue occurs on the 2.6.31 branch...I'll verify tomorrow. I haven't been able to use the 2.6.32 branch for quite a while...this machine suffers the infinite EDID loop (and I really don't remember which commit fixed this for me but I think it was recent) 

I should add that the EDID is obtainable through VBE...

I shall also try a different monitor when I get to work tomorrow morning if I can find a spare.
Comment 7 Doug Semler 2010-01-26 15:34:05 UTC
Different monitor = no go.  Same issue; the kernel reports an invalid EDID during boot, the dmesg output looks the same as during the original report attachment.
Comment 8 Doug Semler 2010-01-26 15:35:54 UTC
Created attachment 24730 [details]
dmesg output of kernel 2.6.31

Same problem: kernel version 2.6.31.12-174.2.3 from fedora 12.  EDID is undetected during boot.

dmesg output with drm.debug=0x6
Comment 9 Doug Semler 2010-01-26 15:36:55 UTC
Created attachment 24731 [details]
dmesg output of kernel 2.6.33-rc3 drm.debug=0x6

The output of dmesg from kernel 2.6.33-rc3 with drm.debug=0x6
Comment 10 Doug Semler 2010-01-26 15:46:31 UTC
Created attachment 24732 [details]
xorg.log with i915.modeset=0

I tried i915.modeset=0 with drm.debug=0x6, this is the output from the Xorg.log file.  The boot dmesg output only contains 4 lines from the drm.

While this parameter allows the DVI-D output to be turned on (and detects hotplugs), the output indicates that the TDMS0 port, while detecting the connection, only returns the default 1024x768, 800x600, and 640x480 modelines (which tells me that the EDID is not being detected).

I cannot seem to catch the dmesg information with drm.debug=0x6 because the dmesg output is cluttered with gem add_request sequence numbers.  If needed, I can try to get that information (or turn that message off).
Comment 11 Michal Suchanek 2010-02-04 09:53:30 UTC
Can you look at http://lists.freedesktop.org/archives/intel-gfx/2009-December/004979.html

at least on some hardware (Mac Mini) it resolves issues with detecting TMDS screen for me.

Thanks
Comment 12 Michal Suchanek 2010-02-04 10:04:20 UTC
Hmm, in 2.6.33-rc6 the patch is already applied so it would be a different issue then, sorry.
Comment 13 ykzhao 2010-03-11 05:16:40 UTC
Hi, Doug
    Sorry for the late response. 
    From the log in comment #9 it seems that the invalid EDID is obtained. Do you have an opportunity to try another monitor and see whether the external monitor can be detected?

Thanks
    Yakui
Comment 14 Doug Semler 2010-03-13 13:02:20 UTC
Yes. See comment 7.   Actually two other monitors.  Same issue

I also used the i2c tools to look at the i2c data and the block returned for the dvi address looked weird for that block
Comment 15 ykzhao 2010-04-02 08:22:58 UTC
Hi, Doug
    Will you please try the 2.6.33 kernel and attach the output of dmesg with DVI-D monitor connected? Please add the boot option of "drm.debug=0x04"

Thanks.
Comment 16 Doug Semler 2010-04-02 20:58:06 UTC
Created attachment 25829 [details]
dmesg output of kernel 2.6.33.2

dmesg output of kernel 2.6.33.2, with the monitor attached to the dvi port and drm.debug=0x4
Comment 17 Doug Semler 2010-04-02 21:06:27 UTC
Created attachment 25830 [details]
dmesg output of kernel 2.6.34-rc3-00121-g42be79e

For completeness, the dmesg output of the head from this morning.

However, I cannot run this kernel for a long period of time, I get a hangcheck failure that requires me to reboot:

Apr  2 16:47:23 uspl-pslaptop NetworkManager: <WARN>  user_connection_get_settings_cb(): user_connection_get_settings_cb: Invalid connection: 'NMSettingConnection' / 'id' invalid: 1
Apr  2 16:48:47 uspl-pslaptop kernel: [  162.717302] CE: hpet increased min_delta_ns to 7500 nsec
Apr  2 16:50:10 uspl-pslaptop kernel: [  246.265074] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
Apr  2 16:50:10 uspl-pslaptop kernel: [  246.265246] render error detected, EIR: 0x00000000
Apr  2 16:50:10 uspl-pslaptop kernel: [  246.265496] [drm:i915_do_wait_request] *ERROR* i915_do_wait_request returns -5 (awaiting 22739 at 22738)
Apr  2 16:50:11 uspl-pslaptop kdm[2833]: X server for display :0 terminated unexpectedly
Apr  2 16:50:13 uspl-pslaptop kdm[2833]: X server died during startup
Apr  2 16:50:13 uspl-pslaptop kdm[2833]: X server for display :0 cannot be started, session disabled
Apr  2 16:50:21 uspl-pslaptop init: tty4 main process (2835) killed by TERM signal
Apr  2 16:50:21 uspl-pslaptop init: tty5 main process (2836) killed by TERM signal
Apr  2 16:50:21 uspl-pslaptop init: tty2 main process (2837) killed by TERM signal
Apr  2 16:50:21 uspl-pslaptop init: tty3 main process (2838) killed by TERM signal
Apr  2 16:50:21 uspl-pslaptop init: tty6 main process (2839) killed by TERM signal
Apr  2 16:50:21 uspl-pslaptop avahi-daemon[2496]: Got SIGTERM, quitting.
Apr  2 16:50:21 uspl-pslaptop avahi-daemon[2496]: Leaving mDNS multicast group on interface eth0.IPv4 with address 192.62.143.136.
Apr  2 16:50:21 uspl-pslaptop nmbd[2792]: [2010/04/02 16:50:21,  0] nmbd/nmbd.c:71(terminate)
A
Comment 18 Doug Semler 2010-04-02 21:16:44 UTC
Created attachment 25832 [details]
VBE and i2c dumps kernel 2.6.33.2

For completeness, this is the monitor edid detection from vbe, in addition to i2c dumps of the i915 bus (don't know how useful it is but here it is anyway) when the DVI monitor is attached.

Note, the monitor from vbe on port 0 is the DVI monitor.  Port 2 is the LVDS laptop panel.

As you can see, EDID information from the monitor is possible; and in fact, as I said before, Windows OS can see the external monitor on DVI just fine.

I also plugged the same monitor into the VGA port with this kernel but cannot get into X (X restarts immediately on attempted login, and *ERROR* Attempted i915_gem_madvise_ioctl() on a pinned object are all over the dmesg log...probably a different issue altogether).
Comment 19 Chris Wilson 2010-07-24 08:53:52 UTC
Be worthwhile to check whether there has been any improvements up to 2.6.35-rc6 [I don't think so though]. And then to check the couple of proto-patches  Jesse has for attempting to use the GMBUS i2c for EDID retrieval:

http://lists.freedesktop.org/archives/intel-gfx/2010-July/007457.html
http://lists.freedesktop.org/archives/intel-gfx/2010-July/007458.html

Jesse would appreciate any feedback on whether they improve the fetching or not at all.
Comment 20 Doug Semler 2010-07-26 19:02:18 UTC
(In reply to comment #19)
> Be worthwhile to check whether there has been any improvements up to
> 2.6.35-rc6
> [I don't think so though]. And then to check the couple of proto-patches 
> Jesse
> has for attempting to use the GMBUS i2c for EDID retrieval:
> 
> http://lists.freedesktop.org/archives/intel-gfx/2010-July/007457.html
> http://lists.freedesktop.org/archives/intel-gfx/2010-July/007458.html
> 
> Jesse would appreciate any feedback on whether they improve the fetching or
> not
> at all.

I tried 2.6.35-rc6 with and without the two patches applied and no joy --- I get the same response back about an invalid EDID on the DVI-D port when the digital monitor is plugged.  I should say I don't know what I should look for when it comes to determining whether the gmbus i2c method is attempted, but I did not get a message from the driver stating that the EDID was retrieved via the gmbus when drm.debug = 6 (which is what I would have expected if it was successful).
Comment 21 Chris Wilson 2010-09-11 09:17:58 UTC
There are a couple of patches to improve the choice of ddc port to use with SDVO attached monitors:

commit b1083333de5357577c5ec55df6c7efa17bee41c7
Author: Adam Jackson <ajax@redhat.com>
Date:   Fri Apr 23 16:07:40 2010 -0400

    drm/i915: Fix DDC bus selection for multifunction SDVO

commit b66d842467311ac3434aa19c5c41deaab8295bd0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 12 15:26:41 2010 +0100

    drm/i915/sdvo: Restore guess of the DDC bus in absence of VBIOS

which are in Linus' kernel. Do they fix this issue?
Comment 22 Chris Wilson 2011-01-31 14:48:09 UTC
I believe this is fixed (given the similarity of this bug to the ones already fixed).

Please reopen if not.
Comment 23 shekhar 2011-02-09 21:59:26 UTC
I have 2.6.37-9-desktop #1 SMP PREEMPT 2011-02-08 17:33:03 +0100 i686 i686 i386 GNU/Linux (opensuse 11.3) and still get the EDID errors.:
[  517.309417] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 11
[  517.309424] [drm:drm_edid_block_valid] *ERROR* Raw EDID:
[  517.309431] <3>00 ff ff ff ff ff ff 00 4c 3b ff ff ff ff ff ff  ........L;......
[  517.309437] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309444] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309450] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309456] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309462] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309468] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309474] <3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
[  517.309479] 
[  517.309489] i915 0000:00:02.0: DVI-D-1: EDID block 0 invalid.


Xrandr output:

xrandr -q
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 4096 x 4096
LVDS1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 370mm x 230mm
   1440x900       59.9*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
DVI1 unknown connection (normal left inverted right x axis y axis)
   1024x768       60.0  
   800x600        60.3  
   640x480        59.9  
TV1 disconnected (normal left inverted right x axis y axis)
Comment 24 Chris Wilson 2011-02-09 22:07:13 UTC
How often? Have you verified that is not a hardware fault?
Comment 25 shekhar 2011-02-09 22:48:06 UTC
I believe the hardware is ok. I have dual boot with windows and it works fine with windows.

Note You need to log in before you can comment on or make changes to this bug.