fix for tridentfb.c usage on CRTs.

From: Bram Stolk
Date: Wed Dec 24 2003 - 04:26:03 EST


Hello,


tridentfb.c is broken for non-FP (CRT) users, and it is not being maintained.
I believe that all kernels since 2.4.19 are affected, including 2.6.0

I mailed the maintainer in June 2003, and in October 2003, but
he does not respond.

What happens is this:
All modes that exceed the native resolution of a flatpanel
are discarded. However, a CRT has native resolution set to 0, and
therefore, tridentfb.c cannot be used with a CRT.

The patch to make it work:

$ diff -c tridentfb.c tridentfb.orig
*** tridentfb.c Wed Dec 24 10:08:44 2003
--- tridentfb.orig Wed Dec 24 09:55:39 2003
***************
*** 723,729 ****
if (bpp == 24 )
bpp = var->bits_per_pixel = 32;
/* check whether resolution fits on panel and in memory*/
! if (flatpanel && nativex && var->xres > nativex)
return -EINVAL;
if (var->xres * var->yres_virtual * bpp/8 > info->fix.smem_len)
return -EINVAL;
--- 723,729 ----
if (bpp == 24 )
bpp = var->bits_per_pixel = 32;
/* check whether resolution fits on panel and in memory*/
! if (var->xres > nativex)
return -EINVAL;
if (var->xres * var->yres_virtual * bpp/8 > info->fix.smem_len)
return -EINVAL;


Also, the Documents/fb/ docs are out of date, with regard
to option passing.

And the comment in tridentfb.c
* Parse user specified options (`video=trident:')
...is wrong.
Only 'video=tridentfb:' will work.

modedb.txt should include the 'tridentfb' target for video=
tridentfb.txt should be updated on how to pass parameters.

And last:
video=tridentfb:mode=800x600 does not work, as mode= is
not recognized. I think it should. Currently, you are forced to
skip the mode=, thus: video=tridentfb:800x600


Bram Stolk

PS: Maintainers I tried to contact to fix this:
jani at iv.ro,
geert at linux-m68k.org
salvestrini at users.sourceforge.net
janim at users.sourceforge.net
Only salvestrini responded that jani is probably busy.

--
"For the costs of subsidized agriculture in the EU, we can have all 56 million
European cows fly around the world. First Class." - J. Norberg
-
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/