Bug 17039

Summary: X crashes when switching to VT on docked laptop
Product: xorg Reporter: Leif Gruenwoldt <leifer>
Component: Driver/radeonhdAssignee: Luc Verhaegen <lverhaegen>
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 crash log with verbose 7 none

Description Leif Gruenwoldt 2008-08-08 07:39:25 UTC
Created attachment 18186 [details]
xorg crash log with verbose 7

Switching to a VT when my laptop is docked causes X to crash. Below is the X backtrace.

------------------------------------------------------------------------------

$ X -logverbose 7

X.Org X Server 1.4.99.905 (1.5.0 RC 5)
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.18-92.1.6.el5xen i686
Current Operating System: Linux devlap4-king 2.6.25.11-97.fc9.i686 #1 SMP Mon
Jul 21 01:31:09 EDT 2008                   i686
Build Date: 02 July 2008  01:36:37PM
Build ID: xorg-x11-server 1.4.99.905-2.20080702.fc9
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Aug  8 10:12:05 2008
(==) Using config file: "/etc/X11/xorg.conf"
expected keysym, got XF86Info: line 914 of inet
expected keysym, got XF86Info: line 914 of inet
rhd_mc.c:558: RHDRestoreMC: Assertion '(RHDRegRead(rhdPtr, D1VGA_CONTROL) &
D1VGA_MODE_ENABLE) != D1VG                  A_MODE_ENABLE' failed.

Backtrace:
0: X(xf86SigHandler+0x79) [0x80bc189]
1: [0x110400]
2: [0x110416]
3: /lib/libc.so.6(kill+0x16) [0x451976]
4: /usr/lib/xorg/modules/drivers//radeonhd_drv.so(RhdAssertFailed+0x51)
[0x39e611]
5: /usr/lib/xorg/modules/drivers//radeonhd_drv.so(RHDRestoreMC+0x13c)
[0x3adcdc]
6: /usr/lib/xorg/modules/drivers//radeonhd_drv.so [0x3992fd]
7: X(xf86Wakeup+0x297) [0x80bcdc7]
8: X(WakeupHandler+0x55) [0x8089b75]
9: X(WaitForSomething+0x1a3) [0x8127b73]
10: X(Dispatch+0x7e) [0x8085b1e]
11: X(main+0x47d) [0x806b67d]
12: /lib/libc.so.6(__libc_start_main+0xe6) [0x43d5d6]
13: X(FontFileCompleteXLFD+0x221) [0x806aa61]

Fatal server error:
Caught signal 11.  Server aborting

rhd_mc.c:558: RHDRestoreMC: Assertion '(RHDRegRead(rhdPtr, D1VGA_CONTROL) &
D1VGA_MODE_ENABLE) != D1VG                  A_MODE_ENABLE' failed.
X: symbol lookup error: /usr/lib/xorg/modules/drivers//radeonhd_drv.so:
undefined symbol: xf86abort
Comment 1 Egbert Eich 2008-08-11 00:41:44 UTC
This will only happen when something else besides the driver messes with the chipset registers. Are you docking after you've started X?
This problem might go away once the atombios_support branch is merged as in there we set the BIOS scratch registers to tell the BIOS to keep it's fingers off the hardware.

Comment 2 Leif Gruenwoldt 2008-08-11 06:37:50 UTC
Hi Egbert, yes the steps to reproduce are this:

1. start X 
2. dock laptop
3. switch to VT

crash.

I will look forward to the merging of the atombios_support branch then :)
Comment 3 Egbert Eich 2008-08-12 22:56:47 UTC
So this is a problem of docking.
I assume the system/video BIOS is doing something when you dock.
Please try the latest GIT, I've now pushed the fixes which should silence the video BIOS while the driver is running.
Of course the driver could explicitly disable the VGA subsystem on leavevt/closescreen again. But this isn't the solution: nothing should turn it back on while the driver is running. In fact nothing should interfere with the driver at all as any interference might cause problems.
Comment 4 Leif Gruenwoldt 2008-08-13 18:03:53 UTC
Thankyou! Latest from git fixes the problem. 

Marking as fixed.
Comment 5 Leif Gruenwoldt 2008-08-14 06:55:33 UTC
On a related note, the screen corruption (black with large rectangular coloured blobs) I used to get when docking my laptop (when X was running) is fixed now too. I used to have to switch to a VT and then back to X to clear it. But now docking "just works". Thankyou :)

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.