Bug 13533

Summary: Radeon Mobility X700 LVDS internal panel is all white when a CRT is connected on boot
Product: xorg Reporter: Chí-Thanh Christopher Nguyễn <chithanh>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: bugzi11.fdo.tormod
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log-CRT-connected-on-boot
none
Xorg.0.log-CRT-connected-after-boot
none
Xorg.0.log-atombios-CRT-connected-on-boot
none
Xorg.0.log-atombios-CRT-connected-after-boot
none
radeontool-regmatch-all-crt-connected-on-boot
none
radeontool-regmatch-all-crt-connected-after-boot
none
radeondump-output
none
radeontool-regmatch-all-crt-connected-on-boot
none
radeontool-regmatch-all-crt-connected-after-boot
none
before.dump
none
after.dump
none
finally.dump none

Description Chí-Thanh Christopher Nguyễn 2007-12-05 04:09:11 UTC
Using xserver 1.4 and xf86-video-ati from git (tried both master and atombios-support branch):
On my notebook (Mobility Radeon X700) the internal panel does not work correctly if a CRT is connected on boot. When X is started, the panel will be detected but display all white. (While on the console, the internal panel will remain dark.)

However, if the CRT is connected after the system has started, the internal panel works fine.

In Xorg.0.log there is one interesting difference:
---
-(II) RADEON(0): PLL parameters: rf=2700 rd=12 min=20000 max=50000; xclk=40000
+(II) RADEON(0): PLL parameters: rf=2700 rd=7 min=20000 max=50000; xclk=40000
---
Full logs will be attached.
Comment 1 Chí-Thanh Christopher Nguyễn 2007-12-05 04:10:07 UTC
Created attachment 12959 [details]
Xorg.0.log-CRT-connected-on-boot
Comment 2 Chí-Thanh Christopher Nguyễn 2007-12-05 04:10:51 UTC
Created attachment 12960 [details]
Xorg.0.log-CRT-connected-after-boot
Comment 3 Chí-Thanh Christopher Nguyễn 2007-12-05 04:11:59 UTC
Created attachment 12961 [details]
Xorg.0.log-atombios-CRT-connected-on-boot

