Bug 11062 - Cannot setup resolution higher than 1024x768 on laptop with ATI Mobility Radeon card
Summary: Cannot setup resolution higher than 1024x768 on laptop with ATI Mobility Rade...
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.2 (2007.02)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL: https://bugs.launchpad.net/ubuntu/+so...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-25 09:36 UTC by Bryce Harrington
Modified: 2007-06-14 16:32 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log (45.02 KB, text/x-log)
2007-05-25 09:38 UTC, Bryce Harrington
no flags Details
xorg.conf (4.34 KB, patch)
2007-05-25 09:39 UTC, Bryce Harrington
no flags Details | Splinter Review
ddcprobe output (517 bytes, patch)
2007-05-25 09:40 UTC, Bryce Harrington
no flags Details | Splinter Review
Log with modified panelsize option (46.29 KB, text/x-log)
2007-05-25 22:52 UTC, Oleksiy Kokachev
no flags Details
log file with panelsize 1280x1024 (45.43 KB, text/x-log)
2007-05-26 07:36 UTC, Oleksiy Kokachev
no flags Details

Description Bryce Harrington 2007-05-25 09:36:43 UTC
On an ATI Mobility Radeon 9600 M10, xorg is not allowing higher resolutions, perhaps due to failure to detect DDC properly on this card.  From the log:

(II) Loading sub module "ddc"
(II) LoadModule: "ddc"
(II) Reloading /usr/lib/xorg/modules//libddc.so
(II) RADEON(0): VESA VBE DDC supported
(II) RADEON(0): VESA VBE DDC Level none
(II) RADEON(0): VESA VBE DDC transfer in appr. 2 sec.
(II) RADEON(0): VESA VBE DDC read failed
(II) RADEON(0): DDC Type: 3, Detected Type: 0
(WW) RADEON(0): No valid DDCType is given for DDC2, try vbe probing ...
(II) RADEON(0): DDC Type: 0, Detected Type: 0
...
(II) RADEON(0): Validating modes on Primary head ---------
(II) RADEON(0): Panel ID string: 1024x768
(II) RADEON(0): Panel Size from BIOS: 1024x768
(II) RADEON(0): BIOS provided dividers will be used.
(II) RADEON(0): Total number of valid DDC mode(s) found: 0
(WW) RADEON(0): Mode 1280x1024 is out of range.
(WW) RADEON(0): Valid modes must be between 320x200-1024x768
(II) RADEON(0): Valid mode using on-chip RMX: 1024x768
(II) RADEON(0): Valid mode using on-chip RMX: 800x600
(II) RADEON(0): Valid mode using on-chip RMX: 640x480
(II) RADEON(0): Total number of valid FP mode(s) found: 3
(--) RADEON(0): Virtual size is 1024x768 (pitch 1024)

Oleksiy's report:
"The problem is: I cannot setup resolutions higher than 1024x768 on my SVGA+ laptop LCD neither using fglrx nor ati drivers. I have ATI mobility Radeon 9600 M10. I tried to investigate this problem by myself, and found, that VBE incorrectly reports maximum resolution in c ase of fglrx and ati driver cannot correctly read resolution data using DDC, even if ddcprobe reports correct values. How can I skip validation of modes by VBE? Any other ideas?"
Comment 1 Bryce Harrington 2007-05-25 09:38:20 UTC
Created attachment 10090 [details]
Xorg.0.log
Comment 2 Bryce Harrington 2007-05-25 09:39:22 UTC
Created attachment 10091 [details] [review]
xorg.conf
Comment 3 Bryce Harrington 2007-05-25 09:40:25 UTC
Created attachment 10092 [details] [review]
ddcprobe output
Comment 4 Benjamin Herrenschmidt 2007-05-25 22:15:34 UTC
Looks to me that the BIOS is claiming that it's a 1024x768 LVDS panel..  (that is, it explicit gives that resolution, not the lack of a resolution). So first, blame your laptop vendors for f*king up the BIOS infos (it probably comes with a hacked windows driver to work around the problem), then, do we still have the panel size overrides in xorg.conf ?
Comment 5 Alex Deucher 2007-05-25 22:45:31 UTC
As Ben said, try enabling the PanelSize option, e.g.,

Option "PanelSize" "1400x1050"

