Re: 2.6.0: atyfb broken

From: Daniël Mantione
Date: Sat Jan 03 2004 - 19:28:46 EST




On Sun, 4 Jan 2004, Claas Langbehn wrote:

> Hello!
>
>
> > > Does it work with 2.4.22 and earlier? Mobility support was changed a lot in
> > > 2.4.23.
>
> No, 2.4.22 does not work either. It has also screen-flickering.

Ok, that was expected; this most likely is because of the initialisation
code in 2.4.22; it is completely unsuitable for the Mobility M1 and programs
very bad values into the chip.

> 2.6.0 seems to be closest to a working solution.

Not at all. Your laptop has an LCD display. Unlike CRTs, LCD displays have
a fixed resolution; you LCD display has 1024x768 pixels. Because the
display is completely digital, the display needs its pixel data send at
a fixed rate, enforcing also the refresh rate, 60 Hz in your case.

(LCD monitors with VGA-connectors have special chips that adapt the
resolution and refresh rate of a VGA signal to the video mode desired by
the panel. Image quality suffers badly)

Because of this, a traditional video driver will fail on such a display.
I.e. Atyfb switches to 640x480 60 Hz, which is completely different from
what your display accepts, and it won't work.

Because of some VGA compatibility stuff normal 720x400 VGA text mode is
downscaled to 640x400 by your laptop. Therefore, it is not too different
from 640x480 and on some computers it displays something. I experienced
this on my Rage LT pro, the image was completely wrong, the bottom part of
the screen was a mirror of the upper part.

Therefore, it might happen that 2.6.0 does display something
(initialization is different from 2.4.x), but 2.6.0 will not display a
correct image in any case.

Years ago I started making the Atyfb support LCD displays. It was a very
difficult project; I got my own laptop working more than 2 years ago,
after that slowly all the other machines I knew of started working.
However, it was only until recently before Geert's laptop did work; that was a
really stupborn one. The LCD registers on the chips are very tricky to set
right; the clock code (which was completely wrong) was even more tricky
to get right.

My work was included in 2.4.23. Therefore that kernel
is the only one which has any chance of working. Apparently
there still is an LCD specific issue with your laptop, which needs to be
debugged.

What to do?

The best thing you can try is to connect a CRT. Its a handy tool (it
eats any video mode, including wrong ones) to check if the driver does
something wrong. Use it to inspect geometry and the horizontal & vertical
refresh rates. The CRT should dislay 1024x768 60 Hz in all resolutions
(unless you switch off the LCD display).

Compile Atyfb as module. Use fbset to switch video modes blindly. Check
the following modes: 640x400, 640x480, 1024x768.

If everything is ok, we'll start to do some register debugging.

Daniël

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/