Bug 13308

Summary: [855GM] LVDS no display on ThinkPad G40
Product: xorg Reporter: Pierre Fortin <pf>
Component: Driver/intelAssignee: Hong Liu <hong.liu>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: 7.2 (2007.02)   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Original xorg.conf from fresh install of Mandriva 2008.0
none
Xorg.0.log from an early failure before debugging attempts.
none
patch to try none

Description Pierre Fortin 2007-11-19 17:06:07 UTC
Mandriva 2008.0:
libxorg-x11-devel-7.2.0-2mdv2008.0
xorg-x11-75dpi-fonts-7.2.0-2mdv2008.0
x11-server-xorg-1.3.0.0-24mdv2008.0

This laptop runs Mandriva 2007.1 and WinXP just fine, though I've never had the opportunity to try an external monitor until I was forced to with this version of xorg...  After installation of Mandriva 2008.0, all I can get is a backlight; but no graphics on the laptop screen.  The virtual ttys are OK and can be switched into and out.  Connecting an external monitor gives me a working desktop.

More info from my initial report can be seen at http://forum.mandriva.com/viewtopic.php?p=401298

System info:
# lshw -C display
*-display:0
description: VGA compatible controller
product: 82852/855GM Integrated Graphics Device
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm vga bus_master cap_list
configuration: latency=0
*-display:1 UNCLAIMED
description: Display controller
product: 82852/855GM Integrated Graphics Device
vendor: Intel Corporation
physical id: 2.1
bus info: pci@0000:00:02.1
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm cap_list
configuration: latency=0

lspci gives same info:
00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 01) (prog-if 00 [VGA])
Subsystem: IBM Unknown device 0543
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at e0000000 (32-bit, prefetchable) [size=128M]
Memory at d0000000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 1800 [size=8]
Capabilities: [d0] Power Management version 1

00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 01)
Subsystem: IBM Unknown device 0543
Flags: fast devsel
Memory at e8000000 (32-bit, prefetchable) [disabled] [size=128M]
Memory at d0080000 (32-bit, non-prefetchable) [disabled] [size=512K]
Capabilities: [d0] Power Management version 1

# xrandr -q
Screen 0: minimum 320 x 200, current 1152 x 768, maximum 1152 x 1152
VGA connected 1152x768+0+0 (normal left inverted right x axis y axis) 360mm x 270mm
1152x768 54.8*
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 305mm x 228mm
1024x768 60.0*+ 60.0
800x600 60.3
640x480 59.9

So both screen should be overlapping ("+0+0" in both cases), and since the maximum is 1152x1152, I can only move the screens down about 300 pixels... so what happens if I do that..? Interesting...

Also, I would have expected LVDS before VGA; note that the reverse is true.

HMMMMM....  just realized that the hardware may be the revers of what xorg expects on this box...  

But...  this strangeness does not seem to make sense regardless of which comes first:

# xrandr --output LVDS --pos 0x300

1. Turns off the laptop backlight (screen still black) for under a second.
2. Stretches the desktop background vertically down. If the background was:
A
B
C
D
after the command, the screen still shows the top of the A and the D is now off screen with A, B and C stretched.

# xrandr --output VGA --pos 0x300

1. The external monitor goes black momentarily/
2. In this case, a window spanning AB would now only show the bottom of the window (B).

In both situations, the taskbar remains at the bottom of the VGA screen (ext.mon.).

Assuming I'm reading the intent of the xrandr settings correctly, the results are not as expected... 1. the use of the --pos is to MOVE the screen, not stretch it. 2. The command seems to affect the correct screen; but the results are wrong, no?.

