Bug 25809

Summary: lvds downclocking breaks on G45/thinkpad T500
Product: xorg Reporter: Andres Freund <andres>
Component: Driver/intelAssignee: ykzhao <yakui.zhao>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: m.s.tsirkin, nbowler, yakui.zhao
Version: unspecified   
Hardware: Other   
OS: All   
URL: http://lkml.org/lkml/2009/12/26/40
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xrandr -q --verbose
none
/sys/devices/pci0000\:00/0000\:00\:02.0/rom
none
xorg log
none
Use the software method to switch the different refresh rate for LVDS
none
dmesg output after patch
none
Output of intel_reg_dumper
none
Output of acpidump none

Description Andres Freund 2009-12-28 04:52:10 UTC
On 2.6.33-rc1 I noticed that the display of my T500 with a G45 reacts very 
slowly (you can see the text appearing) and colors take a time to "solidify". 
I.e. making a white terminal black takes some seconds.
 
After some bisecting and guessing I recognized that the problem showed up 
after:

commit 18f9ed12f8c977e25d65a16af8e8d73f72417ba1
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Nov 20 03:24:16 2009 +0000

    drm/i915: Enable LVDS downclock feature through EDID.
    
    If more than one mode with the same resolution defined in EDID has different
    refresh rate, it is thought that the downclock is found for LVDS.
    We will program the different FPx0/1 register so that we can select 
dynamically
    between the low and high frequency.
    
    On the g4x platform we will use the CxSR feature to switch the different
    refresh rate if the LVDS downclock feature is supported.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

Setting dev_priv->lvds_downclock_avail = 0 in intel_find_lvds_downclock() 
unsurprisingly avoids the issue.


dmesg, lspci -vvv, config can be found in the referenced lk thread.

As requested the rom, xorg log, and dmesg with drm.debug=0x06 is attached.
Comment 1 Andres Freund 2009-12-28 04:53:01 UTC
Created attachment 32322 [details]
xrandr -q --verbose
Comment 2 Andres Freund 2009-12-28 04:53:48 UTC
Created attachment 32323 [details]
/sys/devices/pci0000\:00/0000\:00\:02.0/rom
Comment 3 Andres Freund 2009-12-28 04:55:24 UTC
Created attachment 32324 [details]
xorg log
Comment 4 ykzhao 2009-12-28 06:19:19 UTC
Created attachment 32328 [details] [review]
Use the software method to switch the different refresh rate for LVDS

Hi,
    Will you please try the attach patch on 2.6.33-rc1/rc2 and see whether the issue still exists?
    Please add the boot option of "drm.debug=0x06" and attach the output of dmesg after test.    
thanks.
Comment 5 Andres Freund 2009-12-28 07:12:43 UTC
Created attachment 32329 [details]
dmesg output after patch

Looks way much better now!
Their still is a slight "blinking" about every second or so (visible only with a darker background).
Comment 6 Nick Bowler 2009-12-28 10:37:30 UTC
I can confirm this issue on my own T500.

The attached patch resolves the update speed issue.  However, I experience another issue with the LVDS downclocking that is not resolved by this patch: it causes the backlight (I think) intensity to become inconsistent.  It seems that whenever the update frequency changes (is that what this feature does?), the backlight briefly becomes slightly brighter and then quickly goes back to normal.

For example, after staring at a completely unchanging image, starting to move the mouse cursor causes a flash, and another flash about 1 second after the mouse cursor stops moving.  The result is extremely distracting.
Comment 7 ykzhao 2010-01-08 06:04:43 UTC
Hi, 
    Can you enter the console mode after adding the boot option of "nomodeset" and attach the output of intel_reg_dumper?
    >intel_reg_dumper is available in intel_gpu_tools package. And the intel_gpu_tools can be found in
  the release under http://xorg.freedesktop.org/archive/individual/app/ or the latest code at git://anongit.freedesktop.org/git/xorg/app/intel-gpu-tools.
Install it by standard procedure: autogen.sh, configure, make, and make install

thanks.
Comment 8 ykzhao 2010-01-08 07:44:46 UTC
will you please attach the output of acpidump on T500 laptop?

Thanks.
Comment 9 Nick Bowler 2010-01-08 18:46:11 UTC
Created attachment 32538 [details]
Output of intel_reg_dumper

I checked out latest Linus git (3c8ad49b015), applied the patch from this bug, booted with nomodeset and then ran intel_reg_dumper followed by acpidump.
Comment 10 Nick Bowler 2010-01-08 18:46:49 UTC
Created attachment 32539 [details]
Output of acpidump
Comment 11 ykzhao 2010-02-07 18:03:33 UTC
The following commit is already shipped:
commit 33814341f22f13cec17e8d7fbf6f7e8000e3efa4
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Jan 14 20:48:02 2010 +0000

    drm/i915: disable LVDS downclock by default

So I will lower the priority of this bug.

Thanks.
Comment 12 Michael Fu 2010-05-05 01:56:00 UTC
*** Bug 26037 has been marked as a duplicate of this bug. ***
Comment 13 Jesse Barnes 2010-07-15 10:39:53 UTC
Should be fixed now that we don't enable this feature by default.

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.