Bug 806091 - HDMI infoframes break LG Flatron display (regression)
Summary: HDMI infoframes break LG Flatron display (regression)
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-nouveau
Version: 20
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Skeggs
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-03-22 21:02 UTC by Ian Pilcher
Modified: 2014-09-13 22:39 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-05 11:55:31 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
dmesg from kernel 3.2.10-3.fc16.x86_64 (works) (502.47 KB, text/plain)
2012-03-22 21:04 UTC, Ian Pilcher
no flags Details
Xorg.0.log from 3.2.10-3.fc16.x86_64 (works) (48.61 KB, text/plain)
2012-03-22 21:05 UTC, Ian Pilcher
no flags Details
dmesg from kernel 3.3.0-4.fc16.x86_64 (shifted) (505.34 KB, text/plain)
2012-03-22 21:05 UTC, Ian Pilcher
no flags Details
Xorg.0.log from 3.3.0-4.fc16.x86_64 (shifted) (50.31 KB, text/plain)
2012-03-22 21:06 UTC, Ian Pilcher
no flags Details
smolt profile (3.47 KB, text/plain)
2012-03-22 21:07 UTC, Ian Pilcher
no flags Details
Picture showing shift (743.96 KB, image/jpeg)
2012-03-22 21:10 UTC, Ian Pilcher
no flags Details
Picture of the 1920x1200 display (672.60 KB, image/jpeg)
2012-03-22 21:11 UTC, Ian Pilcher
no flags Details
Output of "xrandr --verbose" on kernel 3.2.10-3.fc16.x86_64 (works) (10.71 KB, text/plain)
2012-03-26 16:07 UTC, Ian Pilcher
no flags Details
Output of "xrandr --verbose" on kernel 3.3.0-4.fc16.x86_64 (shifted) (13.56 KB, text/plain)
2012-03-26 16:09 UTC, Ian Pilcher
no flags Details
Add a module parameter to disable nouveau HDMI functionality (2.39 KB, patch)
2012-03-27 20:45 UTC, Ian Pilcher
no flags Details | Diff
Add module parameter to disable InfoFrames per-output (4.39 KB, patch)
2012-04-06 04:14 UTC, Ian Pilcher
no flags Details | Diff
Add HDMI-related EDID quirks; enable user-defined quirks (9.38 KB, patch)
2012-05-03 17:49 UTC, Ian Pilcher
no flags Details | Diff
Updated EDID quirks patch (29.95 KB, patch)
2012-08-10 18:59 UTC, Ian Pilcher
no flags Details | Diff
Add the ability for users to define their own EDID quirks (26.29 KB, patch)
2012-11-11 16:37 UTC, Ian Pilcher
no flags Details | Diff
EDID_QUIRK_DISABLE_INFOFRAMES turns off all HDMI-specific functionality (1.48 KB, patch)
2012-11-11 16:38 UTC, Ian Pilcher
no flags Details | Diff
Add EDID quirk for LG L246WP (1.09 KB, patch)
2012-11-11 16:39 UTC, Ian Pilcher
no flags Details | Diff
User-defined EDID quirks patch - Linux 3.7 (26.17 KB, patch)
2013-01-15 17:51 UTC, Ian Pilcher
no flags Details | Diff
Disable HDMI InfoFrames patch - Linux 3.7 (992 bytes, patch)
2013-01-15 17:52 UTC, Ian Pilcher
no flags Details | Diff
Disable InfoFrames for LG L246WP - Linux 3.7 (605 bytes, patch)
2013-01-15 17:53 UTC, Ian Pilcher
no flags Details | Diff
User-defined EDID quirks patch - Linux 3.8 (26.14 KB, patch)
2013-03-18 01:35 UTC, Ian Pilcher
no flags Details | Diff
Disable HDMI InfoFrames patch - Linux 3.8 (992 bytes, patch)
2013-03-18 01:37 UTC, Ian Pilcher
no flags Details | Diff
Disable InfoFrames for LG L246WP - Linux 3.8 (605 bytes, patch)
2013-03-18 01:38 UTC, Ian Pilcher
no flags Details | Diff
Also disable display audio when disabling InfoFrames (655 bytes, patch)
2013-04-22 15:52 UTC, Ian Pilcher
no flags Details | Diff
User-defined EDID quirks patch - Linux 3.15 (27.09 KB, patch)
2014-07-08 18:22 UTC, Ian Pilcher
no flags Details | Diff
Disable HDMI InfoFrames patch - Linux 3.12 (947 bytes, patch)
2014-07-08 18:23 UTC, Ian Pilcher
no flags Details | Diff
Disable InfoFrames for LG L246WP - Linux 3.12 (641 bytes, patch)
2014-07-08 18:24 UTC, Ian Pilcher
no flags Details | Diff
User-defined EDID quirks patch - Linux 3.16 (27.36 KB, patch)
2014-09-13 22:38 UTC, Ian Pilcher
no flags Details | Diff
Disable HDMI InfoFrames patch - Linux 3.16 (943 bytes, patch)
2014-09-13 22:39 UTC, Ian Pilcher
no flags Details | Diff

Description Ian Pilcher 2012-03-22 21:02:57 UTC
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]".

Comment 1 Ian Pilcher 2012-03-22 21:04:18 UTC
Created attachment 572083 [details]
dmesg from kernel 3.2.10-3.fc16.x86_64 (works)

