Bug 22761 - Default 60Hz display mode drives LVDS incorrectly
Summary: Default 60Hz display mode drives LVDS incorrectly
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.4 (2008.09)
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: ykzhao
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords: NEEDINFO, patch
Depends on:
Blocks:
 
Reported: 2009-07-13 20:58 UTC by Bryce Harrington
Modified: 2009-09-13 18:53 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Image054.jpg (375.25 KB, image/jpeg)
2009-07-13 20:58 UTC, Bryce Harrington
no flags Details
CurrentDmesg.txt (11.14 KB, text/plain)
2009-07-13 20:58 UTC, Bryce Harrington
no flags Details
XorgLog.txt (102.37 KB, text/plain)
2009-07-13 20:58 UTC, Bryce Harrington
no flags Details
Xrandr.txt (7.81 KB, text/plain)
2009-07-13 20:59 UTC, Bryce Harrington
no flags Details
try the debug patch in which the DPLL MD reg is updated only for SDVO device (878 bytes, patch)
2009-07-14 19:36 UTC, ykzhao
no flags Details | Splinter Review
add the detailed mode debug info related with the output (1.37 KB, patch)
2009-08-13 19:32 UTC, ykzhao
no flags Details | Splinter Review

Description Bryce Harrington 2009-07-13 20:58:21 UTC
Created attachment 27664 [details]
Image054.jpg

Forwarding this bug from Ubuntu reporter Chris Halse Rogers:
https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/398026

[Problem]
Recently for LVDS, the driver sometimes chooses a mode with the preferred resolution but with an inappropriate frequency (60 Hz instead of 50 Hz).

A similar bug (believed to be a dupe) with 85 Hz being selected instead of the more correct 60 Hz is here:
https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/396171

[Original Report]
The latest version of xserver-xorg-video-intel fails to drive my laptop's LVDS display correctly at the default 60Hz refresh rate. It works fine at 50Hz.

Taking a screenshot reveals a normal desktop, so this is a problem somewhere in the scanout.

Attached photo shows the 60Hz display problem - bands of the display are stretched horizontally. It looks pretty cool!

