Bug 1064

Summary: crash
Product: xorg Reporter: Stefan Rompf <stefan>
Component: Driver/RadeonAssignee: Alan Hourihane <alanh>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: low CC: alanh, bonbons, d4rkstar, dbronaugh, jon, mmar, raison, ramalhais, walkner.stefan
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
XF86Config
none
Xorg.0.log
none
My xorg.conffollowed by Xorg.0.log
none
Xorg Conf
none
Xorg log
none
PATCH: Mostly fixes dualhead
none
Verbose lspci & config & log for Alan's binary driver (see #16)
none
from i810 release 1.5.10 on Dell Latitude D400
none
Log with 1.5.11 (or 1.5.12)
none
xorg.conf that should do 1280x1024 on external CRT
none
log for -layout crt, comes up in 1280x1024
none
log for -layout dual, external CRT gets limited to 1024x768
none
Log with failed 1400x1050 dual head
none
xorg.conf with failed 1400x1050 dualhead
none
log with 1400x1050-1400x1050 and 1.5.60
none
Log with 1600x1200 dualhead
none
Here i got a blank screen and error in the log about int10 and V_BIOS
none
Log from 1.5.69 but with Option "MonitorLayout" "NONE,TV+LFP" it finds no usable modes
none
This is the config file i'm using none

Description Stefan Rompf 2004-08-12 15:45:15 UTC
Hi, 
 
I've tried to enable dual head support on a laptop with i855gm chipset, 
external monitor attached after booting. On the first try, the server did not 
start with a message describing that setup of secondary head failed because 
primary head failure. That was mostly because of 
 
(WW) I810(0): Extended BIOS function 0x5f64 failed. 
(WW) I810(0): SetDisplayDevices call failed, writing config directly to SWF0. 
 
After looking into the source, I realizied that SetDisplayDevices() always 
returned false after the BIOS call failed even if it could write to SWF0. I 
tried the following patch: 
 
Index: i830_driver.c 
=================================================================== 
RCS 
file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v 
retrieving revision 1.6 
diff -u -r1.6 i830_driver.c 
--- i830_driver.c       30 Jul 2004 20:38:27 -0000      1.6 
+++ i830_driver.c       12 Aug 2004 22:33:09 -0000 
@@ -650,8 +650,9 @@ 
    temp = INREG(SWF0); 
    OUTREG(SWF0, (temp & ~(0xffff)) | (devices & 0xffff)); 
 
