Bug 15109
Summary: | i945GM fails to detect EDID on DVI port | ||
---|---|---|---|
Product: | Drivers | Reporter: | Doug Semler (dougsemler) |
Component: | Video(DRI - Intel) | Assignee: | drivers_video-dri-intel (drivers_video-dri-intel) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | chris, hramrach, wildshekhar, yakui.zhao |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 2.6.33-rc5 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
Output of lspci -vxxx
Output of dmidecode Output of dmesg with drm.debug=0x6 Dump of /sys/.../rom dmesg output of kernel 2.6.31 dmesg output of kernel 2.6.33-rc3 drm.debug=0x6 xorg.log with i915.modeset=0 dmesg output of kernel 2.6.33.2 dmesg output of kernel 2.6.34-rc3-00121-g42be79e VBE and i2c dumps kernel 2.6.33.2 |
Created attachment 24677 [details]
Output of dmidecode
Created attachment 24678 [details]
Output of dmesg with drm.debug=0x6
Created attachment 24679 [details]
Dump of /sys/.../rom
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. Hi, Doug Do you have an opportunity to try another DVI-D monitor and see whether the issue still happens? Thanks. (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. 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. 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
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
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).
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 Hmm, in 2.6.33-rc6 the patch is already applied so it would be a different issue then, sorry. 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 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 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. 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
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
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).
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. (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). 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? I believe this is fixed (given the similarity of this bug to the ones already fixed). Please reopen if not. 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) How often? Have you verified that is not a hardware fault? I believe the hardware is ok. I have dual boot with windows and it works fine with windows. |
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...