linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Matrox G550, dual head, 1680x1050
@ 2007-03-01 23:25 Hans-Jürgen Koch
  2007-03-01 23:29 ` Alex Deucher
  0 siblings, 1 reply; 16+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-01 23:25 UTC (permalink / raw)
  To: linux-fbdev-devel

Hi,
I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050) and a 
Matrox G550 dual DVI card. I'm now trying to set up a dual head configuration 
with this equipment.

I'm booting with video=matroxfb:vesa:0x1BB, as there is no 1680x1050 vesa 
mode. This works, both monitors show the same and complain about the wrong 
resolution.

Now I start my X server (xorg.conf below) and wish to get a xinerama setup. 
Monitor 1 switches to 1680x1050 and shows a nice clean screen. Monitor 2 
seems to have problems, though. I guess the card still outputs the 1280x1024 
set up at boot time. Colours are correct, but the image is heavily distorted.
It looks like the X server thinks it's 1680x1050 but in fact it's still 
1280x1024.

I spent some time googling, but to no avail. Now my questions:

Is this a known limitation of matroxfb?
If yes, is it considered a bug? I could spend some time looking into the code.
Do I have any chance to get this working in a reasonable dual head 
configuration? Any hints?

TIA,
Hans

Here's my xorg.conf:

# /etc/X11/xorg.conf (xorg X Window System server configuration file)

Section "Files"
	FontPath	"unix/:7100"	# local font server
	FontPath	"unix/:7101"	# local ttf-font server
	# path to defoma fonts
	FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
	Load	"i2c"
	Load	"bitmap"
	Load	"ddc"
	Load	"dri"
	Load	"extmod"
	Load	"freetype"
	Load	"glx"
	Load	"int10"
	Load	"type1"
	Load	"vbe"
EndSection

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"kbd"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"de"
	Option		"XkbVariant"	"nodeadkeys"
EndSection

Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ExplorerPS/2"
	Option		"Emulate3Buttons"	"true"
EndSection

Section "Device"
	Identifier	"MatroxG550_1"
	Driver		"mga"
	BusID		"PCI:1:0:0"
	Option 		"OldDmaInit" "True"
	Screen		0
EndSection

Section "Device"
	Identifier	"MatroxG550_2"
	Driver		"mga"
	BusID		"PCI:1:0:0"
	Option 		"OldDmaInit" "True"
	Screen		1
EndSection

Section "Monitor"
	Identifier	"NECMonitor1"
	Option		"DPMS"
	HorizSync	32-82
	VertRefresh	56-75
	Modeline "1680x1050@60" 154.20 1680 1712 2296 2328 1050 1071 1081 1103
EndSection

Section "Monitor"
	Identifier	"NECMonitor2"
	Option		"DPMS"
	HorizSync	32-82
	VertRefresh	56-75
	Modeline "1680x1050@60" 154.20 1680 1712 2296 2328 1050 1071 1081 1103
EndSection

Section "Screen"
	Identifier	"LeftScreen"
	Device		"MatroxG550_1"
	Monitor		"NECMonitor1"
	DefaultDepth	24
	SubSection "Display"
		Depth		24
		Modes		"1680x1050" "1280x1024" 
	EndSubSection
EndSection

Section "Screen"
	Identifier	"RightScreen"
	Device		"MatroxG550_2"
	Monitor		"NECMonitor2"
	DefaultDepth	24
	SubSection "Display"
		Depth		24
		Modes		"1680x1050" "1280x1024" 
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"Default Layout"
	Screen		0 "LeftScreen" 0 0
	Screen  	1 "RightScreen" RightOf "LeftScreen"
	Option 		"Xinerama" "On"
	InputDevice	"Generic Keyboard"
	InputDevice	"Configured Mouse"
EndSection

Section "DRI"
	Mode	0666
EndSection



-------------------------------------------------------------------------
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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-01 23:25 Hans-Jürgen Koch
@ 2007-03-01 23:29 ` Alex Deucher
  2007-03-01 23:49   ` Hans-Jürgen Koch
  0 siblings, 1 reply; 16+ messages in thread
From: Alex Deucher @ 2007-03-01 23:29 UTC (permalink / raw)
  To: linux-fbdev-devel

On 3/1/07, Hans-Jürgen Koch <hjk@linutronix.de> wrote:
> Hi,
> I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050) and a
> Matrox G550 dual DVI card. I'm now trying to set up a dual head configuration
> with this equipment.
>
> I'm booting with video=matroxfb:vesa:0x1BB, as there is no 1680x1050 vesa
> mode. This works, both monitors show the same and complain about the wrong
> resolution.
>
> Now I start my X server (xorg.conf below) and wish to get a xinerama setup.
> Monitor 1 switches to 1680x1050 and shows a nice clean screen. Monitor 2
> seems to have problems, though. I guess the card still outputs the 1280x1024
> set up at boot time. Colours are correct, but the image is heavily distorted.
> It looks like the X server thinks it's 1680x1050 but in fact it's still
> 1280x1024.
>
> I spent some time googling, but to no avail. Now my questions:
>
> Is this a known limitation of matroxfb?
> If yes, is it considered a bug? I could spend some time looking into the code.
> Do I have any chance to get this working in a reasonable dual head
> configuration? Any hints?
>

IIRC, the current mga X server doesn't know how to deal with DVI
(single or dual ports).  DVI was only supported with matrox' binary
module.

Alex

-------------------------------------------------------------------------
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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-01 23:29 ` Alex Deucher
@ 2007-03-01 23:49   ` Hans-Jürgen Koch
  2007-03-01 23:56     ` Hans-Jürgen Koch
  2007-03-02  1:49     ` Alex Deucher
  0 siblings, 2 replies; 16+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-01 23:49 UTC (permalink / raw)
  To: linux-fbdev-devel; +Cc: Alex Deucher

Am Freitag, 2. März 2007 00:29 schrieb Alex Deucher:
> On 3/1/07, Hans-Jürgen Koch <hjk@linutronix.de> wrote:
> > Hi,
> > I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050) and
> > a Matrox G550 dual DVI card. I'm now trying to set up a dual head
> > configuration with this equipment.
> >
> > I'm booting with video=matroxfb:vesa:0x1BB, as there is no 1680x1050 vesa
> > mode. This works, both monitors show the same and complain about the
> > wrong resolution.
> >
> > Now I start my X server (xorg.conf below) and wish to get a xinerama
> > setup. Monitor 1 switches to 1680x1050 and shows a nice clean screen.
> > Monitor 2 seems to have problems, though. I guess the card still outputs
> > the 1280x1024 set up at boot time. Colours are correct, but the image is
> > heavily distorted. It looks like the X server thinks it's 1680x1050 but
> > in fact it's still 1280x1024.
> >
> > I spent some time googling, but to no avail. Now my questions:
> >
> > Is this a known limitation of matroxfb?
> > If yes, is it considered a bug? I could spend some time looking into the
> > code. Do I have any chance to get this working in a reasonable dual head
> > configuration? Any hints?
>
> IIRC, the current mga X server doesn't know how to deal with DVI
> (single or dual ports).  DVI was only supported with matrox' binary
> module.
>

Hi Alex,
thanks for your fast reply.
Currently, I've got both monitors connected with VGA cables. The card has some 
proprietary 60-pin or so connector, and I've got an adapter caple from that 
plug to 2xVGA. Both monitors show a stable picture, but only the picture on 
monitor #1 is usable. It really looks like the X server is trying to switch 
both channels to 1680x1050, but only succeeds with the first one.

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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-01 23:49   ` Hans-Jürgen Koch
@ 2007-03-01 23:56     ` Hans-Jürgen Koch
  2007-03-02  1:49     ` Alex Deucher
  1 sibling, 0 replies; 16+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-01 23:56 UTC (permalink / raw)
  To: linux-fbdev-devel; +Cc: Alex Deucher