-   if (GetDisplayDevices(pScrn) != devices) 
-      xf86DrvMsg(pScrn->scrnIndex, X_WARNING, 
+   if (GetDisplayDevices(pScrn) == devices) return TRUE; 
+ 
+   xf86DrvMsg(pScrn->scrnIndex, X_WARNING, 
                 "SetDisplayDevices failed with devices 0x%x instead of 
0x%x\n", 
                 GetDisplayDevices(pScrn), devices); 
 
Now the X server starts, I can move the mouse cursor out of the LFP display, 
however, secondary CRT stays disabled (anyway, AFAIK SWF0 is just a BIOS 
scratch register that should not enable anything in the hardware) 
 
Anyone got an idea? Config+Log attached, I can provide register dumps etc. if 
needed. 
 
Stefan
Comment 1 Stefan Rompf 2004-08-12 15:47:41 UTC
Created attachment 622 [details]
XF86Config

cloned XF86Config, Xorg lives in on path, loads synaptics module from old XF86
installation
Comment 2 Stefan Rompf 2004-08-12 15:49:19 UTC
Created attachment 623 [details]
Xorg.0.log

Log of server start to CTRL+C
Comment 3 Alex Deucher 2004-10-27 06:03:43 UTC
the existing code apparently works.  several users have gotten it working with
these device configs:

Section "Device"
Identifier "Intel0"
Driver  "i810"
Option  "VBERestore" "yes"
Option  "MonitorLayout" "CRT,LFP"
Option  "DevicePresence" "yes"
BusID  "PCI:0:2:0"
VideoRam 128000
Screen  0
EndSection

Section "Device"
Identifier "Intel1"
Driver  "i810"
Option  "VBERestore" "no"
Option  "MonitorLayout" "CRT,LFP"
#Option  "DevicePresence" "yes"
BusID  "PCI:0:2:0"
VideoRam 128000
Screen  1
EndSection
Comment 4 Alex Deucher 2004-11-28 09:57:23 UTC
*** Bug 1946 has been marked as a duplicate of this bug. ***
Comment 5 bruno 2004-11-28 13:53:02 UTC
(In reply to comment #4)
> *** Bug 1946 has been marked as a duplicate of this bug. ***

In the meanwhile I've done other test with xorg 6.8.1 but none worked.
We, i855 linux users, wait for you!

thanx
Comment 6 Bruno 2005-01-09 08:19:02 UTC
Created attachment 1646 [details]
My xorg.conffollowed by Xorg.0.log

For me DualHead does not work either on my i855 laptop (AcerTM662, vBIOS
Montana-GM 2965 as mentionned in System BIOS, no vBIOS update available).
Linux distributoin: Gentoo
Xorg version: 2.8.1.901 (6.8.2 RC 1), Gentoo ebuild
(Same result with 6.8.0 Gentoo ebuild)

I did try the Device configs #3, but those gave the same results (see logfile).
It always fails when I try to use both	pipes (A and B). I can get it to work
with CRT & LFP on same Pipe (MonitorLayout LFP+CRT), but not with both on
different pipes.

I permanently get the same error:
(WW) I810(0): Extended BIOS function 0x5f64 failed.
(WW) I810(0): SetDisplayDevices call failed, writing config directly to SWF0.
(EE) I810(0): Failed to switch to monitor configuration (0x801)
(EE) I810(0): Please check the devices specified in your MonitorLayout
(EE) I810(0): is configured correctly.

i855crt (http://i855crt.sourceforge.net/) seems to be able to activate the
second pipe.

The use of 855resolution by Alain Poirier has no effect on this (tried with and
without 855resoluation)
Comment 7 bruno 2005-01-10 03:44:04 UTC
Created attachment 1651 [details]
Xorg Conf

Another xorg.conf from i810 users
Comment 8 bruno 2005-01-10 03:44:37 UTC
Created attachment 1652 [details]
Xorg log

Another log of i810 failure
Comment 9 David Bronaugh 2005-02-06 17:07:14 UTC
Created attachment 1843 [details] [review]
PATCH: Mostly fixes dualhead

This may fix dualhead on a lot of other hardware too, but I don't have anything
else to test on.

If you start up with X in dualhead mode and a reasonably sane config (such as
the one attached to this bug) -and- you started the machine with the 2nd
monitor attached, this will work.

If you did -not- start the machine with the 2nd monitor (CRT port) attached, X
will start without the CRT port enabled. You'll have to enable it with
i810switch or i855crt or whatnot. I don't have a solution (yet) for this.
Comment 10 David Bronaugh 2005-02-06 17:54:24 UTC
Comment on attachment 1843 [details] [review]
PATCH: Mostly fixes dualhead

I've tested this and it works on my i830 based Panasonic R1N laptop. This may
fix dualhead on a lot of other hardware too, but I don't have anything
else to test on.

If you start up with X in dualhead mode and a reasonably sane config (such as
the one attached to this bug) -and- you started the machine with the 2nd
monitor attached, this patch should work.

If you did -not- start the machine with the 2nd monitor (CRT port) attached, X
will start without the CRT port enabled. You'll have to enable it with
i810switch or i855crt or whatnot. I don't have a solution (yet) for this.
Comment 11 Dave Airlie 2005-02-06 21:38:39 UTC
This is fixed in CVS HEAD by Alan by the looks of it (version 1.9 seems to have
it...) 

It might be worth getting into 6.8.2 if there is time ... I'll nominate the
patch and see if anyone objects...

Alan do you think we should apply just the simple patch to 6.8.2?
Comment 12 Alan Hourihane 2005-02-07 01:22:48 UTC
That's not the complete fix (at least for some), I'm still testing another piece.

And I'll update this report.
Comment 13 Alan Hourihane 2005-02-07 06:55:11 UTC
I'll take this bug.
Comment 14 stefan walkner 2005-02-07 06:58:33 UTC
(In reply to comment #13)
> I'll take this bug.
alan, thank you for the great work.
dualhead is now working for me perfectly.

stefan walkner
Comment 15 Stefan Rompf 2005-02-07 15:59:34 UTC
Hi, 
 
I've just tried current CVS. Both displays get enabled in dual head mode, but 
the LFP shows the same bitmap as the CRT, displaced by some lines. CRT must 
not be attached at bootup, I can use DevicePresence = yes instead. 
 
Stefan 
 
Comment 16 stefan walkner 2005-02-07 16:03:19 UTC
if this is the right cvs repository:
http://cvs.freedesktop.org/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/

It seems the latest changes are not online...
If you like I can send you the binary version which I got from Alan.

stefan walkner
Comment 17 Bruno 2005-02-08 01:42:14 UTC
Created attachment 1861 [details]
Verbose lspci & config & log for Alan's binary driver (see #16)

My logfiles and configuration files for a run of XOrg (first start of X since
reboot, with binary driver in dual-head mode, VGA output no connected when
starting X, but plugging the monitor afterwards shows the X background)

Xorg.0.log-20050207-2333 : XOrg logfile
xorg-dual2.log-20050207-2333 : console output of "xorg -verbose"
xorg-gentoo-i855.conf : config file
lspci-v.txt : output of "lspci -v"
Comment 18 Bruno 2005-02-08 01:46:34 UTC
With the binary I got from Stefan Walkner (which he got from Alan as  
mentionned in post #16) my X does not work in dual-head mode. It either  
displays broken stuff on LFP (but clean X-background on CRT), or freezes the  
complete machine (turing LFP backlight on and of with meyboard does not even  
work anymore (this is somehow hardware or bios-controlled), so I guess  
video-bios gets broken through it)  
  
Using the driver in single-head mode works just fine...  
  
PS: I'm using Gentoo 6.8.1.904 Xorg version, my system is:  
Acer TM662, Centrino, i855gme  
Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.3.5,  
glibc-2.3.4.20040808-r1, 2.6.10 i686)  
=================================================================  
System uname: 2.6.10 i686 Intel(R) Pentium(R) M processor 1500MHz  
Gentoo Base System version 1.4.16  
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  7 2005,    
19:33:20)]  
dev-lang/python:     2.3.4-r1  
sys-devel/autoconf:  2.59-r6, 2.13  
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4  
sys-devel/binutils:  2.15.92.0.2-r1  
sys-devel/libtool:   1.5.10-r4  
virtual/os-headers:  2.4.21-r1  
ACCEPT_KEYWORDS="x86"  
AUTOCLEAN="yes"  
CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"  
CHOST="i686-pc-linux-gnu" 
 
For logfile, config & lspci, see my new attachment (tar.gz) in #17 
Comment 19 Alan Hourihane 2005-02-18 10:06:31 UTC
Can those monitoring this bug report try out my latest test driver. It's
available at...

http://www.fairlite.demon.co.uk/intel.html

and requires X.Org 6.8.x

Bruno - don't bother trying this - it won't work for you as your problem is
completely different.
Comment 20 Jon Piesing 2005-02-26 14:55:02 UTC
(In reply to comment #19)
> Can those monitoring this bug report try out my latest test driver.

I've just tried this on my Dell Latitude D400 (Suse 9.0 & X.org 6.8.2) and it's
a partial improvement on what I get with the standard 6.8.2.

On the standard 6.8.2, Fn+F8 alternates the display between the LCD and the
external monitor. With the new driver, there is a 3rd state, display on both LCD
& monitor. The catches with the new driver are the following;
a) the LCD & monitor state only works the first time I enter it. If I hit Fn+F8
3 more times, I get output only on the monitor. I can get output on both back by
exiting to the console with CTL+ALT+F1 and then back to X with CTL+ALT+F8
b) if the display is going to both the LCD and the monitor then CTL+ALT+F1
crashes the machine totally - power off & battery removal are required.
c) something has changed about how X is setup and it starts with a significantly
larger (and inappropriate) default font size, even if the external monitor isn't
connected 