Comment 6 Oleksiy Kokachev 2007-05-25 22:51:47 UTC
I already tried to do that, but as a result my LCD is blinking and looks like my physical display with 1024x768 is a part of bigger display with 1280x1024. I.e. only some part of 1280x1024 resolution is displayed. I attached Xorg.0.log file.
Comment 7 Oleksiy Kokachev 2007-05-25 22:52:57 UTC
Created attachment 10093 [details]
Log with modified panelsize option
Comment 8 Alex Deucher 2007-05-25 23:01:28 UTC
can you try adding the 1400x1050 mode to the mode list in the display section of config?  e.g.,

Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"

Looks like the driver is trying to use 1280x1024.
Comment 9 Oleksiy Kokachev 2007-05-25 23:04:52 UTC
(In reply to comment #8)
> can you try adding the 1400x1050 mode to the mode list in the display section
> of config?  e.g.,
> 
> Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> 
> Looks like the driver is trying to use 1280x1024.
> 

That's exactly what I want - 1280x1024.
Comment 10 Oleksiy Kokachev 2007-05-26 01:26:29 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > can you try adding the 1400x1050 mode to the mode list in the display section
> > of config?  e.g.,
> > 
> > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > 
> > Looks like the driver is trying to use 1280x1024.
> > 
> 
I mean that I want to set 1280x1024. But when I used PanelSize option, only left upper corner of screen is displayed and LCD is blinking. 
> That's exactly what I want - 1280x1024.
> 

Comment 11 Alex Deucher 2007-05-26 06:36:45 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #8)
> > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > of config?  e.g.,
> > > 
> > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > 
> > > Looks like the driver is trying to use 1280x1024.
> > > 
> > 
> I mean that I want to set 1280x1024. But when I used PanelSize option, only
> left upper corner of screen is displayed and LCD is blinking. 

Are there any modes that do work on the panel?  Are you sure it's 1400x1050?  The bios specifies panel timings and size for 1024x768, so we don't have timing information for 1400x1050.  Without that it's guess-work get get proper panel timing which is why your get the blinking and such.
Comment 12 Oleksiy Kokachev 2007-05-26 06:45:30 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #9)
> > > (In reply to comment #8)
> > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > of config?  e.g.,
> > > > 
> > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > 
> > > > Looks like the driver is trying to use 1280x1024.
> > > > 
> > > 
> > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > left upper corner of screen is displayed and LCD is blinking. 
> 
> Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> The bios specifies panel timings and size for 1024x768, so we don't have timing
> information for 1400x1050.  Without that it's guess-work get get proper panel
> timing which is why your get the blinking and such.
> 
Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper timing values for 1280x1024 resolution? I know about special calculators, but I don't have any information about that LCD. Any ideas?
Comment 13 Oleksiy Kokachev 2007-05-26 06:51:55 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > (In reply to comment #9)
> > > > (In reply to comment #8)
> > > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > > of config?  e.g.,
> > > > > 
> > > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > > 
> > > > > Looks like the driver is trying to use 1280x1024.
> > > > > 
> > > > 
> > > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > > left upper corner of screen is displayed and LCD is blinking. 
> > 
> > Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> > The bios specifies panel timings and size for 1024x768, so we don't have timing
> > information for 1400x1050.  Without that it's guess-work get get proper panel
> > timing which is why your get the blinking and such.
> > 
> Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that
> panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper
> timing values for 1280x1024 resolution? I know about special calculators, but I
> don't have any information about that LCD. Any ideas?
> 

Alex, one more. Take a look at latest log. It seems,that bios provides timing information for 1280x1024 resolution. But these timing values don't work. 
Comment 14 Alex Deucher 2007-05-26 07:00:23 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > (In reply to comment #9)
> > > > (In reply to comment #8)
> > > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > > of config?  e.g.,
> > > > > 
> > > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > > 
> > > > > Looks like the driver is trying to use 1280x1024.
> > > > > 
> > > > 
> > > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > > left upper corner of screen is displayed and LCD is blinking. 
> > 
> > Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> > The bios specifies panel timings and size for 1024x768, so we don't have timing
> > information for 1400x1050.  Without that it's guess-work get get proper panel
> > timing which is why your get the blinking and such.
> > 
> Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that
> panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper
> timing values for 1280x1024 resolution? I know about special calculators, but I
> don't have any information about that LCD. Any ideas?
> 

My guess would be that you actually have a 1024x768 panel.  But if not, it's
actually a bit more complicated.  Panels have fixed timings and need to be fed
those timings (1400x1050 for example).  When you use a lower resolution, you
still feed the panel it's native timings, but you use a scaler to either scale
the lower res up to the native size or to generate a "centered" mode.  You
could try generating a custom modeline, but at the moment the driver cannot use
custom modes as there is a chance they could damage the panel.  You'd have to
edit the driver source to force a custom mode.
Comment 15 Alex Deucher 2007-05-26 07:03:55 UTC
(In reply to comment #13)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > (In reply to comment #10)
> > > > (In reply to comment #9)
> > > > > (In reply to comment #8)
> > > > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > > > of config?  e.g.,
> > > > > > 
> > > > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > > > 
> > > > > > Looks like the driver is trying to use 1280x1024.
> > > > > > 
> > > > > 
> > > > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > > > left upper corner of screen is displayed and LCD is blinking. 
> > > 
> > > Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> > > The bios specifies panel timings and size for 1024x768, so we don't have timing
> > > information for 1400x1050.  Without that it's guess-work get get proper panel
> > > timing which is why your get the blinking and such.
> > > 
> > Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that
> > panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper
> > timing values for 1280x1024 resolution? I know about special calculators, but I
> > don't have any information about that LCD. Any ideas?
> > 
> 
> Alex, one more. Take a look at latest log. It seems,that bios provides timing
> information for 1280x1024 resolution. But these timing values don't work. 
> 

Where do you see that?  The bios have timing info for 1024x768 only:

(II) RADEON(0): Panel ID string: 1024x768
(II) RADEON(0): Panel Size from BIOS: 1024x768
(II) RADEON(0): BIOS provided dividers will be used.

in your newer log, you force the panel size:
(**) RADEON(0): Panel size is forced to: 1400x1050

which attempts to do the right thing based on the current state of the hardware, but there is no other timing info in the bios.

Comment 16 Oleksiy Kokachev 2007-05-26 07:17:21 UTC
(In reply to comment #15)
> (In reply to comment #13)
> > (In reply to comment #12)
> > > (In reply to comment #11)
> > > > (In reply to comment #10)
> > > > > (In reply to comment #9)
> > > > > > (In reply to comment #8)
> > > > > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > > > > of config?  e.g.,
> > > > > > > 
> > > > > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > > > > 
> > > > > > > Looks like the driver is trying to use 1280x1024.
> > > > > > > 
> > > > > > 
> > > > > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > > > > left upper corner of screen is displayed and LCD is blinking. 
> > > > 
> > > > Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> > > > The bios specifies panel timings and size for 1024x768, so we don't have timing
> > > > information for 1400x1050.  Without that it's guess-work get get proper panel
> > > > timing which is why your get the blinking and such.
> > > > 
> > > Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that
> > > panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper
> > > timing values for 1280x1024 resolution? I know about special calculators, but I
> > > don't have any information about that LCD. Any ideas?
> > > 
> > 
> > Alex, one more. Take a look at latest log. It seems,that bios provides timing
> > information for 1280x1024 resolution. But these timing values don't work. 
> > 
> 
> Where do you see that?  The bios have timing info for 1024x768 only:
> 
> (II) RADEON(0): Panel ID string: 1024x768
> (II) RADEON(0): Panel Size from BIOS: 1024x768
> (II) RADEON(0): BIOS provided dividers will be used.
> 
> in your newer log, you force the panel size:
> (**) RADEON(0): Panel size is forced to: 1400x1050
> 
> which attempts to do the right thing based on the current state of the
> hardware, but there is no other timing info in the bios.
> 

I'll try to give additional information. 
1. Panel is not 1024x768,  because I used windows on it with 1280x1024 resolution. I Don't know why ddcprobe reports correct info about supported resolution, but DDC module ati driver cannot correctly get that information.
2. If force panel size to 1400x1050, then all modes work incorrectly, even 1024x768. Sorry, I misinformed You in previous post.
3.About timings. I found the following line in latest log, and I'm not sure, who exactly provides these values for 1280x1024 mode. It seems, that on-chip RMX provides them, but I don't know anything about RMX:
(**) RADEON(0): Panel size is forced to: 1400x1050
(II) RADEON(0): Total number of valid DDC mode(s) found: 0
(II) RADEON(0): Valid mode using on-chip RMX: 1280x1024
(II) RADEON(0): Valid mode using on-chip RMX: 1024x768
(II) RADEON(0): Valid mode using on-chip RMX: 800x600
(II) RADEON(0): Valid mode using on-chip RMX: 640x480
(II) RADEON(0): Total number of valid FP mode(s) found: 4
(--) RADEON(0): Virtual size is 1280x1024 (pitch 1280)
(**) RADEON(0): *Mode "1280x1024": 122.0 MHz (scaled from 0.0 MHz), 64.9 kHz, 60.0 Hz
(II) RADEON(0): Modeline "1280x1024"  122.00  1280 1488 1640 1880  1024 1052 1064 1082
Comment 17 Oleksiy Kokachev 2007-05-26 07:35:36 UTC
Also I've tried to change panel size to 1280x1024.. LCD is not blinking, but screen position is still incorrect. I've attached log file.
Comment 18 Oleksiy Kokachev 2007-05-26 07:36:31 UTC
Created attachment 10095 [details]
log file with panelsize 1280x1024
Comment 19 Alex Deucher 2007-05-26 08:44:33 UTC
(In reply to comment #16)
> (In reply to comment #15)
> > (In reply to comment #13)
> > > (In reply to comment #12)
> > > > (In reply to comment #11)
> > > > > (In reply to comment #10)
> > > > > > (In reply to comment #9)
> > > > > > > (In reply to comment #8)
> > > > > > > > can you try adding the 1400x1050 mode to the mode list in the display section
> > > > > > > > of config?  e.g.,
> > > > > > > > 
> > > > > > > > Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
> > > > > > > > 
> > > > > > > > Looks like the driver is trying to use 1280x1024.
> > > > > > > > 
> > > > > > > 
> > > > > > I mean that I want to set 1280x1024. But when I used PanelSize option, only
> > > > > > left upper corner of screen is displayed and LCD is blinking. 
> > > > > 
> > > > > Are there any modes that do work on the panel?  Are you sure it's 1400x1050? 
> > > > > The bios specifies panel timings and size for 1024x768, so we don't have timing
> > > > > information for 1400x1050.  Without that it's guess-work get get proper panel
> > > > > timing which is why your get the blinking and such.
> > > > > 
> > > > Only 1024x768 works correctly. I'm sure, that 1400x1050 is supported by that
> > > > panel, because it's SVGA+ 15 inch lcd 1.5 years old. How can I calculate proper
> > > > timing values for 1280x1024 resolution? I know about special calculators, but I
> > > > don't have any information about that LCD. Any ideas?
> > > > 
> > > 
> > > Alex, one more. Take a look at latest log. It seems,that bios provides timing
> > > information for 1280x1024 resolution. But these timing values don't work. 
> > > 
> > 
> > Where do you see that?  The bios have timing info for 1024x768 only:
> > 
> > (II) RADEON(0): Panel ID string: 1024x768
> > (II) RADEON(0): Panel Size from BIOS: 1024x768
> > (II) RADEON(0): BIOS provided dividers will be used.
> > 
> > in your newer log, you force the panel size:
> > (**) RADEON(0): Panel size is forced to: 1400x1050
> > 
> > which attempts to do the right thing based on the current state of the
> > hardware, but there is no other timing info in the bios.
> > 
> 
> I'll try to give additional information. 
> 1. Panel is not 1024x768,  because I used windows on it with 1280x1024
> resolution. I Don't know why ddcprobe reports correct info about supported
> resolution, but DDC module ati driver cannot correctly get that information.

in this case, ddcprobe just lists the modes the bios is capable of programming via VBE.  It doesn't have anything to do with the panel size (you note there are also 1600x1200 modes).

> 2. If force panel size to 1400x1050, then all modes work incorrectly, even
> 1024x768. Sorry, I misinformed You in previous post.

Right, because as I said the panel is always fed with the native timings.  All smaller resolutions are handled by the scaler.  Those timings that are derived when you force the panel size are obviously wrong and the panel does not like them.

> 3.About timings. I found the following line in latest log, and I'm not sure,
> who exactly provides these values for 1280x1024 mode. It seems, that on-chip
> RMX provides them, but I don't know anything about RMX:

RMX is the built in panel scaler.  it scales lower resolutions up to the panels native resolution.  It automatically adds all resolutions you specify that are smaller than the panel's "native" resolution.

What you need to do is to find out what timings your panel uses for 1400x1050 under windows.  You might try an application like powerstrip in windows to get the modeline that your panel uses, which you could then hack into the radeon driver.
Comment 20 Oleksiy Kokachev 2007-06-14 16:32:14 UTC
Thanks.. For everyone..


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.