Bug 9076 - 945GM: 1440x900 panel setup fails
Summary: 945GM: 1440x900 panel setup fails
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Eric Anholt
QA Contact:
: 10260 (view as bug list)
Depends on:
Blocks: 10102
  Show dependency treegraph
Reported: 2006-11-18 12:54 UTC by Joshua J. Berry
Modified: 2007-03-28 21:03 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:

Xorg.log (46.69 KB, text/plain)
2006-11-18 12:54 UTC, Joshua J. Berry
no flags Details
Xorg.log r2 (45.40 KB, text/plain)
2006-12-02 13:36 UTC, Joshua J. Berry
no flags Details
xf86-video-intel-VBIOS (64.00 KB, application/octet-stream)
2006-12-11 09:17 UTC, Joshua J. Berry
no flags Details
Xorg.log r3 (61.73 KB, text/plain)
2006-12-19 20:58 UTC, Joshua J. Berry
no flags Details
Xorg.log r4 (65.17 KB, text/plain)
2007-01-02 21:50 UTC, Joshua J. Berry
no flags Details
Xorg.log r5 (64.88 KB, text/plain)
2007-01-05 22:49 UTC, Joshua J. Berry
no flags Details
Xorg.log r6 (64.71 KB, text/plain)
2007-02-07 14:47 UTC, Joshua J. Berry
no flags Details
Xorg.log r7 (62.60 KB, text/plain)
2007-03-01 20:28 UTC, Joshua J. Berry
no flags Details
Xorg.log r8 partial (50.33 KB, text/plain)
2007-03-08 15:47 UTC, Joshua J. Berry
no flags Details
Xorg log with 1.9.92 + patches (68.86 KB, text/plain)
2007-03-21 00:48 UTC, Andrew McMillan
no flags Details

Description Joshua J. Berry 2006-11-18 12:54:03 UTC
I'm working with a recent checkout of the modesetting branch of the i810 video 
driver (head 7a7bb331e10498e5b8ccec58130bb23334d36562).  I'm working on a Dell 
Inspiron E1405 laptop, with Xorg server version 1.1.1.

When I start X, all I get is a black screen -- I don't see the crosshatch test 
pattern I would expect to see from just running the X server.  I can switch 
back and forth between the text console and the X server just fine, and I can 
Ctrl+Alt+Backspace to kill the X server.  But when I'm in graphical mode, I 
see only blackness.