I can't get "genuine" dual-head (i.e. different signals on LCD + external
monitor) to work even though I have the following in my xorg.conf for both
device entries;

 Option      "MonitorLayout" "CRT,LFP"

xorg.conf and Xorg.log.0 are available on request.
Comment 21 Alan Hourihane 2005-02-26 15:22:52 UTC
That's unfortunate. You caught the driver at a transitional phase tracking a
different problem. Try downloading it again which should report v1.5.10. It
should work again.

If not, post a log from /var/log/Xorg.0.log
Comment 22 Jon Piesing 2005-02-27 07:46:26 UTC
Created attachment 1979 [details]
from i810 release 1.5.10 on Dell Latitude D400

From i810 release 1.5.10. Repeatable crash with Fn+F8 removed. Still unable to
get independent displays on LCD + monitor.
Comment 23 Alan Hourihane 2005-02-28 04:38:39 UTC
Jon, I've uploaded 1.5.11 - try that.
Comment 24 Jon Piesing 2005-03-01 10:24:32 UTC
(In reply to comment #23)
> Jon, I've uploaded 1.5.11 - try that.

Sorry but there's bad news - this is worse than 1.5.10 in a couple of ways.
a) As I step through the 3 states with Fn+F8, I have to do Ctl+Alt+F1/Ctl+Alt+F7
a lot more than 1.5.10 in order to get the expected results after each Fn+F8.
Quite often both external & LCD are blank.
b) There is a distinctly visible crawling pattern across the whole external
video signal. I've switched to 1.5.10 and back to 1.5.11 and the other people in
the room here with me confirm the crawling pattern is there with 1.5.11 and
missing with 1.5.10. This is with the laptop connected to the exact same projector.

Thanks for all the effort in pushing on this. I can supply an Xorg.0.log if you
like.
Comment 25 Alan Hourihane 2005-03-01 10:31:51 UTC
a log would be useful
Comment 26 Jon Piesing 2005-03-01 10:36:37 UTC
Created attachment 1999 [details]
Log with 1.5.11 (or 1.5.12)

Here's the log for the version used in my previous comment. Although I thought
it was 1.5.11, it calls itself 1.5.12 in the log file.
Comment 27 Alan Hourihane 2005-03-01 10:38:52 UTC
O.k. You might want to get the latest driver - we're up to 1.5.16 at the moment.
Comment 28 Alan Hourihane 2005-03-04 08:50:27 UTC
O.k. I'm finally closing in on a cure for all with the latest driver that's up
for testing at the website in comment #19.

