My laptop uses the r128 driver (the card is a Rage Mobility M3 with 8MB memory),
and up until 6.8.2, I could specify the external display to use a modeline with
1280-1024 @ something like 70Hz. Since 6.9, Xorg has been ignoring my
modelines, chosing to support only the resolution the LCD supports.
In the log file in the attached URL, note the IBM_mode_? modelines. This is my
external fixed frequency monitor, with modelines I used to be able to use. In
the logfile, we get repeated occurences of
(II) R128(0): Not using mode "IBM_mode_1" (no mode of this name)
(II) R128(0): Not using mode "IBM_mode_2" (no mode of this name)
(II) R128(0): Not using mode "IBM_mode_3" (no mode of this name)
We also see suspicious lines like:
(II) R128(0): Modifying mode according to VBIOS: 1024x768 [pclk 83.9 MHz] for FP
to: 1024x768 [pclk 65.0 MHz]
Since I asked for it not to display on the internal LCD, but on the external
display, it ought to ignore the settings of the LCD and pick my modelines
instead of discarding them.
Can you attach your log and config?
Created attachment 5306 [details]
Log file showing modeline which are ignored despite being valid
As I mentioned originally, the attached URL showed the config and logfile:
I just tried again with an updated X -- config file hasn't changed, new logfile
is attached here.
Added regression keyword
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
I am having the same problem: my Dell laptop with a 1600x1200
flat panel screen would not drive an external monitor because
it picks frequencies for the flat panel screen, which are too
high for the external monitor. As it does this it ignores the
explicit modelines I specify for the external monitor.
I am using Mandriva 2007.1 with 'X Window System Version 7.2.0'
(from Mandriva RPM packages x11-server-xorg-1.2.0-9.2mdv2007.1,
x11-driver-video-ati-6.6.3-1mdv2007.1 and a few more), and
kernel 2.6.17-13mdv. With previous setups I did not have this
problem; unfortunately I don't know at what point the bug appeared.
In /var/log/Xorg.0.log I have lines saying e.g.
> (II) R128(0): Not using driver mode "1440x900" (no mode of this name)
Also, I get lines like
> Modifying mode according to VBIOS: 1400x1050 [pclk 122.0 MHz] for FP to: 1400x1050 [pclk 160.0 MHz]
which seems to be an indication that this might be a video BIOS
interaction problem... Is there any way to tell the r128 driver
to override/ignore the video BIOS information? This VBIOS override
happens even for the 'standard' modes, like 1280x1024@75Hz, let
alone the 1440x900 I am really after...
ZJ Laczik has discovered that a simple change to src/r128_driver.c:R128ValidMode() to return MODE_OK unconditionally is enough to make the external display work for the both of us.
This tells us that info->DisplayType == MT_LCD. I don't know whether this is being set in R128GetBIOSParameters(), but if so, then obviously info->HasPanelRegs is true. Judging from the comment above that, the author of this code is not convinced this is the right detection logic to use, and quite clearly, it is invalid on a laptop which has panel registers, but is being asked not to use them when one of
Option "nopanel_display" "true"
Option "Display" "CRT"
etc are used.
Can we just go back to the detection logic that was in xorg prior to 6.9? It worked well enough then. Or maybe query whether such a CRT option has been provided (it is unclear in the docs which one to use -- Option "Display" "CRT" worked for me prior to 6.9 if I understand my xorg.conf CVS history properly)
The code was changed to support dualhead. I'll see if I can fix it up at some point this week.
please reopen if you are still having problems.