[Linux-fbdev-devel] Matrox G550, dual head, 1680x1050

Hans-Jürgen Koch hjk at linutronix.de
Mon Mar 5 12:02:31 PST 2007


Am Montag, 5. März 2007 05:59 schrieb Petr Vandrovec:

>
> Can you try setting vxres for second head from 1680 to 1696, or 1728?
> Maybe X look at vxres and not at framebuffer line length (what fbset -i
> reports for line length?)
>

Here are more details:

1.) I boot my kernel (vanilla 2.6.20.1) with the following parameters:

video=matroxfb:outputs:120,pixclock:7380,xres:1680,yres:1050,upper:32,
               lower:4,left:32,right:224,hslen:136,vslen:4,depth:32

This initializes the primary head correctly. The second head is probably 
wrong, because the monitor's on screen message complains about a non-ideal 
resolution.

2.) X starts with Xinerama=On, using this modeline for each monitor:

Modeline "1680x1050 at 60" 154.20 1680 1712 2296 2328 1050 1071 1081 1103

3.) After that, fbset -i reports this:

$ fbset -i -fb /dev/fb0

mode "1680x1050-60"
    # D: 135.501 MHz, H: 65.396 kHz, V: 59.997 Hz
    geometry 1680 1050 1696 2473 32
    timings 7380 32 224 32 4 136 4
    accel true
    rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
    Name        : MATROX
    Address     : 0xd4000000
    Size        : 16777216
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 6784
    MMIO Address: 0xd6000000
    MMIO Size   : 16384
    Accelerator : Matrox G400


$ fbset -i -fb /dev/fb1

mode "640x480-60"
    # D: 25.176 MHz, H: 31.469 kHz, V: 59.942 Hz
    geometry 640 480 640 480 32
    timings 39721 48 16 33 10 96 2
    rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
    Name        : MATROX DH
    Address     : 0xd5800000
    Size        : 8388608
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 2560
    MMIO Address: 0xd6000000
    MMIO Size   : 16384
    Accelerator : No

As you can see, the second monitor fell back to VGA resolution, but the logs 
tell that X thinks it successfully switched to 1680x1050. The KDE control 
center reports the same. The image on the second monitor is distorted.

4.) I then issue the following command:

$ fbset -fb /dev/fb1 -g 1680 1050 1696 1050 32 -t 7380 224 32 32 4 136 4

With that, the image on the second monitor immediately becomes clear, and I 
have a fully working xinerama configuration then.

As far as I can see, fbset is the only way to initialize the second head 
properly. Neither matroxfb nor mga do it correctly with 1680x1050.

Cheers,
Hans



More information about the xorg mailing list