Description of problem: After upgrading from kernel 3.2.10-3.fc16.x86_64 to kernel 3.3.0-4.fc16.x86_64, the image on my 1920x1200 LCD display is shifted up and to the left -- approximately 1 centimeter and 1 inch respectively. To be very clear, this display worked just fine with kernel-3.2.10-3.fc16.x86_64. The 1920x1200 display is attached to the DisplayPort port on my ThinkPad T510. I also have a 1280x1024 LCD connected to the VGA port; the problem does occur when the 1280x1024 LCD is not connected. The problem does not occur when I connect the 1920x1200 display to the VGA port on the ThinkPad. The problem also doesn't occur with a co-workers 1920x1080 display; I don't have another 1920x1200 display available to test. Version-Release number of selected component (if applicable): kernel-3.3.0-4.fc16.x86_64 How reproducible: 100% Steps to Reproduce: 1. Boot kernel 3.3.0-4.fc16.x86_64 with this hardware setup Actual results: Plymouth prompt for LUKS passphrase will be shifted, as will KDM login screen, etc. Expected results: Display should not be shifted (i.e. return to 3.2.10-3.fc16.x86_64 behavior) Additional info: lspci identifies the GPU in this system as "nVidia Corporation GT218 [NVS 3100M]".
Created attachment 572083 [details] dmesg from kernel 3.2.10-3.fc16.x86_64 (works)
Created attachment 572084 [details] Xorg.0.log from 3.2.10-3.fc16.x86_64 (works)
Created attachment 572085 [details] dmesg from kernel 3.3.0-4.fc16.x86_64 (shifted)
Created attachment 572086 [details] Xorg.0.log from 3.3.0-4.fc16.x86_64 (shifted)
Created attachment 572087 [details] smolt profile
Created attachment 572089 [details] Picture showing shift This picture was taken with my cell phone. It shows a browser window spanning my two screens. You can see how the image on the right display (1920x1200) is shifted up (cutting off the window title bar) and to the left (cutting off part of the web page).
Created attachment 572090 [details] Picture of the 1920x1200 display Cell phone picture of the 1920x1200 display. You can see the black areas on the right and bottom.
Created attachment 572789 [details] Output of "xrandr --verbose" on kernel 3.2.10-3.fc16.x86_64 (works)
Created attachment 572790 [details] Output of "xrandr --verbose" on kernel 3.3.0-4.fc16.x86_64 (shifted)
I have bisected this issue, and it appears to be triggered by this commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b2337f2333c0bdefc9b230da17ed7188e4eb7f6c commit b2337f2333c0bdefc9b230da17ed7188e4eb7f6c Author: Ben Skeggs <bskeggs> Date: Wed Oct 5 14:59:14 2011 +1000 drm/nouveau/hdmi: enable sending of avi/audio infoframes Signed-off-by: Ben Skeggs <bskeggs> :040000 040000 edc0d0e6f57362c38edb0845cf19ee076a045f0b 364748b5ea73b322991331396fb218d8afd65fe7 M drivers
Created attachment 573177 [details] Add a module parameter to disable nouveau HDMI functionality The attached patch adds a module parameter (nouveau.hdmi_disable) which disables all of the new HDMI-related functionality in 3.3. This makes my 1920x1200 display work properly again.
I've been playing around with different hardware, kernels, and operating systems, and I've gathered a few interesting data points: 1) The problem does *not* occur when Windows 7 is used with the exact same hardware. 2) The problem also did *not* occur when I tried Fedora 16 on a co-worker's T500 with an ATI GPU (ATI Mobility Radeon HD3650). (I'm not sure, however, if the radeon driver sends InfoFrames with this GPU.) 3) The problem *did* occur when I tried Fedora 16 on a co-worker's T510 with Intel graphics (Intel Corporation Core Processor Integrated Graphics Controller (rev 02)) 4) I also saw the problem with RHEL 6 on a co-workers X220 with Intel graphics (Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)). (This actually makes sense, because the Intel driver has had InfoFrame support for a while.) The fact that the problem also occurs with Intel GPUs confirms that there's something up with this display. The EDID info says it was made in 2007, so it's very possible that it was a first attempt at HDMI support that isn't as robust displays manufactured more recently. (I also find it a bit odd that a display of this vintage has an HDMI input, but no DVI.) OTOH, the fact that neither Windows nor (possibly) the radeon driver have this problem also seems to indicate that the nouveau and Intel (i915?) drivers may well be doing something somewhat wrong. I can't think of any way to figure it out without specialized HDMI testing equipment. So ... I continue to believe that module parameters (one for nouveau, one for i915) are the way to go here. I plan on trying to re-do the nouveau patch to work on a per-output basis, and then create a patch for i915 that does the same thing. Thoughts?
This problem also occurs with the Nvidia proprietary driver.
Created attachment 575607 [details] Add module parameter to disable InfoFrames per-output
So it looks like I'm not the only person to ever experience this problem with this display: http://www.voetsjoeba.com/misc/edid/ In fact, it seems that there are at least some Viewsonic displays that have a similar problem: http://forums.nvidia.com/index.php?showtopic=166390 And as post #4 at that second link indicates, NVIDIA did actually implement an EDID blacklist.
After communicating with Ben offline, I am going to work on a new patch that uses EDID quirks to disable audio and/or all InfoFrames.
Created attachment 581917 [details] Add HDMI-related EDID quirks; enable user-defined quirks This is the "first draft" of an EDID quirk-based approach to solving this problem. I intend to perform a bit of cleanup and break it up into a series of separate patches, but I'm posting it here for any comments about the approach. The patch does the following: * Changes the vendor field of struct edid_quirk to an array, rather than a pointer. (This has already been sent to the dri-devel list.) * Adds two new quirks EDID_QUIRK_DISABLE_INFOFRAMES and EDID_QUIRK_NO_AUDIO. This first quirk causes drm_detect_hdmi_monitor to return false; the second causes drm_detect_monitor_audio to return false. * Logs the EDID vendor and model of connected monitors. * Adds an edid_quirks parameter to the drm module, for user-defined quirks. With this patch, my display works when I add drm.edid_quirks=GSM:0x563f:0x180 to my kernel command line. (0x80, EDID_QUIRK_DISABLE_INFOFRAMES, makes it work with the nouveau driver; 0x100, EDID_QUIRK_NO_AUDIO, makes it work with the i915 driver. I.e., the i915 driver is sending audio InfoFrames even when drm_detect_hdmi_monitor returns false; bug?) Thoughts?
Created attachment 603613 [details] Updated EDID quirks patch Updated patch: - Adds new quirks to disable HDMI InfoFrames or HDMI audio - Adds quirk for LG L246WP display - Adds module parameter and sysfs interface to modify EDID quirks list I have also sent this to the dri-devel list. Any assistance in getting this pushed upstream would be appreciated. (I'm getting really tired of having to patch/rebuild every kernel package that comes out!) Thanks!
Created attachment 642917 [details] Add the ability for users to define their own EDID quirks
Created attachment 642918 [details] EDID_QUIRK_DISABLE_INFOFRAMES turns off all HDMI-specific functionality
Created attachment 642919 [details] Add EDID quirk for LG L246WP
Posting final patch set that was sent to dri-devel for posterity. Unfortunately, I am unable to grok the "unions considered harmful" meme.
Created attachment 678930 [details] User-defined EDID quirks patch - Linux 3.7
Created attachment 678931 [details] Disable HDMI InfoFrames patch - Linux 3.7
Created attachment 678932 [details] Disable InfoFrames for LG L246WP - Linux 3.7
Created attachment 711667 [details] User-defined EDID quirks patch - Linux 3.8
Created attachment 711668 [details] Disable HDMI InfoFrames patch - Linux 3.8
Created attachment 711669 [details] Disable InfoFrames for LG L246WP - Linux 3.8
Created attachment 738572 [details] Also disable display audio when disabling InfoFrames
This message is a reminder that Fedora 18 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 18. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '18'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 18's end of life. Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 18 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior to Fedora 18's end of life. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 18 changed to end-of-life (EOL) status on 2014-01-14. Fedora 18 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.
Created attachment 916523 [details] User-defined EDID quirks patch - Linux 3.15 Updated patch set for kernel 3.15.
Created attachment 916524 [details] Disable HDMI InfoFrames patch - Linux 3.12
Created attachment 916525 [details] Disable InfoFrames for LG L246WP - Linux 3.12
Created attachment 937268 [details] User-defined EDID quirks patch - Linux 3.16
Created attachment 937269 [details] Disable HDMI InfoFrames patch - Linux 3.16