Am Freitag, 2. März 2007 00:49 schrieb Hans-Jürgen Koch:
> Am Freitag, 2. März 2007 00:29 schrieb Alex Deucher:
> > On 3/1/07, Hans-Jürgen Koch <hjk@linutronix.de> wrote:
> > > Hi,
> > > I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050)
> > > and a Matrox G550 dual DVI card. I'm now trying to set up a dual head
> > > configuration with this equipment.
> > >
> > > I'm booting with video=matroxfb:vesa:0x1BB, as there is no 1680x1050
> > > vesa mode. This works, both monitors show the same and complain about
> > > the wrong resolution.
> > >
> > > Now I start my X server (xorg.conf below) and wish to get a xinerama
> > > setup. Monitor 1 switches to 1680x1050 and shows a nice clean screen.
> > > Monitor 2 seems to have problems, though. I guess the card still
> > > outputs the 1280x1024 set up at boot time. Colours are correct, but the
> > > image is heavily distorted. It looks like the X server thinks it's
> > > 1680x1050 but in fact it's still 1280x1024.
> > >
> > > I spent some time googling, but to no avail. Now my questions:
> > >
> > > Is this a known limitation of matroxfb?
> > > If yes, is it considered a bug? I could spend some time looking into
> > > the code. Do I have any chance to get this working in a reasonable dual
> > > head configuration? Any hints?
> >
> > IIRC, the current mga X server doesn't know how to deal with DVI
> > (single or dual ports).  DVI was only supported with matrox' binary
> > module.
>
> Hi Alex,
> thanks for your fast reply.
> Currently, I've got both monitors connected with VGA cables. The card has
> some proprietary 60-pin or so connector, and I've got an adapter caple from
> that plug to 2xVGA. Both monitors show a stable picture, but only the
> picture on monitor #1 is usable. It really looks like the X server is
> trying to switch both channels to 1680x1050, but only succeeds with the
> first one.
>
> Hans