This is the log when using the atombios-support branch from xf86-video-ati git
Comment 4 Chí-Thanh Christopher Nguyễn 2007-12-05 04:12:39 UTC
Created attachment 12962 [details]
Xorg.0.log-atombios-CRT-connected-after-boot
Comment 5 Alex Deucher 2007-12-05 20:23:30 UTC
Does it work better if you revert commit b368b0f22cd1d7ef9b4c65d82929c76f3b82d573 on the atombios branch?
Comment 6 Chí-Thanh Christopher Nguyễn 2007-12-08 11:28:54 UTC
(In reply to comment #5)

No, reverting that commit makes no difference.
Comment 7 Alex Deucher 2007-12-09 21:11:09 UTC
I think bug 12913 and bug 13533 may be related.  It seems pll 0 has issues that may be related to bios init.
Comment 8 Alex Deucher 2007-12-11 07:49:16 UTC

*** This bug has been marked as a duplicate of bug 12913 ***
Comment 9 Chí-Thanh Christopher Nguyễn 2007-12-14 03:03:06 UTC
The fix for bug 12913 does not correct the LVDS all white issue. In fact, it makes things worse for me (bug 12913 comment 15). It seems that the PLL issue is not related to this bug.
Comment 10 Alex Deucher 2007-12-14 08:19:29 UTC
does the current master ati tree (as of a84d446fd301d456bcea8f7abdc52e5a30776412) work for you?  does reverting that commit help?  Can you also try the atombios-support branch?  I have some additional pll tweaks there that may be required.
Comment 11 Chí-Thanh Christopher Nguyễn 2007-12-14 09:44:56 UTC
commit a84d446fd301d456bcea8f7abdc52e5a30776412 solves the distorted display issue in bug 12913 comment 15, but breaks vt switching with radeonfb when a CRT is connected on boot (the CRT will go dark after pressing Ctrl+Alt+F1). Will try without radeonfb later.

The LVDS is still all white.
Comment 12 Chí-Thanh Christopher Nguyễn 2007-12-14 15:35:48 UTC
Created attachment 13113 [details]
radeontool-regmatch-all-crt-connected-on-boot

output of radeontool regmatch '*' when a crt is connected on boot
Comment 13 Chí-Thanh Christopher Nguyễn 2007-12-14 15:36:29 UTC
Created attachment 13114 [details]
radeontool-regmatch-all-crt-connected-after-boot

output of radeontool regmatch '*' when a crt is connected after boot
Comment 14 Chí-Thanh Christopher Nguyễn 2007-12-14 15:40:51 UTC
Created attachment 13116 [details]
radeondump-output

radeondump output and diff for both cases
Comment 15 Alex Deucher 2007-12-16 10:30:07 UTC
Does commenting out line 4040 (OUTREG(RADEON_LVDS_PLL_CNTL, restore->lvds_pll_cntl);) of radeon_driver.c from ati git master help?
Comment 16 Alex Deucher 2007-12-16 11:08:46 UTC
I think I've fixed this.  Can you test again with ati git master?
Comment 17 Chí-Thanh Christopher Nguyễn 2007-12-16 13:58:56 UTC
Unfortunately, the problem still exists with current git master.
Comment 18 Chí-Thanh Christopher Nguyễn 2007-12-16 13:59:49 UTC
Created attachment 13146 [details]
radeontool-regmatch-all-crt-connected-on-boot
Comment 19 Chí-Thanh Christopher Nguyễn 2007-12-16 14:00:28 UTC
Created attachment 13147 [details]
radeontool-regmatch-all-crt-connected-after-boot

radeontool output with current git master
Comment 20 Alex Deucher 2007-12-23 22:17:31 UTC
Can you try again with ati git master (commit 653da558148cc601bc1f80253e92ef98c75ef37a)?
Comment 21 Chí-Thanh Christopher Nguyễn 2007-12-28 05:01:36 UTC
Tried current git, no difference.
Comment 22 Alex Deucher 2008-12-03 00:55:34 UTC
Is this still an issue with a newer driver (6.9.0 or newer)?
Comment 23 Chí-Thanh Christopher Nguyễn 2008-12-04 02:41:20 UTC
The issue still exists with a git checkout from today.
Comment 24 Chí-Thanh Christopher Nguyễn 2009-03-23 08:44:49 UTC
With xf86-video-ati-6.12.1 and the R4xxATOM option enabled, the situation is now better.
The LVDS now shows a picture, the same as the VGA-0. I can turn on and off LVDS and VGA-0 independently with xrandr.

Remaining issues:

The VGA-0 is always driven at 1280x800 (the internal panel's resolution), no matter what I set in xrandr. xrandr even wrongly claims that VGA-0 is running at a different resolution when in fact it is not.

VGA-0 and LVDS always display the same content. If I change the monitor layout eg. with xrandr --output VGA-0 --right-of LVDS then both displays show what LVDS should show.

With R4xxATOM disabled, the situation is the same as before.
Comment 25 Chí-Thanh Christopher Nguyễn 2009-03-23 09:06:42 UTC
Some additional information:

The R4xxATOM problem that LVDS and VGA-0 always show the same contents and have the same mode is independent on whether a CRT was connected on boot. I will open a separate bug for this.

If I start X with R4xxATOM enabled, then start again with R4xxATOM disabled, then the problem is fixed, the LVDS is no longer all white and I can use xrandr to set different modes to the displays.
Comment 26 Alex Deucher 2009-03-23 09:32:10 UTC
(In reply to comment #25)
> If I start X with R4xxATOM enabled, then start again with R4xxATOM disabled,
> then the problem is fixed, the LVDS is no longer all white and I can use xrandr
> to set different modes to the displays.
> 

can you attach register dumps using radeontool (http://cgit.freedesktop.org/~airlied/radeontool) before running with R4xxATOM and after?

(as root):
(start with broken state)
./radeontool regmatch '*' > before.dump
(switch to R4xxATOM)
./radeontool regmatch '*' > after.dump
Comment 27 Chí-Thanh Christopher Nguyễn 2009-03-24 05:26:58 UTC
Created attachment 24191 [details]
before.dump

output of radeontool regmatch '*' in broken state with R4xxATOM disabled
Comment 28 Chí-Thanh Christopher Nguyễn 2009-03-24 05:27:32 UTC
Created attachment 24192 [details]
after.dump

output of radeontool regmatch '*' in working state with R4xxATOM enabled
Comment 29 Chí-Thanh Christopher Nguyễn 2009-03-24 05:28:40 UTC
Created attachment 24193 [details]
finally.dump

output of radeontool regmatch '*' in working state with R4xxATOM disabled, after X was previously started with R4xxATOM enabled
Comment 30 Alex Deucher 2010-10-19 16:02:19 UTC
this should be fixed in:
5a7c9d94733a0db1d3565447acc9f0e751db5950

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.