Hi,
I believe that I fixed all known bugs in driver for dualhead G400.
Patch is available at ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/
in two forms:
(1) maven-for-linus.gz, which contains only code I intend to send to
Linus on Monday
(2) maven.gz (symlink to maven-000218-for-2.3.47-pre3.gz), which contains
everything from patch above + some additional changes which allows
you to interact with multiple heads better. These changes were
refused by other fbdev people and there is some new scheme proposed,
so they will not be sent to Linus (if you are interested, it is part
of patch which touches drivers/video/fbmem.c & adds some constants &
structs into include/linux/fb.h)
I know that patch is large (500KB uncompressed), but it also splits
matroxfb.c from drivers/video into couple of files in drivers/video/matrox
directory.
For real usage you should also download tool matroxset-0.3.tar.gz from
site above, it allows you to change secondary head output modes
(PAL/NTSC/monitor) and allows you to control connection matrix between
CRTC1&2 and both outputs.
It is known that XFree SVGA 3.3.x does not cope with secondary head
very well. If you switch into X, XFree disables secondary head output :-(
Of course, you can use XFree FBDev driver. XFree SVGA driver from 3.9.17
looks like that it could work - but it does not recognize G400 chipset,
so I it does not work with precompiled XFree.
---- There is still one open question and I'd like to hear from other peoples, what they think. For almost year there is flying around fbdev API, which allows you to determine whether VSYNC is active and other things related to position of beam on screen. Currently I put that structure into fb.h and allocated new ioctl number from fb.h range for it. Can I left this in fb.h (I asked last week on linux-fbdev, but received no answer, except that userspace peoples like this API) or should I move it into matroxfb.h? ---- If you are curious how I choosed ioctl numbers for matroxfb, I also maintain ncpfs, so I reassigned some from ncpfs to matroxfb :-) Driver contains support for DDC busses on all matroxes and specific support for G400 dualhead, G400 singlehead and G200 TV. For G400 singlehead it creates two fbdevs and you can choose by matroxset, which one you want to see (in future, you could connect CRTC2 to DFP). I decided for doing this because of there is nothing accelerated driver can do with upper 16MB of videoram. For G200 TV, it should be possible to switch output to TV by using matroxset -f /dev/fb/0 -o 1 2; matroxset -f /dev/fb/0 -m 3 (first turns TVOut into NTSC, second connects fb/0 into both outputs). If you have G200 TV, please contact me privately if you are interested in this driver (even if it does work for you, I need all reports for this configuration). Driver currently guards all accesses to accelerator with spin_lock_irqsave, it does not cause any problems here on my SMP PIII/450. If you do not want it, #undef MATROXFB_USE_SPINLOCKS in drivers/video/matrox/matroxfb_base.h. I probably #undef this for Linus release, as reentering really should not occur... Thanks, Petr Vandrovec vandrove@vc.cvut.cz P.S.: If it does not work for you and you choosed modular setup, first make sure that you have loaded i2c-matroxfb, matroxfb_maven and matroxfb_crtc2. P.P.S.: You must enable I2C & I2C bit-banging adapters in character devices menu (see help for G100/G200/G400 selection) to enable I2C & dualhead features of driver.- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:22 EST