BTW, even xinerama "works": I can move the mouse cursor to the second monitor 
and it appears there, but also heavily distorted.

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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-01 23:49   ` Hans-Jürgen Koch
  2007-03-01 23:56     ` Hans-Jürgen Koch
@ 2007-03-02  1:49     ` Alex Deucher
  1 sibling, 0 replies; 16+ messages in thread
From: Alex Deucher @ 2007-03-02  1:49 UTC (permalink / raw)
  To: Hans-Jürgen Koch; +Cc: linux-fbdev-devel

On 3/1/07, Hans-Jürgen Koch <hjk@linutronix.de> wrote:
> Am Freitag, 2. März 2007 00:29 schrieb Alex Deucher:
> > On 3/1/07, Hans-Jürgen Koch <hjk@linutronix.de> wrote:
> > > Hi,
> > > I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050) and
> > > a Matrox G550 dual DVI card. I'm now trying to set up a dual head
> > > configuration with this equipment.
> > >
> > > I'm booting with video=matroxfb:vesa:0x1BB, as there is no 1680x1050 vesa
> > > mode. This works, both monitors show the same and complain about the
> > > wrong resolution.
> > >
> > > Now I start my X server (xorg.conf below) and wish to get a xinerama
> > > setup. Monitor 1 switches to 1680x1050 and shows a nice clean screen.
> > > Monitor 2 seems to have problems, though. I guess the card still outputs
> > > the 1280x1024 set up at boot time. Colours are correct, but the image is
> > > heavily distorted. It looks like the X server thinks it's 1680x1050 but
> > > in fact it's still 1280x1024.
> > >
> > > I spent some time googling, but to no avail. Now my questions:
> > >
> > > Is this a known limitation of matroxfb?
> > > If yes, is it considered a bug? I could spend some time looking into the
> > > code. Do I have any chance to get this working in a reasonable dual head
> > > configuration? Any hints?
> >
> > IIRC, the current mga X server doesn't know how to deal with DVI
> > (single or dual ports).  DVI was only supported with matrox' binary
> > module.
> >
>
> Hi Alex,
> thanks for your fast reply.
> Currently, I've got both monitors connected with VGA cables. The card has some
> proprietary 60-pin or so connector, and I've got an adapter caple from that
> plug to 2xVGA. Both monitors show a stable picture, but only the picture on
> monitor #1 is usable. It really looks like the X server is trying to switch
> both channels to 1680x1050, but only succeeds with the first one.
>

you should probably ask on the xorg mailing list :)
Dualhead is a bit flakey in the xorg driver at the moment, although
work is being done to fix that.  IIRC, the ordering is wrong when
programming one of the PLLs.

Alex

> 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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
       [not found]   ` <20070302152414.GC907@code-monkey.de>