The previous version of xserver-xorg-video-intel (...git20090602) had a bug in which only the preferred mode from the EDID information would be available (https://bugs.freedesktop.org/show_bug.cgi?id=20801). In ...git20090702 this bug is fixed and also other modes are available. The problem seems to be that for LVDS output the driver sometimes chooses a mode with the preferred resolution, but with a higher frequency (85 Hz instead of 60 Hz in bug 396171 and 60 Hz instead of 50 Hz in bug 398026).

ProblemType: Bug
Architecture: amd64
Date: Sat Jul 11 08:31:32 2009
DistroRelease: Ubuntu 9.10
MachineType: LENOVO 7465CTO
Package: xserver-xorg-video-intel 2:2.7.99.901+git20090702.74227141-0ubuntu1
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.31-2-generic root=/dev/mapper/Storage-Ubuntu--Root ro quiet splash crashkernel=384M-2G:64M,2G-:128M
ProcEnviron:
 PATH=(custom, user)
 LANG=en_AU.UTF-8
 SHELL=/bin/zsh
ProcVersionSignature: Ubuntu 2.6.31-2.16-generic
RelatedPackageVersions:
 xserver-xorg 1:7.4+3ubuntu5
 libgl1-mesa-glx 7.5~rc4-1ubuntu3
 libdrm2 2.4.11-1ubuntu1
 xserver-xorg-video-intel 2:2.7.99.901+git20090702.74227141-0ubuntu1
 xserver-xorg-video-ati 1:6.12.99+git20090629.f39cafc5-0ubuntu1
SourcePackage: xserver-xorg-video-intel
Uname: Linux 2.6.31-2-generic x86_64
XorgConf: Error: [Errno 2] No such file or directory: '/etc/X11/xorg.conf'
dmi.bios.date: 04/22/2009
dmi.bios.vendor: LENOVO
dmi.bios.version: 6DET44WW (2.08 )
dmi.board.name: 7465CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr6DET44WW(2.08):bd04/22/2009:svnLENOVO:pn7465CTO:pvrThinkPadX200s:rvnLENOVO:rn7465CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 7465CTO
dmi.product.version: ThinkPad X200s
dmi.sys.vendor: LENOVO
fglrx: Not loaded
system:
 distro: Ubuntu
 architecture: x86_64kernel: 2.6.31-2-generic
Comment 1 Bryce Harrington 2009-07-13 20:58:46 UTC
Created attachment 27665 [details]
CurrentDmesg.txt
Comment 2 Bryce Harrington 2009-07-13 20:58:57 UTC
Created attachment 27666 [details]
XorgLog.txt
Comment 3 Bryce Harrington 2009-07-13 20:59:22 UTC
Created attachment 27667 [details]
Xrandr.txt
Comment 4 Geir Ove Myhr 2009-07-14 06:41:04 UTC
I didn't ask for Xorg.0.log with ModeDebug enabled, because it seems to make no difference with KMS. Is this correct?
Comment 5 ykzhao 2009-07-14 19:36:55 UTC
Created attachment 27702 [details] [review]
try the debug patch in which the DPLL MD reg is updated only for SDVO device

Will you please try the debug patch on the latest kernel(2.6.31-rc3) and see whether the issue still exists?
    In the debug patch it will write the DPLL MD reg only when the output type is SDVO device.

It will be great if you can confirm whether the issue can be reproduced in UMS mode.

Thanks.
Comment 6 Michael Fu 2009-07-27 17:45:57 UTC
ping~
Comment 7 Geir Ove Myhr 2009-07-27 18:04:30 UTC
ykzhao wandered downstream and there are some answers there. I'm summarizing:
- the corruption is gone with kernel 2.6.31-rc3, but the monitor is still driven at a frequency which is higher than what it should be according to the EDID information
- When the patch in comment #5 was applied to 2.6.31-rc2 the corruption went away, but the wrong frequency problem remained.

Oded, who has 85 Hz instead of 60 Hz reports the following intersting behaviour when docking and undocking his laptop: (citing in the rest of this comment)


I applied the patch to the above mentioned kernel and run it. Curiously it does not feature the screen corruption that was the issue of this bug, but it does still changes to 85Hz when docked and back to 60Hz when undocked:

Docked:
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 287mm x 215mm
   1024x768 60.0 + 85.0* 75.0 70.1 60.0 50.0
   832x624 74.6
   800x600 85.1 72.2 75.0 60.3 56.2
   640x480 85.0 72.8 75.0 59.9
   720x400 85.0
   640x400 85.1
   640x350 85.1
DVI1 disconnected (normal left inverted right x axis y axis)

Undocked:
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 287mm x 215mm
   1024x768 60.0*+ 85.0 75.0 70.1 60.0* 50.0
   832x624 74.6
   800x600 85.1 72.2 75.0 60.3 56.2
   640x480 85.0 72.8 75.0 59.9
   720x400 85.0
   640x400 85.1
   640x350 85.1
DVI1 disconnected (normal left inverted right x axis y axis)

Syslog has this to day when docking:
Jul 22 18:02:59 sepiroth kernel: [ 177.915766] usb 1-4: new high speed USB device using ehci_hcd and address 6
Jul 22 18:02:59 sepiroth kernel: [ 178.124472] usb 1-4: configuration #1 chosen from 1 choice
Jul 22 18:02:59 sepiroth kernel: [ 178.244951] hub 1-4:1.0: USB hub found
Jul 22 18:02:59 sepiroth kernel: [ 178.245074] hub 1-4:1.0: 4 ports detected
Jul 22 18:02:59 sepiroth kernel: [ 178.328126] [drm] LVDS-8: set mode 18
Jul 22 18:02:59 sepiroth kernel: [ 323.704995] ACPI: \_SB_.GDCK - undocking
Jul 22 18:02:59 sepiroth kernel: [ 323.908261] usb 1-4: USB disconnect, address 6
Jul 22 18:02:59 sepiroth kernel: [ 324.627003] [drm] LVDS-8: set mode 19
Jul 22 18:02:59 sepiroth kernel: [ 365.583521] [drm] LVDS-8: set mode 1a
Jul 22 18:02:59 sepiroth kernel: [ 381.548982] ACPI: \_SB_.GDCK - docking

But doesn't say anything when undocking. the mode numbers listed are incremented each time I dock, so the next modes will be 1b, 1c and 1d.

Comment 8 ykzhao 2009-08-13 19:32:12 UTC
Created attachment 28612 [details] [review]
add the detailed mode debug info related with the output

Will you please try the debug patch on the xserver and do the test on the 2.6.31-rc2 kernel?
After the system is booted, please attach the output of xorg.log.
Thanks.
Comment 9 ykzhao 2009-08-13 19:35:19 UTC
Sorry for the late response.
The remaining issue is that the monitor is still driven at a frequency which is higher than what it should be according to the EDID information.

Will you please try the debug patch on the latest xserver and do the test on the 2.6.31-rc2/3 kernel?
After the system is booted, please attach the output of xorg.log.
Thanks. 
Comment 10 Michael Fu 2009-08-20 22:05:34 UTC
ping Chris...
Comment 11 ykzhao 2009-09-13 18:53:17 UTC
    The patch is already shipped in Eric's drm-intel-next tree.
commit bb66c5122b4300b475b585fffb811311f39f5431
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Thu Sep 10 15:45:49 2009 +0800

    drm/i915: Write zero to DPLL_MD Reg for non-SDVO output

    From the test in comment #7 it seems that this issue  can't be reproduced on the failing kernel(2.6.31-rc2). So this bug will be marked as resolved.

At the same time there exists the second issue that the monitor is still driven at a frequency which is higher than what it should be according to the EDID information. But there is no response from the bug reporter.

If the second issue still exists, please open a new bug and attach the xorg.0.log after applying the patch in comment #8.

thanks.




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.