* Re: Matrox G550, dual head, 1680x1050
2007-03-05 4:59 ` Petr Vandrovec
@ 2007-03-05 6:33 ` Geert Uytterhoeven
2007-03-05 8:09 ` [Linux-fbdev-devel] " Michel Dänzer
2007-03-05 7:34 ` Hans-Jürgen Koch
2007-03-05 20:02 ` Hans-Jürgen Koch
2 siblings, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2007-03-05 6:33 UTC (permalink / raw)
To: Linux Frame Buffer Device Development; +Cc: Tilman Sauerbeck, xorg
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: TEXT/PLAIN; charset=UTF-8, Size: 1200 bytes --]
On Sun, 4 Mar 2007, Petr Vandrovec wrote:
> Hans-Jürgen Koch wrote:
> > Am Freitag, 2. März 2007 16:24 schrieb Tilman Sauerbeck:
> > Meanwhile I doubt this explanation. Here's what fbset has to say:
> >
> > $ fbset -fb /dev/fb1 --show
> >
> > mode "1680x1050-60"
> > # D: 135.501 MHz, H: 65.396 kHz, V: 59.997 Hz
> > geometry 1680 1050 1680 1050 32
> > timings 7380 32 224 32 4 136 4
> > rgba 8/16,8/8,8/0,8/24
> > endmode
> >
> > So, even fbset thinks it's 1680x1050. But where does the distortion come
> > from???
>
> 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?)
These days at least the X server in Debian looks correctly at the frame buffer
line length, else it wouldn't work on PS3 with non-fullscreen modes.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
[-- Attachment #2: Type: text/plain, Size: 345 bytes --]
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
[-- Attachment #3: Type: text/plain, Size: 182 bytes --]
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [Linux-fbdev-devel] Matrox G550, dual head, 1680x1050
2007-03-05 6:33 ` Geert Uytterhoeven
@ 2007-03-05 8:09 ` Michel Dänzer
0 siblings, 0 replies; 11+ messages in thread
From: Michel Dänzer @ 2007-03-05 8:09 UTC (permalink / raw)
To: linux-fbdev-devel; +Cc: xorg
On Mon, 2007-03-05 at 07:33 +0100, Geert Uytterhoeven wrote:
> On Sun, 4 Mar 2007, Petr Vandrovec wrote:
> > Hans-Jrgen Koch wrote:
> > > Am Freitag, 2. Mrz 2007 16:24 schrieb Tilman Sauerbeck:
> > > Meanwhile I doubt this explanation. Here's what fbset has to say:
> > >
> > > $ fbset -fb /dev/fb1 --show
> > >
> > > mode "1680x1050-60"
> > > # D: 135.501 MHz, H: 65.396 kHz, V: 59.997 Hz
> > > geometry 1680 1050 1680 1050 32
> > > timings 7380 32 224 32 4 136 4
> > > rgba 8/16,8/8,8/0,8/24
> > > endmode
> > >
> > > So, even fbset thinks it's 1680x1050. But where does the distortion come
> > > from???
> >
> > 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?)
>
> These days at least the X server in Debian looks correctly at the frame buffer
> line length, else it wouldn't work on PS3 with non-fullscreen modes.
It depends on the driver. The fbdev and radeon drivers should handle it
correctly, not sure about others.
--
Earthling Michel Dänzer | http://tungstengraphics.com
Libre software enthusiast | Debian, X and DRI developer
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Linux-fbdev-devel] Matrox G550, dual head, 1680x1050
2007-03-05 4:59 ` Petr Vandrovec
2007-03-05 6:33 ` Geert Uytterhoeven
@ 2007-03-05 7:34 ` Hans-Jürgen Koch
2007-03-05 20:02 ` Hans-Jürgen Koch
2 siblings, 0 replies; 11+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-05 7:34 UTC (permalink / raw)
To: Petr Vandrovec; +Cc: linux-fbdev-devel, xorg
Am Montag, 5. März 2007 05:59 schrieb Petr Vandrovec:
> Hans-Jürgen Koch wrote:
> > Am Freitag, 2. März 2007 16:24 schrieb Tilman Sauerbeck:
> > Meanwhile I doubt this explanation. Here's what fbset has to say:
> >
> > $ fbset -fb /dev/fb1 --show
> >
> > mode "1680x1050-60"
> > # D: 135.501 MHz, H: 65.396 kHz, V: 59.997 Hz
> > geometry 1680 1050 1680 1050 32
> > timings 7380 32 224 32 4 136 4
> > rgba 8/16,8/8,8/0,8/24
> > endmode
> >
> > So, even fbset thinks it's 1680x1050. But where does the distortion come
> > from???
>
> 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?)
Thanks a lot, Petr, you're on the right track! With
fbset -fb /dev/fb1 -g 1680 1050 1696 1050 32 -t 7380 224 32 32 4 136 4
the distortion disappears. At the moment I have to do this manually after X
has started. I'll have to experiment a bit with my configurations, but at
least now I have working xinerama.
Thanks again for your help.
Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Matrox G550, dual head, 1680x1050
2007-03-05 4:59 ` Petr Vandrovec
2007-03-05 6:33 ` Geert Uytterhoeven
2007-03-05 7:34 ` Hans-Jürgen Koch
@ 2007-03-05 20:02 ` Hans-Jürgen Koch
2007-03-06 9:25 ` Petr Vandrovec
2 siblings, 1 reply; 11+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-05 20:02 UTC (permalink / raw)
To: Petr Vandrovec; +Cc: Tilman Sauerbeck, linux-fbdev-devel, xorg
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@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
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Matrox G550, dual head, 1680x1050
2007-03-05 20:02 ` Hans-Jürgen Koch
@ 2007-03-06 9:25 ` Petr Vandrovec
2007-03-06 9:38 ` [Linux-fbdev-devel] " Hans-Jürgen Koch
2007-03-06 9:48 ` Geert Uytterhoeven
0 siblings, 2 replies; 11+ messages in thread
From: Petr Vandrovec @ 2007-03-06 9:25 UTC (permalink / raw)
To: Hans-Jürgen Koch; +Cc: Tilman Sauerbeck, linux-fbdev-devel, xorg
Hans-Jürgen Koch wrote:
> 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.
Second head always starts in 640x480/32bpp. You have to use fbset to
switch it to different mode, so matroxfb works fine as far as I can tell.
> 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.
Because X (mga driver) was programming hardware...
> 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.
Yes, and this corrects X programming mistake.
> 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.
Well, fbset == matroxfb, so I do not quite understand your complaint.
Petr
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Linux-fbdev-devel] Matrox G550, dual head, 1680x1050
2007-03-06 9:25 ` Petr Vandrovec
@ 2007-03-06 9:38 ` Hans-Jürgen Koch
2007-03-06 9:48 ` Geert Uytterhoeven
1 sibling, 0 replies; 11+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-06 9:38 UTC (permalink / raw)
To: Petr Vandrovec; +Cc: linux-fbdev-devel, xorg
Am Dienstag, 6. März 2007 10:25 schrieb Petr Vandrovec:
> Hans-Jürgen Koch wrote:
> > 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.
>
> Second head always starts in 640x480/32bpp. You have to use fbset to
> switch it to different mode, so matroxfb works fine as far as I can tell.
>
> > 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.
>
> Because X (mga driver) was programming hardware...
>
> > 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.
>
> Yes, and this corrects X programming mistake.
>
> > 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.
>
> Well, fbset == matroxfb, so I do not quite understand your complaint.
>
If matroxfb deliberately initializes the second head to 640x480/32bpp, then it
is OK. I thought the kernel boot parameters would apply to both heads. But on
second thought, I agree, it has to be that way. Otherwise you'd run into
trouble if you had two different monitors connected as there are no
individual settings for both heads.
Thanks for your explanations!
Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Matrox G550, dual head, 1680x1050
2007-03-06 9:25 ` Petr Vandrovec
2007-03-06 9:38 ` [Linux-fbdev-devel] " Hans-Jürgen Koch
@ 2007-03-06 9:48 ` Geert Uytterhoeven
2007-03-06 11:35 ` Petr Vandrovec
1 sibling, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2007-03-06 9:48 UTC (permalink / raw)
To: Petr Vandrovec
Cc: Linux Frame Buffer Device Development, Tilman Sauerbeck, xorg
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: TEXT/PLAIN; charset=UTF-8, Size: 1448 bytes --]
On Tue, 6 Mar 2007, Petr Vandrovec wrote:
> Hans-Jürgen Koch wrote:
> > 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.
>
> Second head always starts in 640x480/32bpp. You have to use fbset to
> switch it to different mode, so matroxfb works fine as far as I can tell.
> > $ 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.
>
> Yes, and this corrects X programming mistake.
>
> > 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.
>
> Well, fbset == matroxfb, so I do not quite understand your complaint.
If I followed this discussion correctly, there's still an issue with matroxfb,
as it doesn't seem to round up xres_virtual to 1696 automatically.
You have to do that yourself.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
[-- Attachment #2: Type: text/plain, Size: 345 bytes --]
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
[-- Attachment #3: Type: text/plain, Size: 182 bytes --]
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Matrox G550, dual head, 1680x1050
2007-03-06 9:48 ` Geert Uytterhoeven
@ 2007-03-06 11:35 ` Petr Vandrovec
0 siblings, 0 replies; 11+ messages in thread
From: Petr Vandrovec @ 2007-03-06 11:35 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Linux Frame Buffer Device Development, Tilman Sauerbeck, xorg
Geert Uytterhoeven wrote:
> On Tue, 6 Mar 2007, Petr Vandrovec wrote:
>> Hans-J�rgen Koch wrote:
>>> 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.
>> Second head always starts in 640x480/32bpp. You have to use fbset to
>> switch it to different mode, so matroxfb works fine as far as I can tell.
>
>>> $ 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.
>> Yes, and this corrects X programming mistake.
>>
>>> 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.
>> Well, fbset == matroxfb, so I do not quite understand your complaint.
>
> If I followed this discussion correctly, there's still an issue with matroxfb,
> as it doesn't seem to round up xres_virtual to 1696 automatically.
> You have to do that yourself.
Well, as far as I can tell 1680 is legal line length for 32bit color
mode. In Hans-Jurgen scenario X program display themselves (otherwise
fbset would not report 640x480 on /dev/fb1 once X start), and apparently
screw up rounding. Having to use 1696 should be necessary only for
16bpp, and for such case matroxfb already contains code to round up
value to multiple of 32...
So unless somebody can reproduce problem with using fbdev driver on both
primary and secondary head I do not believe there is any problem to fix
on matroxfb side.
Petr
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
^ permalink raw reply [flat|nested] 11+ messages in thread