@ 2007-03-04 21:47     ` Hans-Jürgen Koch
  2007-03-05  4:59       ` Petr Vandrovec
  2007-03-05  6:59       ` Tilman Sauerbeck
  0 siblings, 2 replies; 16+ messages in thread
From: Hans-Jürgen Koch @ 2007-03-04 21:47 UTC (permalink / raw)
  To: xorg; +Cc: linux-fbdev-devel

Am Freitag, 2. März 2007 16:24 schrieb Tilman Sauerbeck:
> Hans-Jürgen Koch [2007-03-02 16:10]:
> > Am Freitag 02 März 2007 15:39 schrieb Tilman Sauerbeck:
> > > Hans-Jürgen Koch [2007-03-02 10:53]:
> > > > I'm the proud owner of two NEC MultiSync 2070WNX monitors (1680x1050)
> > > > and a Matrox G550 dual DVI card. I'm now trying to set up a dual head
> > > > configuration with this equipment.
> > > >
> > > > [snip]
> > > >
> > > > Is this a known limitation of matroxfb? Or a X server bug?
> > >
> > > AFAIK matroxfb doesn't support the G550 dual DVI card. The mga X driver
> > > certainly doesn't support it yet.
> >
> > Well, at the moment I'm using the VGA outputs. Current status is:
>
> I believe/suspect the hardware doesn't care whether you use the 2VGA
> cable or the 2DVI cable. Unfortunately, I only have the dual-dvi cable
> so I cannot be sure. Last time I had a close look at dual-dvi was around
> christmas and I don't remember all the details ;)
>
> > * Without X (boot, VT) I get clean 1280x1024 on both monitors. The
> > monitors interpolate that to their native resolution, both show the same
> > image.

Meanwhile, I managed to get 1680x1050 to work with matroxfb. Here's proof that 
both monitors really work:

http://www.hjk-az.de/temp/g550-dualhead-fbcon-small.jpg

The left monitor is the primary head (/dev/fb0) and shows text on a VT. There 
I issued a command "fbi -d /dev/fb1 image.jpg" that shows a JPEG image on the 
second monitor. Note that there is no X running (The black-on-white text is 
due to a small patch I usually apply to vt.c).


>
> > * With a xinerama configuration, X starts without any (EE) errors.
> > Monitor1 shows a clean 1680x1050 image, Monitor2 a distorted image. I can
> > move the mouse or windows from one monitor to the other. The reason for
> > the distortion on monitor2 is most probably that the card is still
> > configured for 1280x1024 while the X server thinks it's 1680x1050.

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???

>
> I'm curious, can you describe the distortion in more detail/take a
> photo?

Yes, now I've got one:

http://www.hjk-az.de/temp/g550-xinerama-error-small.jpg

This shows a KDE login screen. Note that KDE scaled the background image with 
the Debian logo to cover both screens. The right screen is distorted, 
but "working": If I move a window over to the second screen, I see changes 
there.

Conclusion:

@matroxfb developers: Thanks a lot, guys! Well done! Most people I asked about 
having a dual-head framebuffer console at 1680x1050 thought it would be 
impossible.

@mga xorg developers: Well... Can you tell me why the kernel guys can 
initialize and use the second head and you can't? If you can give me hints 
where in the source I can start to look for the bug, I'm willing to spend 
some time there. Is there something I could try in my configuration?

Any hints?

Thanks,
Hans

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-04 21:47     ` Matrox G550, dual head, 1680x1050 Hans-Jürgen Koch
@ 2007-03-05  4:59       ` Petr Vandrovec
  2007-03-05  6:33         ` Geert Uytterhoeven
                           ` (2 more replies)
  2007-03-05  6:59       ` Tilman Sauerbeck
  1 sibling, 3 replies; 16+ messages in thread
From: Petr Vandrovec @ 2007-03-05  4:59 UTC (permalink / raw)
  To: hjk; +Cc: Tilman Sauerbeck, linux-fbdev-devel, xorg

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?)

If you are using mga driver for second head in X, then probably X driver 
does not know correctly what are hardware restrictions for second CRTC 
(I think they've changed between G400 and G450), asks for 1680 but gets 
1664, and this causes those diagonal lines you see.
								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] 16+ 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  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; 16+ 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] 16+ messages in thread

* Re: Matrox G550, dual head, 1680x1050
  2007-03-04 21:47     ` Matrox G550, dual head, 1680x1050 Hans-Jürgen Koch
  2007-03-05  4:59       ` Petr Vandrovec
@ 2007-03-05  6:59       ` Tilman Sauerbeck
  1 sibling, 0 replies; 16+ messages in thread
From: Tilman Sauerbeck @ 2007-03-05  6:59 UTC (permalink / raw)
  To: Hans-Jürgen Koch; +Cc: linux-fbdev-devel, xorg


[-- Attachment #1.1: Type: text/plain, Size: 1053 bytes --]

Hans-Jürgen Koch [2007-03-04 22:47]:
> @matroxfb developers: Thanks a lot, guys! Well done! Most people I asked about 
> having a dual-head framebuffer console at 1680x1050 thought it would be 
> impossible.
> 
> @mga xorg developers: Well... Can you tell me why the kernel guys can 
> initialize and use the second head and you can't? If you can give me hints 
> where in the source I can start to look for the bug, I'm willing to spend 
> some time there. Is there something I could try in my configuration?

matroxfb is much better organized wrt dual-head configurations. It also
has support for some hardware that xf86-video-mga doesn't support yet.
I'm working on that.

I think you might be hitting this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=9854

I just attached a temporary fix that you could try.

Regards,
Tilman

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 143 bytes --]

_______________________________________________
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg

^ permalink raw reply	[flat|nested] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ messages in thread

end of thread, other threads:[~2007-03-06 11:35 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200703021053.00955.hjk@linutronix.de>
     [not found] ` <200703021610.58188.hjk@linutronix.de>
     [not found]   ` <20070302152414.GC907@code-monkey.de>
2007-03-04 21:47     ` Matrox G550, dual head, 1680x1050 Hans-Jürgen Koch
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
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
2007-03-05  6:59       ` Tilman Sauerbeck
2007-03-01 23:25 Hans-Jürgen Koch
2007-03-01 23:29 ` Alex Deucher
2007-03-01 23:49   ` Hans-Jürgen Koch
2007-03-01 23:56     ` Hans-Jürgen Koch
2007-03-02  1:49     ` Alex Deucher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).