Bug 25809 - lvds downclocking breaks on G45/thinkpad T500
Summary: lvds downclocking breaks on G45/thinkpad T500
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: Other All
: medium major
Assignee: ykzhao
QA Contact: Xorg Project Team
URL: http://lkml.org/lkml/2009/12/26/40
: 26037 (view as bug list)
Depends on:
Reported: 2009-12-28 04:52 UTC by Andres Freund
Modified: 2010-07-15 10:39 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:

xrandr -q --verbose (9.41 KB, text/plain)
2009-12-28 04:53 UTC, Andres Freund
no flags Details
/sys/devices/pci0000\:00/0000\:00\:02.0/rom (64.00 KB, application/octet-stream)
2009-12-28 04:53 UTC, Andres Freund
no flags Details
xorg log (41.48 KB, application/octet-stream)
2009-12-28 04:55 UTC, Andres Freund
no flags Details
Use the software method to switch the different refresh rate for LVDS (1.25 KB, patch)
2009-12-28 06:19 UTC, ykzhao
no flags Details | Splinter Review
dmesg output after patch (157.14 KB, application/octet-stream)
2009-12-28 07:12 UTC, Andres Freund
no flags Details
Output of intel_reg_dumper (10.47 KB, text/plain)
2010-01-08 18:46 UTC, Nick Bowler
no flags Details
Output of acpidump (319.67 KB, text/plain)
2010-01-08 18:46 UTC, Nick Bowler
no flags Details

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 

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 
    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]
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

    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.    
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
    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

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

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.

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.