After reading "man xrandr", I was expecting to see some video appear on the laptop screen; until I realized the virtual screen was only 1152x1152 which would have made both screens nearly identical.
Comment 1 Gordon Jin 2007-11-19 18:15:22 UTC
Please attach your xorg.conf and Xorg.0.log.
Comment 2 Pierre Fortin 2007-11-19 19:52:38 UTC
Created attachment 12639 [details]
Original xorg.conf from fresh install of Mandriva 2008.0
Comment 3 Pierre Fortin 2007-11-19 19:55:30 UTC
Created attachment 12640 [details]
Xorg.0.log from an early failure before debugging attempts.
Comment 4 Pierre Fortin 2007-11-22 14:15:37 UTC
FWIW...  another oddity is that when I switch to a VTY, the laptop's backlight turns off; then back on when I return to the X display.  (Still using the external monitor to be able to work.)
Comment 5 Hong Liu 2007-11-27 20:57:02 UTC
Created attachment 12754 [details] [review]
patch to try
Comment 6 Hong Liu 2007-11-27 20:57:49 UTC
(In reply to comment #3)
> Created an attachment (id=12640) [details]
> Xorg.0.log from an early failure before debugging attempts.

(II) intel(0): Modeline "1024x768"x60.0   65.00  1024 1048 1696 1344  768 771 777 806 -hsync -vsync (48.4 kHz)

It seems there is a bug in your EDID data.
We have hsync_end(1696) > htotal(1344) which is obviously wrong.

I've written a small patch to ingore the detail mode timing from EDID if hysnc_end > htotal. This should make the LVDS choose the bios mode instead.
Comment 7 Matthias Hopf 2007-12-05 08:51:35 UTC
Fixed in git c6cfcd408df3e44d0094946c0a7d2fa944b4d2d1

Thanks
Comment 8 Pierre Fortin 2007-12-08 05:52:46 UTC
How do I get my hands on updated code to verify this fix..?  Also very interested as I'm developing a crick in my neck from having to keep my head turned at all times to view the external monitor...  :/
Comment 9 Pierre Fortin 2007-12-08 07:05:10 UTC
Doing some more digging, I found EDID commands and here is the output...

# monitor-edid -v
probind EDID using VBE
vbe: BIOS chksum wrong
  vbe: int 10h points to c000:0014: e9 21 1e 36 40 00 20 0b
VBE version: 3.0, oem version = 1.0
Memory: 8000k
OEM name: Intel(r)852GM/852GME/855GM/855GME Graphics Chip Accelerated VGA BIOS
Vendor name: Intel Corporation
Product name: Intel(r)852GM/852GME/855GM/855GME Graphics Controller
Product revision: Hardware Version 0.0
parsing EDID from /proc/acpi/video/VID_PCI0/CRT0/EDID
EISA ID: API9718
Screen size: 36.0 cm x 27.0 cm (17.72 inches, aspect ratio 4/3 or 5/4 = 1.33)
Gamma: 2.76
Analog signal
Standard resolution: 640x480 @ 60 Hz (established timing)
Standard resolution: 640x480 @ 75 Hz (established timing)
Standard resolution: 720x400 @ 70 Hz (established timing)
Standard resolution: 800x600 @ 72 Hz (established timing)
Standard resolution: 800x600 @ 75 Hz (established timing)
Standard resolution: 1024x768 @ 60 Hz (established timing)
Standard resolution: 1024x768 @ 70 Hz (established timing)
Standard resolution: 1024x768 @ 75 Hz (established timing)
Standard resolution: 1280x1024 @ 75 Hz (established timing)
Standard resolution: 640x480 @ 85 Hz, ratio 4/3
Standard resolution: 800x600 @ 85 Hz, ratio 4/3
Standard resolution: 1024x768 @ 85 Hz, ratio 4/3
Standard resolution: 1280x1024 @ 85 Hz, ratio 5/4
parsing EDID from /proc/acpi/video/VID_PCI0/LCD0/EDID
Name: ThinkPad LCD 1024x768
EISA ID: IBM0a55
Screen size: 33.0 cm x 24.0 cm (16.06 inches, aspect ratio 4/3 or 3/2 = 1.38)
Gamma: 1
Digital signal
Standard resolution: 640x480 @ 60 Hz (established timing)
Standard resolution: 720x400 @ 70 Hz (established timing)
Standard resolution: 800x600 @ 60 Hz (established timing)
Standard resolution: 1024x768 @ 60 Hz (established timing)

        # Monitor preferred modeline (60.0 Hz vsync, 48.4 kHz hsync, ratio 4/3)
        ModeLine "1024x768" 65 1024 1048 1184 1344 768 771 777 806 -hsync +vsync


lsmod shows i915...  if I use "monitor-probe-using-X i915", I get:
  Fatal server error:
  no screens found

while "monitor-probe-using-X i810" gives:
  EISA ID: HTC1c66
  Screen size: 30.5 cm x 22.8 cm (14.99 inches, aspect ratio 4/3 = 1.34)
  Gamma: 2.2
  Digital signal

        HorizSync 42-48
        VertRefresh 42-63

        # Monitor preferred modeline (60.0 Hz vsync, 48.4 kHz hsync, ratio 4/3)
        ModeLine "1024x768" 65 1024 1048 1696 1344 768 771 777 806 -hsync -vsync
  EISA ID: API9718
  Screen size: 36.0 cm x 27.0 cm (17.72 inches, aspect ratio 4/3 or 5/4 = 1.33)
  Gamma: 2.76
  Analog signal

which agrees with your finding (NICE CATCH!!! :)

However, shouldn't this be resolved at the source (EDID) too...?

Any chance the "BIOS chksum wrong" is related..?  I've had this through various BIOS upgrades; but Mandriva 2008.0 was the first time for this video bug...
Will see if there's a newer BIOS...
Comment 10 Pierre Fortin 2007-12-08 07:08:36 UTC
Nope...  BIOS is up to date

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.