For those interested in testing please download this version and give it a try.
Let me know of any failures you get. Even those who have a working driver, it's
worth testing to ensure no regressions have occurred. 

Thanks.
Comment 29 Alan Hourihane 2005-03-09 07:47:26 UTC
There have been a few more tweaks over the last few days, and a few people are
reporting lockups (machine isn't dead though) when VT switching.

Can people download the latest and really give it a grilling over VT switching
and LCD/CRT cycling and re-report.
Comment 30 Stefan Rompf 2005-03-09 11:39:50 UTC
Hi, 
 
I wanted to try your driver, however, on my X build (CVS from february), the 
drivers end in .so and classified as shared object, and I cannot load your 
i810_drv.o. Can you provide a .so for linux or any hint what I did wrong when 
compiling? Thanks! 
 
Stefan 
 
Comment 31 Alan Hourihane 2005-03-15 07:03:16 UTC
Stefan, for now you can add this to your xc/config/cf/host.def file to build
normal .o's instead of .so's.

#define MakeDllModules NO

Comment 32 Stefan Rompf 2005-03-20 10:30:21 UTC
Alan, 
 
with i810_drv.o from March 15, I can use dual head, vt switching works, xv 
overlay switches over as soon as the window is completely on one screen. 
However, I cannot set a higher resolution than 1024x768 on my CRT. May be the 
information that the internal LCD can do only 1024x768 leaks into the CRT 
configuration. xcompmgr breaks when dual head is active, but honestly this 
feature isn't too usable on i855 anyway. 
 
Thanks for you work, this is a *huge* improvement! 
 
Stefan 
 
Comment 33 Alan Hourihane 2005-03-20 10:50:05 UTC
There are different configurations for dual head. If you are just flipping
between  CRT, LCD and CRT+LCD that yes, the CRT will be limited to the LFP size.

If you want the CRT to be bigger than the LCD, then you need to define two
Device sections and add the second screen to the ServerLayout section. This is
really multi-head. Whereas what you probably currently have is just cloning.
Comment 34 Alan Hourihane 2005-03-20 10:52:02 UTC
Actually, I've just looked at your XF86Config from when you first logged the
bug. You definately have multi-head mode configured, but you've only specified
1024x768 on both heads anyway. You need to edit your config for a different
resolution.
Comment 35 Stefan Rompf 2005-03-21 11:33:23 UTC
Hi, 
 
actually, that was what I did and I think I got it right ;-) Three files 
attached: xorg.conf, Xorg-crt.log a logfile from X -layout crt, and 
Xorg-dual.log a log from X -layout dual. CRT-Layout uses the external 
connector only and can do 1280x1024, in dual layout it is limited to 1024x768, 
even though both sections for the external screen are configured equally. 
 
Stefan 
 
Comment 36 Stefan Rompf 2005-03-21 11:34:21 UTC
Created attachment 2175 [details]
xorg.conf that should do 1280x1024 on external CRT
Comment 37 Stefan Rompf 2005-03-21 11:34:55 UTC
Created attachment 2176 [details]
log for -layout crt, comes up in 1280x1024
Comment 38 Stefan Rompf 2005-03-21 11:35:32 UTC
Created attachment 2177 [details]
log for -layout dual, external CRT  gets limited to 1024x768
Comment 39 Alan Hourihane 2005-03-24 04:36:48 UTC
I think your problem Stefan is that the BIOS is limiting the resolutions because
of bandwidth issues when you've defined two heads.

Try defining this as your MonitorLayout though and see if it makes a difference..

"LFP,CRT"

Your screen will flip, but you can fix that by also adding..

Option "FixedPipe" "B"
Comment 40 Alan Hourihane 2005-03-24 04:37:34 UTC
I've uploaded version 1.5.56 to my web page. This is 99% ready. Just those here,
can you retest one more time please.
Comment 41 Stefan Rompf 2005-03-24 13:53:10 UTC
Hi, 
 
no luck with this version. The secondary display only came up in 1024x768, 
independant of Option NoDDC. The hardware should not have a bandwidth problem 
as i855crt is able to enable higher resolutions and refresh rates. But the 
BIOS is possibly quite crappy, I can't even define on which head to boot up. 
 
Switching head order leads to an empty display, with background light 
disabled, and the server aborted with 
 
(WW) I810(1): Failed to set up write-combining range (0xe8000000,0x8000000) 
(II) I810(1): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 
(WW) I810(1): Extended BIOS function 0x5f05 failed. 
(EE) I810(1): Set VBE Mode failed! 
 
Fatal server error: 
AddScreen/ScreenInit failed for driver 1 
 
I did some hardware banging with the i855 a while ago, and as far as I 
remember the LVDS can only be attached to display pipe B, while the driver 
tried to enable it on A when switching head order. But my memory may be wrong. 
 
Worst thing was that this version failed to restore the text mode, independant 
of the VBERestore option the resolution seemed wrong. 
 
Best version for me till now is the one I've downloaded on March 15, size 
224041 bytes. 
 
Stefan 
 