(Also, see my email to the xorg@lists.fdo mailing list: "Intel Graphics on 
x86_64: Video modes", dated Nov 17th.)

I'll attach my Xorg.log momentarily.
Comment 1 Joshua J. Berry 2006-11-18 12:54:29 UTC
Created attachment 7825 [details]
Comment 2 Gordon Jin 2006-11-26 21:30:05 UTC
I'm not seeing this problem on my 64-bit G965 system, either with current head 
of modesetting, or the head Joshua was using.
Comment 3 Eric Anholt 2006-11-29 15:26:30 UTC
Your version of the driver is missing some interesting debugging output.  Could
you update and post a new log?
Comment 4 Joshua J. Berry 2006-12-02 13:36:20 UTC
Created attachment 7945 [details]
Xorg.log r2

Updated to git head 81dde11d419c8f9198ab3502d9813d66d0bc6d6d.  I'm still seeing
the same symptoms (using the internal display, with no external monitor
connected).  The display goes blank (but the backlight is on).	This time,
though, when Ctrl+Alt+Backspacing to kill the X server, instead of restoring
the original text video mode, the screen's backlight turns off.

Hope the new logfile helps.  Thanks for looking into this.
Comment 5 Eric Anholt 2006-12-06 11:05:52 UTC
OK, a few things I was concerned about looked good there.  Could you flip the
"if (0)" in i830_bios.c to "if (1)" and attach the resulting

(oh, also, clearing the NEEDINFO state helps make sure I see the bug again)

Gordon: this bug is about LVDS support, so you wouldn't see it on a desktop system.
Comment 6 Joshua J. Berry 2006-12-11 09:17:19 UTC
Created attachment 8060 [details]

Video BIOS dump, as requested.

I updated to fde52de870c84821ab457e17634c334a10cf71ab.
Comment 7 Eric Anholt 2006-12-11 14:33:34 UTC
What resolution is your panel supposed to be?  I thought we might have a h/vsync
polarity issue, but looking at your bios it seems confused as to whether you've
got 1024x768 or 1440x900.
Comment 8 Joshua J. Berry 2006-12-11 14:50:51 UTC
The builtin native flatpanel resolution is 1440x900.

Interestingly enough, though ... using the 1.7.3 release, I can only drive my 
1600x1200 external monitor at 1024x768.  I wonder if those two things are 
Comment 9 Eric Anholt 2006-12-19 16:19:37 UTC
OK, thanks.  My guess was wrong.  However, in the meantime we've done a massive
overhaul to the mode setting paths that may help.
Comment 10 Joshua J. Berry 2006-12-19 20:58:34 UTC
Created attachment 8172 [details]
Xorg.log r3

Updated to 2ef4c5e8f6444aad192304e5a2f7a0c77bfb917d, and I'm still seeing the
same symptoms as before.  New Xorg.log is attached.
Comment 11 Joshua J. Berry 2007-01-02 21:50:36 UTC
Created attachment 8280 [details]
Xorg.log r4

Any more ideas on this?  I've updated to head
d960deab39eef91fb82b9f23118323aeb4c9c63e, and I'm still not seeing improvement.
Comment 12 Eric Anholt 2007-01-04 17:12:08 UTC
Not sure if this'll help, but could you try changing I9XX_P2_LVDS_SLOW_LIMIT in
i830_display.c to 100000 -- your LVDS reg sounds like it's in dual-channel mode,
but we're setting things up for single-channel.
Comment 13 Joshua J. Berry 2007-01-05 22:49:47 UTC
Created attachment 8308 [details]
Xorg.log r5

I changed the #define and recompiled/reinstalled.  Still no luck,
unfortunately. :-/  New Xorg.log (with the #define changed) is attached.

I don't see too much difference between this one and the previous, but I don't
understand video drivers enough to know what's significant and what's not, so
I'll attach it anyway. ;)

Thanks again for taking the time to troubleshoot this.
Comment 14 Joshua J. Berry 2007-02-07 14:47:40 UTC
Created attachment 8628 [details]
Xorg.log r6

Updated to 44eacf2323454e26b535cc5a4f0789cb0ff0e7fb.  Still seeing the same symptoms.  New Xorg.log attached.

I notice that this time, there was one line in there that looked rather suspicious to me:

(EE) intel(0): I830 Vblank Pipe Setup Failed 0
Comment 15 Eric Anholt 2007-02-26 15:56:10 UTC
From the r5 log, it looks like we didn't program the fast-mode clock in.  So, I'm wondering if you could try the same change in the current code (#define I9XX_P2_LVDS_SLOW_LIMIT 100000), and if that doesn't work, put an ErrorF("dpll %08x\n", dpll) at the end of i830_crtc_mode_set() to make sure we're trying to set the clock as expected.
Comment 16 Joshua J. Berry 2007-03-01 20:28:10 UTC
Created attachment 8932 [details]
Xorg.log r7

Updated to d5df52be59...

Still no love.  New Xorg.log (with the dpll values, and the LVDS change, as requested) is attached.

I note that in this log, the BIOS and the driver seem to disagree about the H/VSync polarity.  (Or at least, one gives a modeline with "-hsync -vsync", and the other doesn't.)  I don't remember seeing that before.  I wonder if maybe it's an issue after all.
Comment 17 Joshua J. Berry 2007-03-01 20:31:10 UTC
hmm.  I just now noticed the Hardware type on this bug was set incorrectly.  This is an Intel Core 2 Duo machine running in 64-bit mode, not an IA-32 machine.
Comment 18 Eric Anholt 2007-03-08 14:44:41 UTC
Sorry, I read the wrong line of the log.  The limit I needed you to set was 90000, rather than 100000 (your chosen clock is 100000, but the target was 95000ish).  I'll check if we can set that limit generally, if this works for you.
Comment 19 Joshua J. Berry 2007-03-08 15:47:36 UTC
Created attachment 9052 [details]
Xorg.log r8 partial

Progress!  Sort of ... it did something different this time, anyway. ;)

I've updated to 14ee9195d... on master, with the limit changed as you requested.

X starts and displays random garbage (garbage at 1440x900, at least), and then hard-locks the machine.  I couldn't reboot even using Alt+SysRq.

I've attached the Xorg.log, though it appears to end abruptly.  I don't know how much of it made it to disk before the machine crashed.  I tried to Alt+SysRq+Sync before rebooting, but I suspect that didn't work either.
Comment 20 Eric Anholt 2007-03-08 16:25:20 UTC
That log looked pretty good, though I'm confused as to how we could have hard-locked things.  Could you try removing your VideoRam line?
Comment 21 Joshua J. Berry 2007-03-08 17:04:30 UTC
Tried removing the VideoRam line, got the same results.  Tried commenting out the other Option lines in the driver section, and commenting out the HorizSync and VertRefresh options as well, still same results.  The screen displays garbage, and the machine hard-locks.
Comment 22 Eric Anholt 2007-03-13 16:23:08 UTC
New code in master may help with mysterious issues like this, so please try again.
Comment 23 Gordon Jin 2007-03-14 19:36:30 UTC
The bug priority was upgraded (P2->high) with the bugzilla configuration change.
I'm Changing the priority back to the normal one.
Sorry for the spam.
Comment 24 Joshua J. Berry 2007-03-14 21:39:30 UTC
Seems mostly happy now with the I9XX_P2_LVDS_SLOW_LIMIT set to 90000.

There are two other issues, but they're probably not related to this bug: First (and most worrisome), the X server ( crashes whenever the display gets reset (e.g. by kdm on logout).  Second, DRI doesn't seem to be working, so OpenGL is totally unaccelerated.  Would you like me to file separate bug reports for these, or...?

Thanks a lot for the help!
Comment 25 Erich Schubert 2007-03-15 16:57:11 UTC
setting I9XX_P2_LVDS_SLOW_LIMIT to 90000
helped me with Debian bug http://bugs.debian.org/415061
(Dell Inspiron 640m, Intel 945GM, 1400x900 panel, Core Duo)
Comment 26 Eric Anholt 2007-03-20 13:48:54 UTC
OK, could you test the code in master at this point?  It should fix things automatically.
Comment 27 Andrew McMillan 2007-03-21 00:48:35 UTC
Created attachment 9242 [details]
Xorg log with 1.9.92 + patches

This is not using a complete update to current master.  The following post 1.9.92 patches have been applied to a 1.9.92 debian source archive:

 - Move vendor ID check in the utils to after pci_device_probe.
 - Make i830_sdvo_write_sdvox write everything twice.
 - Add debug output for ADPA.
 - Print the mode actually being set per pipe.
 - Attempt to fix single/dual-channel issues on i9xx LVDS panels.

At this stage it still does not work, presenting me with a display overlaid with vertical purple lines.

If I also set I9XX_P2_LVDS_SLOW_LIMIT to 90000 on top of this things work again (although that also works purely on top of 1.9.92 in my case).  I can also upload logs of either of those two (working) runs as well if you would like.

Note that this laptop, an HP Compaq nx6320 (model RM714PA), has a 1400x1050 display, slightly different from the 1440x900 display that the reporter of this bug has.

Andrew McMillan.
Comment 28 Eric Anholt 2007-03-26 12:41:23 UTC
Thanks for noting that setting the limit still fixed it.  Could you try with current master?
Comment 29 Andrew McMillan 2007-03-27 03:05:37 UTC
In summary:


From my previous run, I have:

(a) reverted the value of I9XX_P2_LVDS_SLOW_LIMIT to 112000 as it normally is, and
(b) applies patch f7befe50af4c13554d1f7aee6b05848ac312411b (i.e. Power on the LVDS B-channel pairs only when we've chosen dual-channel mode.)

So, with this new patch applied and the I9XX...SLOW_LIMIT reverted everything works correctly for me.

Do you want an Xorg log with that?

I will check when the proper 1.9.93 Debian packages are released, likely some time in the next few days, but it certainly looks like you've nailed it.

Andrew McMillan.
Comment 30 Andrew McMillan 2007-03-27 11:40:00 UTC
I can also confirm that it all works for me with the latest packages of 1.9.93 from Debian.

Comment 31 Dirk Mueller 2007-03-28 06:07:26 UTC
*** Bug 10260 has been marked as a duplicate of this bug. ***
Comment 32 Keith Packard 2007-03-28 21:03:57 UTC
Looks like this bug has been fixed; thanks for helping.

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.