Hello everybody,
at http://platan.vc.cvut.cz/ftp/pub/linux/matrox-latest
you can find mga-2.5.20-tvout.gz. It is patch against
2.5.20-changeset1.465 (but should apply to 2.5.20
too, and with minor glitches also to 2.4.x - but I do
not plan to put this into official 2.4.x).
Patch adds:
(0) Fixes CRTC2 bug in 2.5.x kernels. It will reject
in 2.4.x, and 2.5.x before James's merges.
(1) You can change TV Out parameters on G400
(luminance, hue, ...). Contributed by Mike Pipper,
it should be compatible with V4L2.
(2) You can use TV Out capabilities of G450/G550.
Do not forget that G450/G550 do not have vertical
downscaler (or at least I did not find one),
so for PAL use
fbset -xres X -yres 580 -upper 22 -lower 22 -vslen 1
where 456 <= X <= 1023 and for NTSC
fbset -xres X -yres 480 -upper 22 -lower 22 -vslen 1
where 464 <= X <= 1024. Pixclock does not matter,
driver computes it to get 50Hz on PAL/59.94Hz on NTSC.
Also do not forget that only CRTC2 can drive
TV output on G450/G550.
Use matroxset to change secondary output mode
between PAL/NTSC/monitor.
(3) You can now use DVI output of G550. By default
you have same picture on all three outputs. Use
matroxset to change it.
(4) You can read PINS through /proc.
Known problems:
(a) If you have DFP connected to DVI port when MGA BIOS
initializes hardware, it somehow forces whole card
to be driven by TMDS clocks (or something like that...)
and I did not found how to bring PLLs back to normal.
So it is possible that TVOut will not work for you in
such case. Simple hit ctrl-alt-del, disconnect DVI,
and on LILO prompt connect it back. Help wanted...
To do:
(A) Add changes (TVOut,1) to G450/G550 code.
(B) Fix code which enforces 525/625 lines on screen in TVOut
mode. Current behavior is very suboptimal.
(C) Verify that (DVI,3) works on G450. It should, but I have
no G450-DVI to verify it.
(D) Rewrite DAC handling and PLL handling code. Currently
it sets some registers unnecessary many times during
mode switches, including reprogramming PLL even when
PLL is not needed.
(E) Find what goes wrong if DFP is connected to DVI when
BIOS boots.
(F) Add DDC support for G450/G550 secondary outputs & DVI.
(G) Add powersaving capabilities to secondary output,
and to DVI (if someone will tell me how DVI powerdown
happens).
(H) Change /proc code to use driverfs instead. Linus refused
/proc based code already.
Maybe:
(i) Get dual-DVI G550 and find whether it works, or not, and
what needs to be done...
(ii) Port it to fbgen interface.
Current version prints TONS of debug messages needed to
find what is wrong if it goes wrong - if driver does not work
for you, complain loudly. If patch breaks G400 or older card
support, please tell me too.
Thanks should go to everyone who forced me to
look at DVI and TVOut capabilities of these beasts.
Best regards,
Petr Vandrovec
[email protected]
On Sat, Jun 08, 2002 at 02:45:39AM +0200, Petr Vandrovec wrote:
> (4) You can read PINS through /proc.
> (H) Change /proc code to use driverfs instead. Linus refused
> /proc based code already.
One of the first things I ever wrote for Linux was a PINS decoder.
It read from /dev/mem to get the PINS structure. Any reason
why this isn't good enough, and we need the kernel exporting PINS ?
Dave
--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs