Bug 12083

Summary: DVI output on Mobility 9000 (M9) (ThinkPad R51) does not work
Product: xorg Reporter: Ulrich Gemkow <gemkow>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log file none

Description Ulrich Gemkow 2007-08-21 01:56:06 UTC
With current git, I cannot get the DVI output on an R51 to work.
The displays appearently receives a signal but says "Out of range"
and nothing is displayed.

This was working was an earlier drop of the driver taken on
about Dec 23 2006.

On datapoint may be the following output od xrandr taken when
an analog display is connected:

Screen 0: minimum 640 x 480, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200     304.0*
   1400x1050     305.0
   1280x1024     305.0
   1024x768      305.0
   800x600       305.0
   640x480       305.0

which shows refresh rates which are a little bit high.

I will try to check for the diffs between the working and the
current version of the but maybe something "triggers"
Comment 1 Ulrich Gemkow 2007-08-21 01:57:11 UTC
Created attachment 11190 [details] [review]
Xorg log file
Comment 2 Alex Deucher 2007-08-21 06:47:59 UTC
With mergedfb you have to force the the monitorlayout to use LVDS with internal TMDS.

Option "MonitorLayout" "LVDS, TMDS"

Your best bet for full functionality is to use the randr-1.2 branch.
Comment 3 Ulrich Gemkow 2007-08-27 07:43:19 UTC
(In reply to comment #2)
> With mergedfb you have to force the the monitorlayout to use LVDS with
> internal TMDS.
> 
> Option "MonitorLayout" "LVDS, TMDS"
> 
> Your best bet for full functionality is to use the randr-1.2 branch.
> 

Thanks for the answer. In fact I tried the MonitorLayout option and
the randr-1.2 branch before reporting the bug and this does not work.

The solution was/is a patch which showed up in bug #2859, comment #73
(not reading the TMDS-PLL values from the BIOS but using the default values
from the driver). I had this change in the driver which worked before
but thought this is unrelated - sorry about this.

With this change the DVI-output an our T51 works.

This shows the real problem: Our TPs R51 seem to be one more system which
contains invalid BIOS TMDS/PLL entries which the driver should ignore.

In comment #79 of bug #2859 it is proposed to detect invalid values
in these tables and ignore them. But hot to recognize that the entries
are invalid??
Comment 4 Alex Deucher 2007-08-27 07:54:05 UTC
I think for now I'll add an output attribute to allow the user to select which table to use on the fly (bios table or generic table).
Comment 5 Alex Deucher 2007-08-27 21:53:44 UTC
I've added an output attribute tmds_pll which you can use to switch the tmds pll values on the fly.

xrandr --output DVI-0 --set tmds_pll bios
or
xrandr --output DVI-0 --set tmds_pll driver

Comment 6 Ulrich Gemkow 2007-08-27 22:30:18 UTC
(In reply to comment #5)

Hello Alex,

> I've added an output attribute tmds_pll which you can use to switch the tmds
> pll values on the fly.

thank you very much. This helps a lot.

But I do not really understand why this is suitable as an output
option. If I understand it correctly, the problem comes from
invalid BIOS entries for the PLL tables.

So this is IMHO a model specific (or even hardware specific when
BIOS is counted as part of hardware) setting and this may be better
set by an xorg.conf-Option in the device section.

Making this an output attribute will cause in my understanding that
the server will start with probably wrong values for the PLLs because
the setting with xrandr is possible only after the server came up.

I understand that it is a goal to make as much as possible
configurable by xrandr but I think there may remain some fundamental
hardware specific options (PCI, AGP and maybe also such BIOS options).
Comment 7 Alex Deucher 2007-08-28 06:12:36 UTC
(In reply to comment #6)

> thank you very much. This helps a lot.
> 
> But I do not really understand why this is suitable as an output
> option. If I understand it correctly, the problem comes from
> invalid BIOS entries for the PLL tables.

not necessarily invalid (although there are probably cases of that), it depends a lot on the clock cut-offs for each pll setting.

> 
> So this is IMHO a model specific (or even hardware specific when
> BIOS is counted as part of hardware) setting and this may be better
> set by an xorg.conf-Option in the device section.
> 
> Making this an output attribute will cause in my understanding that
> the server will start with probably wrong values for the PLLs because
> the setting with xrandr is possible only after the server came up.
> 
> I understand that it is a goal to make as much as possible
> configurable by xrandr but I think there may remain some fundamental
> hardware specific options (PCI, AGP and maybe also such BIOS options).
> 

It probably makes sense to make it a driver option as well you you can force the default to be either the bios or driver table, but I've seen cases where the bios tables work better for some monitors and the driver tables work better for others on the same card.  It really depending on the mode.  I'll go ahead and add a driver option as well to change the default.
Comment 8 Alex Deucher 2007-08-28 20:51:13 UTC
fixed: 61c1fdaa8553581944f78a11e6f9aa76163a468a

Option "DefaultTMDSPLL" "true"

should do the trick for you.  you can still use the output attribute to toggle it on the fly as well.
Comment 9 Ulrich Gemkow 2007-08-29 08:54:08 UTC
(In reply to comment #8)
> fixed: 61c1fdaa8553581944f78a11e6f9aa76163a468a
> 
> Option "DefaultTMDSPLL" "true"
> 
> should do the trick for you.  you can still use the output attribute to toggle
> it on the fly as well.
> 

Thanks!

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.