Comment 42 Alan Hourihane 2005-03-24 14:11:05 UTC
O.k. Put your MonitorLayout back to "CRT,LFP" and remove the FixedPIpe option too.

I have noticed that you are using DevicePresence in the dual head case and not
the single head case with CRT operating at 1280x1024.

It might be worth shutting down and removing the DevicePresence option before
starting the Xserver again to see if that helps.
Comment 43 Stefan Rompf 2005-03-24 14:45:50 UTC
Devicepresence didn't change behaviour, I also tried setting DisplayInfo to 
false without success. 
 
Btw, setting a lower resolution works, the secondary head is not fixed to 
1024x768, but capped. 
Comment 44 Alan Hourihane 2005-03-24 14:56:40 UTC
Well, it's certainly the BIOS that's restricting the modes when you are in dual
head. Obviously i855crt hits the hardware directly and that's why that works for
you.

So there isn't much I can do with your problem Stefan at the moment.
Comment 45 Stefan Rompf 2005-03-24 15:04:53 UTC
Many thanks anyway, this driver is a huge improvement for me. Just let me know 
when you have another version available so that I can test if restoring text 
mode works again as it did in the version of March 15. 
 
Comment 46 Alan Hourihane 2005-03-24 15:26:10 UTC
If you put the MonitorLayout back to the way it was, and probably download
1.5.57 too it should be fine, but let me know if it isn't.
Comment 47 Stefan Rompf 2005-03-25 02:40:21 UTC
Alan, 
 
sorry, still no luck. For completeness: For text mode I use the VESA 
framebuffer console in 1024x768x16. I've done a test (with single head, but 
same on dual head) over all four driver versions I have archived. 
 
-1.5.56 is the first version that fails to restore text console, same on 
1.5.57 
-1.5.51 can restore text console, but cannot fix a mode broken by 1.5.56/57 
-1.5.47 can restore console, even if it was broken by 1.5.56/57 before. 
 
If you can supply an archive of the versions in between, I'll search for the 
first that broke it. 
 
Stefan 
 
Comment 48 Alan Hourihane 2005-03-25 02:51:52 UTC
Send me privately a copy of the log from each driver run and I'll investigate.
Comment 49 Alan Hourihane 2005-03-25 04:17:36 UTC
I've uploaded 1.5.58 - see if that fixes the console restore.
Comment 50 Stefan Rompf 2005-03-25 08:29:13 UTC
So far, this version worked nice in single and dualhead, thanks! 
 
Stefan 
 
Comment 51 Pasi Sainio 2005-03-29 22:19:47 UTC
(In reply to comment #50)
Okay,

I got something working with this.  My laptop (Fujitsu E4010 with 855GM) has
1400x1050 panel.  With x855set I get 1400x1050 on the panel. 
1280x1024-1280x1024 works as dualhead.  But when I try 1400x1050-1400x1050 as
dualhead the screen hangs and only reboot restores the screen.  Will upload the
log in a sec.

 - Pasi -
Comment 52 Pasi Sainio 2005-03-29 22:22:30 UTC
Created attachment 2254 [details]
Log with failed 1400x1050 dual head
Comment 53 Pasi Sainio 2005-03-29 22:24:17 UTC
Created attachment 2255 [details]
xorg.conf with failed 1400x1050 dualhead

Here is my current config.  Change screen size to 1280x1024-1280x1024 and this
config works ok.

- Pasi -
Comment 54 Alan Hourihane 2005-03-30 00:52:27 UTC
You've used an old driver there. Try downloading an updated one and try again.
Comment 55 Pasi Sainio 2005-03-31 03:08:28 UTC
Created attachment 2268 [details]
log with 1400x1050-1400x1050  and 1.5.60

Ooops, my bad, downloaded the driver to wrong directory :-)

Here is the log with 1.5.60.  The result is exactly the same. 
1400x1050-1280x1024 dualhead works fine, although console is on LFP before X
and on CRT after but that's minor.

1400x1050-1400x1050 dualhead hangs the screen completely.

     - Pasi -
Comment 56 Alan Hourihane 2005-03-31 04:46:43 UTC
I fear the hang is actually induced by i855set. I'd need to look at what that is
doing to dig deeper.

Although I'll be uploading 1.5.62 later today. So if you could re-test that and
let me know. Then I'll have to take a look at i855set.
Comment 57 Alan Hourihane 2005-03-31 05:46:54 UTC
1.5.62 has just been uploaded. Try that.
Comment 58 Pasi Sainio 2005-03-31 11:02:01 UTC
OKay,

progress.. :-) This one too works ok with 1400x1050-1280x1024.

With 1400x1050-1400x1050 gives a good picture on LFP.  But on CRT I get a
flickering picture of squeezed desktop plus some top lines from the LFP picture
with some white stripes in between.
Comment 59 Alan Hourihane 2005-03-31 12:00:57 UTC
Can you post a log from that run ?
Comment 60 Alan Hourihane 2005-03-31 12:30:46 UTC
I've uploaded 1.5.63 as another attempt to fix this 1400x1050-1400x1050 issue.
Give that a try.
Comment 61 Pasi Sainio 2005-04-01 03:47:21 UTC
Okay,

