linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Mixing g400 dualhead and old Millennium.
@ 2002-10-12 15:36 Carlo E. Prelz
  2002-10-13  0:13 ` Petr Vandrovec
  0 siblings, 1 reply; 10+ messages in thread
From: Carlo E. Prelz @ 2002-10-12 15:36 UTC (permalink / raw)
  To: Petr Vandrovec, linux-fbdev-devel

Hello. I am trying to obtain a 'simple' system where 3 framebuffers
output their images to three monitors (no TV output). In the past I
was able to have 4 outputs using 4 old millenniums. Now I have to help
a friend who lives 1000 kms from here, and who hasn't enough PCI slots
(and would not find 3 millenniums anyway...) So, he found a dualhead
AGP g400 (PCI ID 102b:0525) and an old Millennium (PCI ID 102b:0519,
MGA 2064W).

Using kernel 2.4.19, and loading kernel modules in this order:

i2c-matroxfb
matroxfb_base
matroxfb_crtc2

I see the cards as follows:

PCI: Found IRQ 9 for device 00:0b.0
matroxfb: Matrox Millennium (PCI) detected
matroxfb: MTRR's turned on
matroxfb: 640x480x8bpp (virtual: 640x6553)
matroxfb: framebuffer at 0xEB000000, mapped to 0xce875000, size 4194304
Console: switching to colour frame buffer device 80x30
fb0: MATROX VGA frame buffer device
PCI: Enabling device 01:00.0 (0000 -> 0002)
matroxfb: Matrox G400 (AGP) detected
matroxfb: MTRR's turned on
matroxfb: 640x480x8bpp (virtual: 640x26208)
matroxfb: framebuffer at 0xE8000000, mapped to 0xcf07b000, size 33554432
fb1: MATROX VGA frame buffer device
fb1: initializing hardware
i2c-core.o: adapter DDC:fb1 #0 on i2c-matroxfb registered as adapter 0.
i2c-core.o: adapter DDC:fb1 #1 on i2c-matroxfb registered as adapter 1.
i2c-core.o: adapter MAVEN:fb1 on i2c-matroxfb registered as adapter 2.
i2c-core.o: adapter DDC:fb0 #0 on i2c-matroxfb registered as adapter 3.
matroxfb_crtc2: secondary head of fb1 was registered as fb2

And I see the fb's: /proc/fb contains

0 MATROX VGA
1 MATROX VGA
2 MATROX CRTC2

The console is on the Millennium. The problem is that writing to
/dev/fb2 does not result in something appearing on the 2nd output of
the G400. Now, I must admit that my mind is not a little confused with
the usage and capacites of the matroxset utility, but here at home, I
was able to cleanly use the second output of my G450 with the
following code (run at boot time):

/usr/src/matroxset/matroxset -f /dev/fb1 -m 0
/usr/src/matroxset/matroxset -f /dev/fb0 -m 1
/usr/src/matroxset/matroxset -f /dev/fb1 -m 2

So, I tried the same on this remote machine (using /dev/fb1 and
/dev/fb2, of course). The third command is not successful. I explored
things a bit. I wrote a short program that calls 3 ioctls,
respectively 

MATROXFB_GET_OUTPUT_CONNECTION,
MATROXFB_GET_AVAILABLE_OUTPUTS and
MATROXFB_GET_ALL_OUTPUTS.

On my home machine, /dev/fb0 gives 1, 1 and 3, while /dev/fb1 gives 2,
2 and 3. I understand that these are bitmaps: all is good. On the
remote machine,

fb0 (millennium) gives 1, 1 and 1 (ok, only one output)
fb1 (g400 1st head) gives 1, 5 and 5
fb2 (g400 2nd head) gives 0, 0 and 5

So, it seems that the second bit is not available in the g400. In its
place, there seems to be a third bit, what in matroxfb.h is defined as
MATROXFB_OUTPUT_DFP; this, as far as I can see, relates to a digital
flat panel interface, some possible third output on the card (that I
cannot investigate since the card is far far away).

In all cases, it appears (when looking at the source of the driver)
that the second head cannot be assigned this value, so that
MATROXFB_GET_AVAILABLE_OUTPUTS is 0 for it. I can assign it to the
first head, as follows

/usr/src/matroxset/matroxset -f /dev/fb2 -m 0
/usr/src/matroxset/matroxset -f /dev/fb1 -m 4

but after that, too, MATROXFB_GET_AVAILABLE_OUTPUTS for the second
head is 0. Or I can assign 1 to the second head, but then I cannot
assign 4 to the first head, although it is allowed in
MATROXFB_GET_AVAILABLE_OUTPUTS, because I can only assign a value to
the primary head if the secondary head has no output assigned. 

I thought I may solve the problem by having the g400 card detected as
first and the Millennium as second, but this seems to be impossible,
since AGP is detected after PCI. 

Is this a bug? What can I do about it?

Thanks in advance...

Carlo

-- 
  *         Se la Strada e la sua Virtu' non fossero state messe da parte,
* K * Carlo E. Prelz - fluido@fluido.as             che bisogno ci sarebbe
  *               di parlare tanto di amore e di rettitudine? (Chuang-Tzu)


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

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

end of thread, other threads:[~2002-10-14 14:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-12 15:36 Mixing g400 dualhead and old Millennium Carlo E. Prelz
2002-10-13  0:13 ` Petr Vandrovec
2002-10-13 14:15   ` Carlo E. Prelz
2002-10-13 14:56     ` Petr Vandrovec
2002-10-13 15:14       ` Carlo E. Prelz
2002-10-13 16:07       ` Carlo E. Prelz
2002-10-13 22:35         ` Petr Vandrovec
2002-10-14  5:50           ` Carlo E. Prelz
2002-10-14 12:54             ` Petr Vandrovec
2002-10-14 14:53               ` Carlo E. Prelz

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