patch-2.1.107 linux/include/linux/fb.h
Next file: linux/include/linux/fd.h
Previous file: linux/include/linux/elf.h
Back to the patch index
Back to the overall index
- Lines: 135
- Date:
Wed Jun 24 14:44:02 1998
- Orig file:
v2.1.106/linux/include/linux/fb.h
- Orig date:
Thu Mar 26 15:57:05 1998
diff -u --recursive --new-file v2.1.106/linux/include/linux/fb.h linux/include/linux/fb.h
@@ -30,6 +30,8 @@
#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
+#define FB_TYPE_VGA_TEXT 3 /* VGA text/attributes */
+#define FB_TYPE_S3_MMIO_TEXT 4 /* S3 MMIO text */
#define FB_VISUAL_MONO01 0 /* Monochr. 1=Black 0=White */
#define FB_VISUAL_MONO10 1 /* Monochr. 1=White 0=Black */
@@ -37,11 +39,23 @@
#define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */
#define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */
#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */
-#define FB_VISUAL_STATIC_DIRECTCOLOR 6 /* Direct color readonly */
+
+#define FB_ACCEL_NONE 0 /* no hardware accelerator */
+#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */
+#define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */
+#define FB_ACCEL_S3_TRIO64 3 /* Cybervision64 (S3 Trio64) */
+#define FB_ACCEL_NCR_77C32BLT 4 /* RetinaZ3 (NCR 77C32BLT) */
+#define FB_ACCEL_S3_VIRGE 5 /* Cybervision64/3D (S3 ViRGE) */
+#define FB_ACCEL_ATI_MACH64GX 6 /* ATI Mach 64GX family */
+#define FB_ACCEL_DEC_TGA 7 /* DEC 21030 TGA */
+#define FB_ACCEL_ATI_MACH64CT 8 /* ATI Mach 64CT family */
+#define FB_ACCEL_ATI_MACH64VT 9 /* ATI Mach 64CT family VT class */
+#define FB_ACCEL_ATI_MACH64GT 10 /* ATI Mach 64CT family GT class */
struct fb_fix_screeninfo {
char id[16]; /* identification string eg "TT Builtin" */
char *smem_start; /* Start of frame buffer mem */
+ /* (physical address) */
__u32 smem_len; /* Length of frame buffer mem */
__u32 type; /* see FB_TYPE_* */
__u32 type_aux; /* Interleave for interleaved Planes */
@@ -50,12 +64,19 @@
__u16 ypanstep; /* zero if no hardware panning */
__u16 ywrapstep; /* zero if no hardware ywrap */
__u32 line_length; /* length of a line in bytes */
- unsigned char *mmio_start; /* Start of Memory Mapped I/O */
+ char *mmio_start; /* Start of Memory Mapped I/O */
+ /* (physical address) */
__u32 mmio_len; /* Length of Memory Mapped I/O */
__u32 accel; /* Type of acceleration available */
__u16 reserved[3]; /* Reserved for future compatibility */
};
+/* Interpretation of offset for color fields: All offsets are from the right,
+ * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you
+ * can use the offset as right argument to <<). A pixel afterwards is a bit
+ * stream and is written to video memory as that unmodified. This implies
+ * big-endian byte order if bits_per_pixel is greater than 8.
+ */
struct fb_bitfield {
__u32 offset; /* beginning of bitfield */
__u32 length; /* length of bitfield */
@@ -73,15 +94,7 @@
#define FB_ACTIVATE_VBL 16 /* activate values on next vbl */
#define FB_CHANGE_CMAP_VBL 32 /* change colormap on vbl */
-#define FB_ACCEL_NONE 0 /* no hardware accelerator */
-#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */
-#define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */
-#define FB_ACCEL_S3TRIO64 3 /* Cybervision64 (S3 Trio64) */
-#define FB_ACCEL_NCR77C32BLT 4 /* RetinaZ3 (NCR77C32BLT) */
-#define FB_ACCEL_S3VIRGE 5 /* Cybervision64/3D (S3 ViRGE) */
-#define FB_ACCEL_MACH64 6 /* ATI Mach 64 */
-#define FB_ACCEL_TGA 7 /* DEC 21030 TGA */
-#define FB_ACCEL_ATY 8 /* atyfb (ATI Mach64) */
+#define FB_ACCELF_TEXT 1 /* text mode acceleration */
#define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */
#define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */
@@ -124,7 +137,7 @@
__u32 height; /* height of picture in mm */
__u32 width; /* width of picture in mm */
- __u32 accel; /* see FB_ACCEL_* */
+ __u32 accel_flags; /* acceleration flags (hints) */
/* Timing: All values in pixclocks, except pixclock (of course) */
__u32 pixclock; /* pixel clock in ps (pico seconds) */
@@ -154,10 +167,10 @@
};
struct fb_monspecs {
- unsigned hfmin : 20; /* hfreq lower limit (Hz) */
- unsigned hfmax : 20; /* hfreq upper limit (Hz) */
- unsigned vfmin : 10; /* vfreq lower limit (Hz) */
- unsigned vfmax : 10; /* vfreq upper limit (Hz) */
+ __u32 hfmin; /* hfreq lower limit (Hz) */
+ __u32 hfmax; /* hfreq upper limit (Hz) */
+ __u16 vfmin; /* vfreq lower limit (Hz) */
+ __u16 vfmax; /* vfreq upper limit (Hz) */
unsigned dpms : 1; /* supports DPMS */
};
@@ -196,8 +209,6 @@
/* pan display */
int (*fb_pan_display)(struct fb_var_screeninfo *var, int con,
struct fb_info *info);
- /* switch between text and graphics mode */
- int (*fb_set_mode)(int mode, struct fb_info *info);
/* perform fb specific ioctl */
int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd,
unsigned long arg, int con, struct fb_info *info);
@@ -216,6 +227,7 @@
/* are updated by fbcon.c */
struct fb_cmap cmap; /* colormap */
char *screen_base; /* pointer to top of virtual screen */
+ /* (virtual address) */
int visual;
int type; /* see FB_TYPE_* */
int type_aux; /* Interleave for interleaved Planes */
@@ -265,6 +277,8 @@
int (*updatevar)(int, struct fb_info*);
/* tell fb to update the vars */
void (*blank)(int, struct fb_info*); /* tell fb to (un)blank the screen */
+ /* arg = 0: unblank */
+ /* arg > 0: VESA level (arg-1) */
/* From here on everything is device dependent */
};
@@ -349,6 +363,12 @@
struct fb_info *fb_info);
extern struct fb_cmap *fb_default_cmap(int len);
extern void fb_invert_cmaps(void);
+
+/* VESA Blanking Levels */
+#define VESA_NO_BLANKING 0
+#define VESA_VSYNC_SUSPEND 1
+#define VESA_HSYNC_SUSPEND 2
+#define VESA_POWERDOWN 3
#endif /* __KERNEL__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov