i810 modesetting and external VGA, not working

Ross Burton ross at burtonini.com
Thu Jan 4 13:06:21 PST 2007


On Thu, 2007-01-04 at 10:05 -0800, Keith Packard wrote:
> > And now when I xrandr --auto with the TFT plugged in, X hangs. :/  I
> > shall dig out another machine later to try and get logs/gdb of it
> > crashing.
> 
> Yeah, that would be useful -- I haven't actually tried adding modelines
> myself as I haven't needed to. Untested code remains broken code...
> 
> > Does this look reasonable?  How would I get xrandr to disable the LVDS,
> > enable the CRTC, and switch to 1680x1050 in a single call?
> 
> xrandr --output VGA --auto --output LVDS --off
> 
> should do the trick.

Typing that xrandr with the configuration I posted earlier crashes the
i810 driver.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210866000 (LWP 18529)]
0xb7e3a6a8 in strcmp () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0 0xb7e3a6a8 in strcmp () from /lib/tls/i686/cmov/libc.so.6
#1 0xb7c3293d in xf86ProbeOutputModes (pScrn=0x81f41a8, maxX=1680,
maxY=1050) at ../../src/i830_xf86Crtc.c:760
#2 0xb7c2d2a2 in xf86RandR12GetInfo12 (pScreen=0x8201fd8,
rotations=0xbfe14f5a) at ../../src/i830_randr.c:829
#3 0x08154e19 in RRGetInfo ()
#4 0x0815801a in ProcRRGetScreenSizeRange ()
#5 0x08152645 in RRVerticalRefresh ()
#6 0x0813c20e in XaceHook ()
#7 0x08086fbf in Dispatch ()
#8 0x0806f115 in main ()
(gdb) frame 1
#1 0xb7c3293d in xf86ProbeOutputModes (pScrn=0x81f41a8, maxX=1680,
maxY=1050) at ../../src/i830_xf86Crtc.c:760
760 if (!strcmp (o->name, n->name) && xf86ModesEqual (o, n))
(gdb) l
755 *op = i;
756 }
757 /* prune identical modes */
758 for (o = output; o && (n = o->next); o = n)
759 {
760 if (!strcmp (o->name, n->name) && xf86ModesEqual (o, n))761 {
762 o->next = n->next;
763 xfree (n->name);
764 xfree (n);
(gdb) print output
$2 = (xf86OutputPtr) 0x81f6768
(gdb) print o
$3 = 0
(gdb) print n
No symbol "n" in current context.
(gdb) print *output
$4 = {scrn = 0x81f41a8, crtc = 0x0, possible_crtcs = 1,
possible_clones = 1, interlaceAllowed = 0, doubleScanAllowed = 0,
probed_modes = 0x8200a28, options = 0x81f67c0,
conf_monitor = 0x81e67e8, initial_x = 0, initial_y = 0,
status = XF86OutputStatusConnected, MonInfo = 0x0,
subpixel_order = 0, mm_width = 0, mm_height = 0,
name = 0x81f67b8 "VGA", funcs = 0xb7c49680,
driver_private = 0x81f5028, randr_output = 0x8242a18}
(gdb)

gdb is being funny by showing o as NULL, but output is valid.  I'm
guessing that n->name is NULL...  I'll add some more debugging to find
out what is going on.

Ross
-- 
Ross Burton                                 mail: ross at burtonini.com
                                          jabber: ross at burtonini.com
                                     www: http://www.burtonini.com./
 PGP Fingerprint: 1A21 F5B0 D8D0 CFE3 81D4 E25A 2D09 E447 D0B4 33DF






More information about the xorg mailing list