I'm starting to believe that the rest of the problems is due to crappy BIOS on
my Fujitsu E4010.

Allthough 855resolution from Alain Poirier seems to allow me to use 1400x1050 on
LFP, I cannot get that to CRT even on singlehead configuration.  The latest
driver  does not hang anymore, CRT screen is on 1600x1200 but the driver only
allows me to touch 1400x1050 area on it, the surrounding area is showing other
parts of the screen.   

I was also trying to get 1400x1050-1600x1200 to run but cannot seem to get CRT
to do that either, even as it is listed on allowed BIOS modes, any idea what is
blocking that?  On windows 1600x1200 runs @75hz just fine, so the monitor is
capable.
Comment 62 Alan Hourihane 2005-04-01 03:55:27 UTC
From the look of your dual head log, the BIOS is disallowing the 1600x1200
configuration for the CRT. That's probably a buggy BIOS. You should check with
Fujitsu to see if they've an updated one available.
Comment 63 Pasi Sainio 2005-04-01 04:10:59 UTC
Yeah, well you know how willing vendors are when it comes to linux and stuff..

But about the 1600x1200, it is shown on the mode list on the log, why it does
not pick one of those (3a,4b,5a)?
Comment 64 Alan Hourihane 2005-04-01 04:20:28 UTC
If you look at the ModeAttributes field. Most of the time it's 0x9b which the
BIOS will support the mode in the current hardware configuration. If it's 0x9a,
then it won't. And on your 1600x1200 mode it's 0x9a. Basically if the first bit
(0x1) is not set then the BIOS does not support it in the current configuration.

Oh, and Windows doesn't use the BIOS to set the modes up so never hits this problem.
Comment 65 Pasi Sainio 2005-04-01 22:42:15 UTC
Created attachment 2289 [details]
Log with 1600x1200 dualhead

I don't know what to say..

At home with my 21" monitor I can run 1600x1200 on a single head, but
1400x1050-1600x1200 dualhead puts CRT to size looking like 1600x1200 and allows
only 1400x1050 to be used.

But knowing all the BIOS issues, I doubt this is really your problem.  But
thanks for your effort anyway!
Comment 66 Alan Hourihane 2005-04-02 00:33:12 UTC
Sorry, but this log is of 1400x1050-1400x1050. 
Comment 67 Pasi Sainio 2005-04-02 21:16:56 UTC
Well,

it ends up trying 1400x1050-1400x1050 as:

(II) I810(1): Not using mode "1600x1200" (no mode of this name)

although as said, single head 1600x1200 works on that setup.  If I try
1400x1050-1400x1050, this line is not in the log.

Comment 68 Alan Hourihane 2005-04-03 00:19:44 UTC
Exactly, it ends up using the 1400x1050 mode because 1600x1200 is listed as 0x9a
in ModeAttributes.

Basically, your BIOS is limiting dual head modes (possibly because of bandwidth
issues) and that's the real problem. Single head isn't affected because it's
only driving one pipe.
Comment 69 Pasi Sainio 2005-04-03 22:41:56 UTC
Okay yeah, got it :-)

Any way to force it around that as I know the hardware can do it, at least with
the none-BIOS Windows driver?  Like the 1400x1050 tweak by Alain Poirier?   The
old stile XFree 3.x modelines put into shadowed VBIOS?
Comment 70 Pedro Ramalhais 2005-04-21 04:27:18 UTC
I tried the driver from http://www.fairlite.demon.co.uk/intel.html (version
1.5.69) and i had to recompile Xorg from CVS with
#define MakeDllModules NO
The Xorg i810 driver worked as usual (version 1.3.0 IIRC), but when i changed it
for the 1.5.69 version i got this error:

-----

(II) Loading sub module "int10"
(II) LoadModule: "int10"
(II) Reloading /usr/X11R6/lib/modules/linux/libint10.a
(II) I810(0): initializing int10
(WW) I810(0): Bad V_BIOS checksum
(II) I810(0): Primary V_BIOS segment is: 0xc000
(EE) I810(0): unknown reason for exception
(II) I810(0): EAX=0x00000000, EBX=0x00000040, ECX=0x00000000, EDX=0x00200000
(II) I810(0): ESP=0x00005faf, EBP=0x00000fb0, ESI=0x00071400, EDI=0x00000636
(II) I810(0): CS=0xc000, SS=0x0100, DS=0x0000, ES=0x0000, FS=0x0000, GS=0x0000
(II) I810(0): EIP=0x0000ffff, EFLAGS=0x00033246
(II) I810(0): code at 0x000cffff:
 15 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
(EE) I810(0): cannot continue
(II) I810(0): VESA BIOS not detected

Fatal server error:
AddScreen/ScreenInit failed for driver 0


Please consult the The X.Org Foundation support
         at http://wiki.X.Org
 for help.
