Say Y to enable support for the Amiga Phase 5 CVisionPPC BVisionPPC
framebuffer cards. Phase 5 is no longer with us, alas.
-CONFIG_FB_PM3
- This is the frame buffer device driver for the 3DLabs Permedia3
- chipset, used in Formac ProFormance III, 3DLabs Oxygen VX1 &
- similar boards, 3DLabs Permedia3 Create!, Appian Jeronimo 2000
- and maybe other boards.
-
CONFIG_FB_AMIGA
This is the frame buffer device driver for the builtin graphics
chipset found in Amigas.
module will be called amifb.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
+CONFIG_FB_PM3
+ This is the frame buffer device driver for the 3DLabs Permedia3
+ chipset, used in Formac ProFormance III, 3DLabs Oxygen VX1 &
+ similar boards, 3DLabs Permedia3 Create!, Appian Jeronimo 2000
+ and maybe other boards.
+
CONFIG_FB_AMIGA_OCS
This enables support for the original Agnus and Denise video chips,
found in the Amiga 1000 and most A500's and A2000's. If you intend
many Macintosh and compatible computers.
CONFIG_FB_TX3912
- The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core;
+ The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core
see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
Say Y here to enable kernel support for the on-board framebuffer.
define_tristate CONFIG_FBCON_MFB m
fi
fi
- if [ "$CONFIG_FB_ACORN" = "y" ]; then
+ if [ "$CONFIG_FB_ACORN" = "y" -o "$CONFIG_FB_SA1100" = "y" ]; then
define_tristate CONFIG_FBCON_CFB2 y
define_tristate CONFIG_FBCON_CFB4 y
else
- if [ "$CONFIG_FB_ACORN" = "m" ]; then
+ if [ "$CONFIG_FB_ACORN" = "m" -o "$CONFIG_FB_SA1100" = "m"]; then
define_tristate CONFIG_FBCON_CFB2 m
define_tristate CONFIG_FBCON_CFB4 m
fi
"$CONFIG_FB_VALKYRIE" = "y" -o "$CONFIG_FB_PLATINUM" = "y" -o \
"$CONFIG_FB_IGA" = "y" -o "$CONFIG_FB_MATROX" = "y" -o \
"$CONFIG_FB_CT65550" = "y" -o "$CONFIG_FB_PM2" = "y" -o \
- "$CONFIG_FB_ATY" = "y" ]; then
+ "$CONFIG_FB_ATY" = "y" -o "$CONFIG_FB_SA1100" = "y" ]; then
define_tristate CONFIG_FBCON_CFB8 y
else
if [ "$CONFIG_FB_ACORN" = "m" -o "$CONFIG_FB_ATARI" = "m" -o \
"$CONFIG_FB_VIRGE" = "m" -o "$CONFIG_FB_CYBER" = "m" -o \
"$CONFIG_FB_VALKYRIE" = "m" -o "$CONFIG_FB_PLATINUM" = "m" -o \
"$CONFIG_FB_IGA" = "m" -o "$CONFIG_FB_MATROX" = "m" -o \
- "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_PM2" = "m" ]; then
+ "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_PM2" = "m"-o \
+ "$CONFIG_FB_SA1100" = "m" ]; then
define_tristate CONFIG_FBCON_CFB8 m
fi
fi
"$CONFIG_FB_VALKYRIE" = "y" -o "$CONFIG_FB_PLATINUM" = "y" -o \
"$CONFIG_FB_CT65550" = "y" -o "$CONFIG_FB_MATROX" = "y" -o \
"$CONFIG_FB_PM2" = "y" -o "$CONFIG_FB_CYBER2000" = "y" -o \
- "$CONFIG_FB_ATY" = "y" ]; then
+ "$CONFIG_FB_ATY" = "y" -o "$CONFIG_FB_SA1100" = "y" ]; then
define_tristate CONFIG_FBCON_CFB16 y
else
if [ "$CONFIG_FB_ATARI" = "m" -o "$CONFIG_FB_SIS" = "m" -o \
"$CONFIG_FB_VIRGE" = "m" -o "$CONFIG_FB_CYBER" = "m" -o \
"$CONFIG_FB_VALKYRIE" = "m" -o "$CONFIG_FB_PLATINUM" = "m" -o \
"$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_MATROX" = "m" -o \
- "$CONFIG_FB_PM2" = "m" -o "$CONFIG_FB_CYBER2000" = "m" ]; then
+ "$CONFIG_FB_PM2" = "m" -o "$CONFIG_FB_CYBER2000" = "m" -o \
+ "$CONFIG_FB_SA1100" = "y" ]; then
define_tristate CONFIG_FBCON_CFB16 m
fi
fi
"$CONFIG_FB_3DFX" = "y" -o "$CONFIG_FB_TX3912" = "y" -o \
"$CONFIG_FB_MAXINE" = "y" -o "$CONFIG_FB_APOLLO" = "y" -o \
"$CONFIG_FB_ATY128" = "y" -o "$CONFIG_FB_MAC" = "y" -o \
- "$CONFIG_FB_RIVA" = "y" -o "$CONFIG_FB_SA1100" = "y" -o \
- "$CONFIG_FB_OF" = "y" -o "$CONFIG_FB_SGIVW" = "y" -o \
- "$CONFIG_FB_ATY" = "y" ]; then
+ "$CONFIG_FB_RIVA" = "y" -o "$CONFIG_FB_OF" = "y" -o \
+ "$CONFIG_FB_SGIVW" = "y" ]; then
define_tristate CONFIG_FBCON_ACCEL y
else
if [ "$CONFIG_FB_NEOMAGIC" = "m" -o "$CONFIG_FB_HIT" = "m" -o \
"$CONFIG_FB_G364" = "m" -o "$CONFIG_FB_VIRTUAL" = "m" -o \
"$CONFIG_FB_CLPS711X" = "m" -o "$CONFIG_FB_3DFX" = "m" -o \
- "$CONFIG_FB_RIVA" = "m" -o "$CONFIG_FB_ATY128" = "m" -o \
- "$CONFIG_FB_SGIVW" = "m" -o "$CONFIG_FB_ATY" = "m" ]; then
+ "$CONFIG_FB_RIVA" = "m" -o "$CONFIG_FB_SGIVW" = "m" ]; then
define_tristate CONFIG_FBCON_ACCEL m
fi
fi
define_tristate CONFIG_FBCON_IPLAN2P2 y
define_tristate CONFIG_FBCON_IPLAN2P4 y
define_tristate CONFIG_FBCON_IPLAN2P8 y
-# define_tristate CONFIG_FBCON_IPLAN2P16 y
else
if [ "$CONFIG_FB_ATARI" = "m" ]; then
define_tristate CONFIG_FBCON_IPLAN2P2 m
define_tristate CONFIG_FBCON_IPLAN2P4 m
define_tristate CONFIG_FBCON_IPLAN2P8 m
-# define_tristate CONFIG_FBCON_IPLAN2P16 m
fi
fi
if [ "$CONFIG_FB_VGA16" = "y" ]; then
obj-$(CONFIG_FB_SUN3) += sun3fb.o
obj-$(CONFIG_FB_BWTWO) += bwtwofb.o
obj-$(CONFIG_FB_HGA) += hgafb.o
-obj-$(CONFIG_FB_SA1100) += sa1100fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
+obj-$(CONFIG_FB_SA1100) += sa1100fb.o
obj-$(CONFIG_FB_VIRTUAL) += vfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_HIT) += hitfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_E1355) += epson1355fb.o
board_list = aty128_board_list_add(board_list, info);
- size = (fb_display[con].var.bits_per_pixel <= 8) ? 256 : 32;
+ size = (var.bits_per_pixel <= 8) ? 256 : 32;
fb_alloc_cmap(info->fb_info.cmap, size, 0);
if (register_framebuffer(&info->fb_info) < 0)
int fbgen_pan_display(struct fb_var_screeninfo *var, int con,
struct fb_info *info)
{
- struct fb_info_gen *info2 = (struct fb_info_gen *)info;
- struct fbgen_hwswitch *fbhw = info2->fbhw;
int xoffset = var->xoffset;
int yoffset = var->yoffset;
int err;
- if (xoffset < 0 ||
- xoffset+fb_display[con].var.xres > fb_display[con].var.xres_virtual ||
- yoffset < 0 ||
- yoffset+fb_display[con].var.yres > fb_display[con].var.yres_virtual)
+ if (xoffset < 0 || yoffset < 0 ||
+ xoffset + info->var.xres > info->var.xres_virtual ||
+ yoffset + info->var.yres > info->var.yres_virtual)
return -EINVAL;
if (con == info->currcon) {
- if (fbhw->pan_display) {
- if ((err = fbhw->pan_display(var, info2)))
+ if (info->fbops->fb_pan_display) {
+ if ((err = info->fbops->fb_pan_display(var, con, info)))
return err;
} else
return -EINVAL;
}
- fb_display[con].var.xoffset = var->xoffset;
- fb_display[con].var.yoffset = var->yoffset;
+ info->var.xoffset = var->xoffset;
+ info->var.yoffset = var->yoffset;
if (var->vmode & FB_VMODE_YWRAP)
- fb_display[con].var.vmode |= FB_VMODE_YWRAP;
+ info->var.vmode |= FB_VMODE_YWRAP;
else
- fb_display[con].var.vmode &= ~FB_VMODE_YWRAP;
-
+ info->var.vmode &= ~FB_VMODE_YWRAP;
return 0;
}
int fbgen_blank(int blank, struct fb_info *info)
{
- struct fb_info_gen *info2 = (struct fb_info_gen *)info;
- struct fbgen_hwswitch *fbhw = info2->fbhw;
- u16 black[16];
struct fb_cmap cmap;
-
- if (fbhw->blank && !fbhw->blank(blank, info2))
+ u16 black[16];
+
+ if (info->fbops->fb_blank && !info->fbops->fb_blank(blank, info))
return 0;
if (blank) {
memset(black, 0, 16*sizeof(u16));
#include <linux/devfs_fs_kernel.h>
struct fb_info;
-struct fb_info_gen;
struct vm_area_struct;
struct file;
#define FBINFO_FLAG_DEFAULT 0
#endif
- /*
- * This structure abstracts from the underlying hardware. It is not
- * mandatory but used by the `generic' frame buffer operations.
- * Read drivers/video/skeletonfb.c for more information.
- */
-
-struct fbgen_hwswitch {
- void (*detect)(void);
- int (*encode_fix)(struct fb_fix_screeninfo *fix, const void *par,
- struct fb_info_gen *info);
- int (*decode_var)(const struct fb_var_screeninfo *var, void *par,
- struct fb_info_gen *info);
- int (*encode_var)(struct fb_var_screeninfo *var, const void *par,
- struct fb_info_gen *info);
- void (*get_par)(void *par, struct fb_info_gen *info);
- void (*set_par)(const void *par, struct fb_info_gen *info);
- int (*getcolreg)(unsigned regno, unsigned *red, unsigned *green,
- unsigned *blue, unsigned *transp, struct fb_info *info);
- int (*pan_display)(const struct fb_var_screeninfo *var,
- struct fb_info_gen *info);
- int (*blank)(int blank_mode, struct fb_info_gen *info);
- void (*set_disp)(const void *par, struct display *disp,
- struct fb_info_gen *info);
-};
-
-struct fb_info_gen {
- struct fb_info info;
-
- /* Entries for a generic frame buffer device */
- /* Yes, this starts looking like C++ */
- u_int parsize;
- struct fbgen_hwswitch *fbhw;
-
- /* From here on everything is device dependent */
-};
-
/*
* `Generic' versions of the frame buffer device operations
*/
-extern int fbgen_get_fix(struct fb_fix_screeninfo *fix, int con,
- struct fb_info *info);
extern int gen_get_fix(struct fb_fix_screeninfo *fix, int con,
struct fb_info *info);
-extern int fbgen_get_var(struct fb_var_screeninfo *var, int con,
- struct fb_info *info);
extern int gen_get_var(struct fb_var_screeninfo *var, int con,
struct fb_info *info);
-extern int fbgen_set_var(struct fb_var_screeninfo *var, int con,
- struct fb_info *info);
extern int gen_set_var(struct fb_var_screeninfo *var, int con,
struct fb_info *info);
-extern int fbgen_get_cmap(struct fb_cmap *cmap, int kspc, int con,
- struct fb_info *info);
extern int gen_get_cmap(struct fb_cmap *cmap, int kspc, int con,
struct fb_info *info);
-extern int fbgen_set_cmap(struct fb_cmap *cmap, int kspc, int con,
- struct fb_info *info);
extern int gen_set_cmap(struct fb_cmap *cmap, int kspc, int con,
struct fb_info *info);
-extern int fbgen_pan_display(struct fb_var_screeninfo *var, int con,
+extern int fb_pan_display(struct fb_var_screeninfo *var, int con,
struct fb_info *info);
extern void cfb_fillrect(struct fb_info *info, struct fb_fillrect *rect);
extern void cfb_copyarea(struct fb_info *info, struct fb_copyarea *region);
* Helper functions
*/
-extern int fbgen_do_set_var(struct fb_var_screeninfo *var, int isactive,
- struct fb_info_gen *info);
-extern void fbgen_set_disp(int con, struct fb_info_gen *info);
-extern void do_install_cmap(int con, struct fb_info *info);
-extern int fbgen_update_var(int con, struct fb_info *info);
extern int gen_update_var(int con, struct fb_info *info);
-extern int fbgen_switch(int con, struct fb_info *info);
-extern int fbgen_blank(int blank, struct fb_info *info);
+extern int fb_blank(int blank, struct fb_info *info);
extern int gen_switch(int con, struct fb_info *info);
-
extern void gen_set_disp(int con, struct fb_info *info);
/* drivers/video/fbmem.c */