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

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