Please also check the log file at "/var/log/Xorg.1.log" for additional information.

-----

Is this a problem with the current Xorg CVS or is it the i810 1.5.69 version?
My LFP is 1024x768 and i'm trying to get Dual Monitor mode(2 screens and
xinerama) working with TV-Out at 1024x768. The problem is that the driver
decides that the tv-out size is 800x600 and i can't change it (even if i change
the tv encoder to output 1024x768, and then the output on the TV is a 1024x768
image with the 800x600 screen and the right and bottom with unused framebuffer
memory).
Another thing i never got to work is having the LFP mirrored on the TV wihtout
Clone mode. I have
Option          "MonitorLayout" "TV+LFP"
in my Device Section but it doesn't activate the tv-out (but it does in Clone mode).
Comment 71 Alan Hourihane 2005-04-21 05:08:03 UTC
Can you post the full log ?

Also for your dual head mode you should try this too,

Option "MonitorLayout" "NONE,TV+LFP"

and see if that works.
Comment 72 Pedro Ramalhais 2005-04-21 06:03:45 UTC
Created attachment 2492 [details]
Here i got a blank screen and error in the log about int10 and V_BIOS

This occurs with Option 	 "MonitorLayout" "TV+LFP". The screen goes
blank and never returns. Switching to an already running X server with
ctrl-alt-f8 only makes the TV come back. The LFP (LCD) never comes back.
There's an error in the log about the BIOS call.
Comment 73 Pedro Ramalhais 2005-04-21 06:08:02 UTC
Created attachment 2493 [details]
Log from 1.5.69 but with Option "MonitorLayout" "NONE,TV+LFP" it finds no usable modes

Log from 1.5.69 with Option "MonitorLayout" "NONE,TV+LFP".
With this one it finds no usable modes, but it doesn't stay blank. Just goes
back to the console.
Comment 74 Pedro Ramalhais 2005-04-21 06:20:17 UTC
Created attachment 2494 [details]
This is the config file i'm using

