[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