Comment 2 Ian Pilcher 2012-03-22 21:05:00 UTC
Created attachment 572084 [details]
Xorg.0.log from 3.2.10-3.fc16.x86_64 (works)

Comment 3 Ian Pilcher 2012-03-22 21:05:42 UTC
Created attachment 572085 [details]
dmesg from kernel 3.3.0-4.fc16.x86_64 (shifted)

Comment 4 Ian Pilcher 2012-03-22 21:06:20 UTC
Created attachment 572086 [details]
Xorg.0.log from 3.3.0-4.fc16.x86_64 (shifted)

Comment 5 Ian Pilcher 2012-03-22 21:07:06 UTC
Created attachment 572087 [details]
smolt profile

Comment 6 Ian Pilcher 2012-03-22 21:10:03 UTC
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).

Comment 7 Ian Pilcher 2012-03-22 21:11:41 UTC
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.

Comment 8 Ian Pilcher 2012-03-26 16:07:57 UTC
Created attachment 572789 [details]
Output of "xrandr --verbose" on kernel 3.2.10-3.fc16.x86_64 (works)

Comment 9 Ian Pilcher 2012-03-26 16:09:02 UTC
Created attachment 572790 [details]
Output of "xrandr --verbose" on kernel 3.3.0-4.fc16.x86_64 (shifted)

Comment 10 Ian Pilcher 2012-03-27 05:51:32 UTC
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

Comment 11 Ian Pilcher 2012-03-27 20:45:53 UTC
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.

Comment 12 Ian Pilcher 2012-04-03 21:26:43 UTC
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?

Comment 13 Ian Pilcher 2012-04-04 16:25:57 UTC
This problem also occurs with the Nvidia proprietary driver.

Comment 14 Ian Pilcher 2012-04-06 04:14:47 UTC
Created attachment 575607 [details]
Add module parameter to disable InfoFrames per-output

Comment 15 Ian Pilcher 2012-04-17 03:59:12 UTC
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.

Comment 16 Ian Pilcher 2012-04-23 01:57:19 UTC
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.

Comment 17 Ian Pilcher 2012-05-03 17:49:57 UTC
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?

Comment 18 Ian Pilcher 2012-08-10 18:59:18 UTC
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!

Comment 19 Ian Pilcher 2012-11-11 16:37:27 UTC
Created attachment 642917 [details]
Add the ability for users to define their own EDID quirks

Comment 20 Ian Pilcher 2012-11-11 16:38:28 UTC
Created attachment 642918 [details]
EDID_QUIRK_DISABLE_INFOFRAMES turns off all HDMI-specific functionality

Comment 21 Ian Pilcher 2012-11-11 16:39:31 UTC
Created attachment 642919 [details]
Add EDID quirk for LG L246WP

Comment 22 Ian Pilcher 2012-11-11 16:40:59 UTC
Posting final patch set that was sent to dri-devel for posterity.  Unfortunately, I am unable to grok the "unions considered harmful" meme.

Comment 23 Ian Pilcher 2013-01-15 17:51:50 UTC
Created attachment 678930 [details]
User-defined EDID quirks patch - Linux 3.7

Comment 24 Ian Pilcher 2013-01-15 17:52:44 UTC
Created attachment 678931 [details]
Disable HDMI InfoFrames patch - Linux 3.7

Comment 25 Ian Pilcher 2013-01-15 17:53:41 UTC
Created attachment 678932 [details]
Disable InfoFrames for LG L246WP - Linux 3.7

Comment 26 Ian Pilcher 2013-03-18 01:35:48 UTC
Created attachment 711667 [details]
User-defined EDID quirks patch - Linux 3.8

Comment 27 Ian Pilcher 2013-03-18 01:37:08 UTC
Created attachment 711668 [details]
Disable HDMI InfoFrames patch - Linux 3.8

Comment 28 Ian Pilcher 2013-03-18 01:38:07 UTC
Created attachment 711669 [details]
Disable InfoFrames for LG L246WP - Linux 3.8

Comment 29 Ian Pilcher 2013-04-22 15:52:48 UTC
Created attachment 738572 [details]
Also disable display audio when disabling InfoFrames

Comment 30 Fedora End Of Life 2013-12-21 08:34:16 UTC
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.

Comment 31 Fedora End Of Life 2014-02-05 11:55:34 UTC
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.

Comment 32 Ian Pilcher 2014-07-08 18:22:14 UTC
Created attachment 916523 [details]
User-defined EDID quirks patch - Linux 3.15

Updated patch set for kernel 3.15.

Comment 33 Ian Pilcher 2014-07-08 18:23:29 UTC
Created attachment 916524 [details]
Disable HDMI InfoFrames patch - Linux 3.12

Comment 34 Ian Pilcher 2014-07-08 18:24:36 UTC
Created attachment 916525 [details]
Disable InfoFrames for LG L246WP - Linux 3.12

Comment 35 Ian Pilcher 2014-09-13 22:38:18 UTC
Created attachment 937268 [details]
User-defined EDID quirks patch - Linux 3.16

Comment 36 Ian Pilcher 2014-09-13 22:39:52 UTC
Created attachment 937269 [details]
Disable HDMI InfoFrames patch - Linux 3.16


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