There's some comments in the config file explaining what i use to get the above
results, it may clarify things.
Regarding the no modes found, maybe the i810 driver is calling the wrong BIOS
routine, or maybe my BIOS sucks and doesn't have that routine when asked for
LFP+TV modes without "Clone mode". This LFP+TV mode without Cloning seems like
the best choice for me since it permits the usage of XVideo for watching movies
on both the TV and LFP.
On a side note, the
Screen 0 and Screen 1 on Sections "Device" are not really working since you can
exchange them and it doesn't change the order of the heads(pipes?). I can also
Just define Screen 1 and not Screen 0 and still have a working Dual Screen
config.
Similar thing with Sections "Screen" where if i exchange the Devices, it won't
exchange the order of the heads, however i think it changes something else
since i had problems once with exchanging them in this Section.
It seems like LFP is alway Screen 0 and TV always Screen 1... it's very
confusing.
Comment 75 Alan Hourihane 2005-04-21 06:43:52 UTC
Are you say(In reply to comment #72)
> Created an attachment (id=2492) [edit]
> Here i got a blank screen and error in the log about int10 and V_BIOS
> 
> This occurs with Option 	 "MonitorLayout" "TV+LFP". The screen goes
> blank and never returns. Switching to an already running X server with
> ctrl-alt-f8 only makes the TV come back. The LFP (LCD) never comes back.
> There's an error in the log about the BIOS call.

Are you saying that the above "TV+LFP" works with the current X.Org CVS ??
Comment 76 Alan Hourihane 2005-04-21 06:45:15 UTC
(In reply to comment #74)
> On a side note, the
> Screen 0 and Screen 1 on Sections "Device" are not really working since you can
> exchange them and it doesn't change the order of the heads(pipes?). I can also
> Just define Screen 1 and not Screen 0 and still have a working Dual Screen
> config.
> Similar thing with Sections "Screen" where if i exchange the Devices, it won't
> exchange the order of the heads, however i think it changes something else
> since i had problems once with exchanging them in this Section.
> It seems like LFP is alway Screen 0 and TV always Screen 1... it's very
> confusing.
> 

For this you can use the option

Option "FixedPipe" "A"

or

Option "FixedPipe" "B"

which will set the primary pipe regardless of how you your primary pipe is
configured. 
Comment 77 Alan Hourihane 2005-04-21 06:46:30 UTC
(In reply to comment #73)
> Created an attachment (id=2493) [edit]
> Log from 1.5.69 but with Option "MonitorLayout" "NONE,TV+LFP" it finds no
> usable modes
> 
> Log from 1.5.69 with Option "MonitorLayout" "NONE,TV+LFP".
> With this one it finds no usable modes, but it doesn't stay blank. Just goes
> back to the console.

And this just looks like your BIOS doesn't play nice with TV+LFP on Pipe B (or A
for that matter as it causes your BIOS to exception).

I'd look to see if there was a BIOS upgrade for your machine.
Comment 78 Pedro Ramalhais 2005-04-21 08:22:12 UTC
(In reply to comment #75)
> Are you say(In reply to comment #72)
> > Created an attachment (id=2492) [edit] [edit]
> > Here i got a blank screen and error in the log about int10 and V_BIOS
> > 
> > This occurs with Option 	 "MonitorLayout" "TV+LFP". The screen goes
> > blank and never returns. Switching to an already running X server with
> > ctrl-alt-f8 only makes the TV come back. The LFP (LCD) never comes back.
> > There's an error in the log about the BIOS call.
> 
> Are you saying that the above "TV+LFP" works with the current X.Org CVS ??
> 


No, i just had another X running at the same time and switched to it to see if
it would recover the LFP, which it didn't. Only the TV.
Comment 79 Pedro Ramalhais 2005-04-21 08:40:25 UTC
(In reply to comment #77)
> (In reply to comment #73)
> > Created an attachment (id=2493) [edit] [edit]
> > Log from 1.5.69 but with Option "MonitorLayout" "NONE,TV+LFP" it finds no
> > usable modes
> > 
> > Log from 1.5.69 with Option "MonitorLayout" "NONE,TV+LFP".
> > With this one it finds no usable modes, but it doesn't stay blank. Just goes
> > back to the console.
> 
> And this just looks like your BIOS doesn't play nice with TV+LFP on Pipe B (or A
> for that matter as it causes your BIOS to exception).
> 
> I'd look to see if there was a BIOS upgrade for your machine.

1.08 is what i have installed.

The changelog for 1.07 says:

    * Updated: VGA BIOS version to 3104
    * Fixed: Fn+F5 issue.

Isn't there a way to program the card discarding the data it got or it didn't
get from the BIOS? I use nvtv that is able to communicate with the encoder chip.
Maybe the i810 driver could setup the things needed on the graphics card side,
and then i could use the nvtv tool to activate the TV-out.
Comment 80 Alan Hourihane 2005-04-21 09:12:26 UTC
Obviously your BIOS is broken regarding the setup of TV+LFP on the same pipe.

We'd need to bypass the BIOS and hit the card directly to achieve this, but
unfortunately the relevant direct programming information isn't publicly
available, so your stuck with whatever the BIOS restricts you to.
Comment 81 Alan Hourihane 2005-05-20 06:24:25 UTC
Committed the code to CVS.
Comment 82 FreeDesktop Bugzilla Database Corruption Fix User 2005-06-02 00:01:38 UTC
Just to pipe in that the latest binary on Alan's site does not help me in
getting both my laptop's (Acer TravelMate 382TMi) internal display and an
external CRT to work simultaneously. My error message is "(WW) I810(0): Extended
BIOS function 0x5f64 failed.". I'd be happy to share the config file and full
logs if that is of help, but they're not much different from others already
attached.

Further, the machine needs a reboot in order to detect an external display well
enough for X to work properly on it. I can force the pipe on with i855crt, but
there'll be some corruption on the screen and the mouse pointer won't be visible
if I connect the display without rebooting.
Comment 83 Matthew Carpenter 2005-10-05 13:26:02 UTC
(In reply to comment #81) 
> Committed the code to CVS. 
 
I've been reading this thread in hopes that you would address my issue.  Alas, 
to no avail.   
 
I am using a Dell Inspiron 1150  (Intel 82852/855GM)  running Kubuntu 
I have attempted using each of these configs as a guide, having attempted both 
of the following methods of setup: 
 
*) 1 device, MonitorLayout "LFP+CRT" for Dual Head 
*) 2 devices, Xinerama style 
 
Both give me the same results.  Either my CRT or the LFP turns light green and 
the screen locks.  CTRL-ALT-DEL causes a reboot so I'm not losing data, but 
this clearly doesn't work for me. 
 
However, this version did fix the screens so I can switch between LFP/CRT/Both 
cloning quite well thank you. 
 
How should I engage your help?  Should I start a new bug on this? 
 
 
 
I'm getting the following errors in the log, which makes me wonder a bit: 
I810(0): Primary Pipe has been switched from original pipe (B to A) 
... 
I810(0): Extended BIOS function 0x5f64 failed. 
I810(0): Extended BIOS function 0x5f64 failed. 
I810(0): Failed to set display devices to 0x9 
I810(0): Enabling LVDS directly. Pipe A. 
I810(0): Enabling ADPA directly. Pipe A. 
I810(0): Writing config directly to SWF0. 
I810(0): Currently active displays on Pipe A: 
I810(0):   CRT 
I810(0):   LFP (local flat panel) 
... 
I810(0): Bad V_BIOS checksum 
I810(0): Primary V_BIOS segment is: 0xc000 
I810(0): VESA BIOS detected 
I810(0): VESA VBE Version 3.0 
I810(0): VESA VBE Total Mem: 832kB 
 
 
 
 
Thanks a lot! 
Comment 84 Alan Hourihane 2005-10-05 13:47:43 UTC
Sounds like you want "NONE,LFP+CRT" for your setup.

But email me offline.

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.