2000-12-11 23:01:46

by James Simmons

[permalink] [raw]
Subject: 2.2.X patches for fbcon


This patch allows you select different modes on a Mac. The functionality
was there but not taken advantage of. This is needed because the resolution
can be 834x628 on a Mac and the screen is really screwed up with more than
8 bit in that case.

--- fbmem.c.orig Mon Dec 11 14:18:44 2000
+++ fbmem.c Mon Dec 11 14:19:08 2000
@@ -92,6 +92,8 @@
extern void hpfb_setup(char *options, int *ints);
extern void sbusfb_init(void);
extern void sbusfb_setup(char *options, int *ints);
+extern void platinum_init(void);
+extern void platinum_setup(char *options, int *ints);
extern void valkyriefb_init(void);
extern void valkyriefb_setup(char *options, int *ints);
extern void control_init(void);
@@ -183,6 +185,9 @@
#ifdef CONFIG_FB_HP300
{ "hpfb", hpfb_init, hpfb_setup },
#endif
+#ifdef CONFIG_FB_PLATINUM
+ { "platinumfb", platinum_init, platinum_setup },
+#endif
#ifdef CONFIG_FB_VALKYRIE
{ "valkyriefb", valkyriefb_init, valkyriefb_setup },
#endif
------------------------------------------------------------------------------

This patch forces 1024x768-60 modes on PowerBook Lombard and
Mainstreet. No need to pass vmode:14 anymore.


--- atyfb.c Mon Dec 11 14:28:19 2000
+++ atyfb.c.orig Wed Oct 4 22:22:28 2000
@@ -2796,7 +2796,7 @@
* works on iMacs as well as the G3 powerbooks. - paulus
*/
if (default_vmode == VMODE_CHOOSE) {
- if ((Gx == LG_CHIP_ID)||(Gx == LI_CHIP_ID)||(Gx == LP_CHIP_ID))
+ if (Gx == LG_CHIP_ID)
/* G3 PowerBook with 1024x768 LCD */
default_vmode = VMODE_1024_768_60;
else if (Gx == LN_CHIP_ID)



2000-12-11 23:44:06

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.2.X patches for fbcon

>--- atyfb.c Mon Dec 11 14:28:19 2000
>+++ atyfb.c.orig Wed Oct 4 22:22:28 2000
>@@ -2796,7 +2796,7 @@
> * works on iMacs as well as the G3 powerbooks. - paulus
> */
> if (default_vmode == VMODE_CHOOSE) {
>- if ((Gx == LG_CHIP_ID)||(Gx == LI_CHIP_ID)||(Gx == LP_CHIP_ID))
>+ if (Gx == LG_CHIP_ID)
> /* G3 PowerBook with 1024x768 LCD */
> default_vmode = VMODE_1024_768_60;

That one is wrong. The machine type must be probed differently. Also, some
wallstreet's have a different screen (passive matrix) which is 800x600. I'm
trying to find a way to probe for it and will come up with a patch for this
In the meantime, passing the vmode is the correct solution.

Ben.