From a24f6673f6d58683abe7eacacb1b524d58837409 Mon Sep 17 00:00:00 2001 From: Harald Koerfgen Date: Sun, 28 Jan 2001 10:54:14 +0000 Subject: DECstation framebuffer drivers from Michael Engel and Karsten Merker --- drivers/video/Config.in | 8 +- drivers/video/Makefile | 5 +- drivers/video/fbmem.c | 17 +- drivers/video/maxinefb.c | 425 ++++++++++++++++++++++++++++++++++++++++++++ drivers/video/maxinefb.h | 37 ++++ drivers/video/pmag-ba-fb.c | 93 +++++----- drivers/video/pmagb-b-fb.c | 434 +++++++++++++++++++++++++++++++++++++++++++++ drivers/video/pmagb-b-fb.h | 32 ++++ 8 files changed, 996 insertions(+), 55 deletions(-) create mode 100644 drivers/video/maxinefb.c create mode 100644 drivers/video/maxinefb.h create mode 100644 drivers/video/pmagb-b-fb.c create mode 100644 drivers/video/pmagb-b-fb.h (limited to 'drivers/video') diff --git a/drivers/video/Config.in b/drivers/video/Config.in index 4a41ab8f6..dfd8e10c5 100644 --- a/drivers/video/Config.in +++ b/drivers/video/Config.in @@ -158,7 +158,9 @@ if [ "$CONFIG_FB" = "y" ]; then fi if [ "$CONFIG_DECSTATION" = "y" ]; then if [ "$CONFIG_TC" = "y" ]; then - bool ' PMAG-BA TURBOchannel framebuffer support' CONFIG_FB_PMAGBA + bool ' PMAG-BA TURBOchannel framebuffer support' CONFIG_FB_PMAG_BA + bool ' PMAGB-B TURBOchannel framebuffer spport' CONFIG_FB_PMAGB_B + bool ' Maxine (Personal DECstation) onboard framebuffer spport' CONFIG_FB_MAXINE fi fi if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then @@ -227,6 +229,8 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_RIVA" = "y" -o \ "$CONFIG_FB_SGIVW" = "y" -o "$CONFIG_FB_CYBER2000" = "y" -o \ "$CONFIG_FB_SA1100" = "y" -o "$CONFIG_FB_3DFX" = "y" -o \ + "$CONFIG_FB_PMAG_BA" = "y" -o "$CONFIG_FB_PMAGB_B" = "y" -o \ + "$CONFIG_FB_MAXINE" = "y" -o \ "$CONFIG_FB_SIS" = "y" ]; then define_tristate CONFIG_FBCON_CFB8 y else @@ -244,6 +248,8 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_P9100" = "m" -o "$CONFIG_FB_ATY128" = "m" -o \ "$CONFIG_FB_RIVA" = "m" -o "$CONFIG_FB_3DFX" = "m" -o \ "$CONFIG_FB_SGIVW" = "m" -o "$CONFIG_FB_CYBER2000" = "m" -o \ + "$CONFIG_FB_PMAG_BA" = "m" -o "CONFIG_FB_PMAGB_B" = "m" -o \ + "$CONFIG_FB_MAXINE" = "m" -o \ "$CONFIG_FB_SA1100" = "m" -o "$CONFIG_FB_SIS" = "m" ]; then define_tristate CONFIG_FBCON_CFB8 m fi diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 778af1db6..38403b55a 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -78,7 +78,10 @@ obj-$(CONFIG_FB_TCX) += tcxfb.o sbusfb.o obj-$(CONFIG_FB_CGFOURTEEN) += cgfourteenfb.o sbusfb.o obj-$(CONFIG_FB_P9100) += p9100fb.o sbusfb.o obj-$(CONFIG_FB_LEO) += leofb.o sbusfb.o -obj-$(CONFIG_FB_PMAGBA) += pmag-ba-fb.o +obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o +obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o +obj-$(CONFIG_FB_MAXINE) += maxinefb.o + subdir-$(CONFIG_FB_MATROX) += matrox ifeq ($(CONFIG_FB_MATROX),y) diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index 75b6aee16..a951ccf5e 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -117,6 +117,10 @@ extern int stifb_init(void); extern int stifb_setup(char*); extern int pmagbafb_init(void); extern int pmagbafb_setup(char *); +extern int pmagbbfb_init(void); +extern int pmagbbfb_setup(char *options, int *ints); +extern void maxinefb_init(void); +extern void maxinefb_setup(char *options, int *ints); static struct { const char *name; @@ -274,10 +278,19 @@ static struct { /* Not a real frame buffer device... */ { "resolver", NULL, resolver_video_setup }, #endif -#ifdef CONFIG_FB_PMAGBA - { "pmagbafb", pmagbafb_init, pmagbafb_setup }, + +#ifdef CONFIG_FB_PMAG_BA + { "pmagbafb", pmagbafb_init, pmagbafb_setup }, +#endif +#ifdef CONFIG_FB_PMAGB_B + { "pmagbbfb", pmagbbfb_init, pmagbbfb_setup }, #endif +#ifdef CONFIG_FB_MAXINE + { "maxinefb", maxinefb_init, maxinefb_setup }, +#endif + + #ifdef CONFIG_FB_VIRTUAL /* * Vfb must be last to avoid that it becomes your primary display if diff --git a/drivers/video/maxinefb.c b/drivers/video/maxinefb.c new file mode 100644 index 000000000..76039c289 --- /dev/null +++ b/drivers/video/maxinefb.c @@ -0,0 +1,425 @@ +/* + * linux/drivers/video/maxinefb.c + * + * DECstation 5000/xx onboard framebuffer support ... derived from: + * "HP300 Topcat framebuffer support (derived from macfb of all things) + * Phil Blundell 1998", the original code can be + * found in the file hpfb.c in the same directory. + * + * DECstation related code Copyright (C) 1999,2000,2001 by + * Michael Engel and + * Karsten Merker . + * This file is subject to the terms and conditions of the GNU General + * Public License. See the file COPYING in the main directory of this + * archive for more details. + * + */ + +/* + * Changes: + * 2001/01/27 removed debugging and testing code, fixed fb_ops + * initialization which had caused a crash before, + * general cleanup, first official release (KM) + * + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include