0001
0002 #ifndef _UAPI_LINUX_FB_H
0003 #define _UAPI_LINUX_FB_H
0004
0005 #include <linux/types.h>
0006 #include <linux/i2c.h>
0007
0008
0009
0010 #define FB_MAX 32
0011
0012
0013
0014 #define FBIOGET_VSCREENINFO 0x4600
0015 #define FBIOPUT_VSCREENINFO 0x4601
0016 #define FBIOGET_FSCREENINFO 0x4602
0017 #define FBIOGETCMAP 0x4604
0018 #define FBIOPUTCMAP 0x4605
0019 #define FBIOPAN_DISPLAY 0x4606
0020 #ifndef __KERNEL__
0021 #define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
0022 #endif
0023
0024
0025
0026
0027 #define FBIOGET_CON2FBMAP 0x460F
0028 #define FBIOPUT_CON2FBMAP 0x4610
0029 #define FBIOBLANK 0x4611
0030 #define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
0031 #define FBIO_ALLOC 0x4613
0032 #define FBIO_FREE 0x4614
0033 #define FBIOGET_GLYPH 0x4615
0034 #define FBIOGET_HWCINFO 0x4616
0035 #define FBIOPUT_MODEINFO 0x4617
0036 #define FBIOGET_DISPINFO 0x4618
0037 #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
0038
0039 #define FB_TYPE_PACKED_PIXELS 0
0040 #define FB_TYPE_PLANES 1
0041 #define FB_TYPE_INTERLEAVED_PLANES 2
0042 #define FB_TYPE_TEXT 3
0043 #define FB_TYPE_VGA_PLANES 4
0044 #define FB_TYPE_FOURCC 5
0045
0046 #define FB_AUX_TEXT_MDA 0
0047 #define FB_AUX_TEXT_CGA 1
0048 #define FB_AUX_TEXT_S3_MMIO 2
0049 #define FB_AUX_TEXT_MGA_STEP16 3
0050 #define FB_AUX_TEXT_MGA_STEP8 4
0051 #define FB_AUX_TEXT_SVGA_GROUP 8
0052 #define FB_AUX_TEXT_SVGA_MASK 7
0053 #define FB_AUX_TEXT_SVGA_STEP2 8
0054 #define FB_AUX_TEXT_SVGA_STEP4 9
0055 #define FB_AUX_TEXT_SVGA_STEP8 10
0056 #define FB_AUX_TEXT_SVGA_STEP16 11
0057 #define FB_AUX_TEXT_SVGA_LAST 15
0058
0059 #define FB_AUX_VGA_PLANES_VGA4 0
0060 #define FB_AUX_VGA_PLANES_CFB4 1
0061 #define FB_AUX_VGA_PLANES_CFB8 2
0062
0063 #define FB_VISUAL_MONO01 0
0064 #define FB_VISUAL_MONO10 1
0065 #define FB_VISUAL_TRUECOLOR 2
0066 #define FB_VISUAL_PSEUDOCOLOR 3
0067 #define FB_VISUAL_DIRECTCOLOR 4
0068 #define FB_VISUAL_STATIC_PSEUDOCOLOR 5
0069 #define FB_VISUAL_FOURCC 6
0070
0071 #define FB_ACCEL_NONE 0
0072 #define FB_ACCEL_ATARIBLITT 1
0073 #define FB_ACCEL_AMIGABLITT 2
0074 #define FB_ACCEL_S3_TRIO64 3
0075 #define FB_ACCEL_NCR_77C32BLT 4
0076 #define FB_ACCEL_S3_VIRGE 5
0077 #define FB_ACCEL_ATI_MACH64GX 6
0078 #define FB_ACCEL_DEC_TGA 7
0079 #define FB_ACCEL_ATI_MACH64CT 8
0080 #define FB_ACCEL_ATI_MACH64VT 9
0081 #define FB_ACCEL_ATI_MACH64GT 10
0082 #define FB_ACCEL_SUN_CREATOR 11
0083 #define FB_ACCEL_SUN_CGSIX 12
0084 #define FB_ACCEL_SUN_LEO 13
0085 #define FB_ACCEL_IMS_TWINTURBO 14
0086 #define FB_ACCEL_3DLABS_PERMEDIA2 15
0087 #define FB_ACCEL_MATROX_MGA2064W 16
0088 #define FB_ACCEL_MATROX_MGA1064SG 17
0089 #define FB_ACCEL_MATROX_MGA2164W 18
0090 #define FB_ACCEL_MATROX_MGA2164W_AGP 19
0091 #define FB_ACCEL_MATROX_MGAG100 20
0092 #define FB_ACCEL_MATROX_MGAG200 21
0093 #define FB_ACCEL_SUN_CG14 22
0094 #define FB_ACCEL_SUN_BWTWO 23
0095 #define FB_ACCEL_SUN_CGTHREE 24
0096 #define FB_ACCEL_SUN_TCX 25
0097 #define FB_ACCEL_MATROX_MGAG400 26
0098 #define FB_ACCEL_NV3 27
0099 #define FB_ACCEL_NV4 28
0100 #define FB_ACCEL_NV5 29
0101 #define FB_ACCEL_CT_6555x 30
0102 #define FB_ACCEL_3DFX_BANSHEE 31
0103 #define FB_ACCEL_ATI_RAGE128 32
0104 #define FB_ACCEL_IGS_CYBER2000 33
0105 #define FB_ACCEL_IGS_CYBER2010 34
0106 #define FB_ACCEL_IGS_CYBER5000 35
0107 #define FB_ACCEL_SIS_GLAMOUR 36
0108 #define FB_ACCEL_3DLABS_PERMEDIA3 37
0109 #define FB_ACCEL_ATI_RADEON 38
0110 #define FB_ACCEL_I810 39
0111 #define FB_ACCEL_SIS_GLAMOUR_2 40
0112 #define FB_ACCEL_SIS_XABRE 41
0113 #define FB_ACCEL_I830 42
0114 #define FB_ACCEL_NV_10 43
0115 #define FB_ACCEL_NV_20 44
0116 #define FB_ACCEL_NV_30 45
0117 #define FB_ACCEL_NV_40 46
0118 #define FB_ACCEL_XGI_VOLARI_V 47
0119 #define FB_ACCEL_XGI_VOLARI_Z 48
0120 #define FB_ACCEL_OMAP1610 49
0121 #define FB_ACCEL_TRIDENT_TGUI 50
0122 #define FB_ACCEL_TRIDENT_3DIMAGE 51
0123 #define FB_ACCEL_TRIDENT_BLADE3D 52
0124 #define FB_ACCEL_TRIDENT_BLADEXP 53
0125 #define FB_ACCEL_CIRRUS_ALPINE 53
0126 #define FB_ACCEL_NEOMAGIC_NM2070 90
0127 #define FB_ACCEL_NEOMAGIC_NM2090 91
0128 #define FB_ACCEL_NEOMAGIC_NM2093 92
0129 #define FB_ACCEL_NEOMAGIC_NM2097 93
0130 #define FB_ACCEL_NEOMAGIC_NM2160 94
0131 #define FB_ACCEL_NEOMAGIC_NM2200 95
0132 #define FB_ACCEL_NEOMAGIC_NM2230 96
0133 #define FB_ACCEL_NEOMAGIC_NM2360 97
0134 #define FB_ACCEL_NEOMAGIC_NM2380 98
0135 #define FB_ACCEL_PXA3XX 99
0136
0137 #define FB_ACCEL_SAVAGE4 0x80
0138 #define FB_ACCEL_SAVAGE3D 0x81
0139 #define FB_ACCEL_SAVAGE3D_MV 0x82
0140 #define FB_ACCEL_SAVAGE2000 0x83
0141 #define FB_ACCEL_SAVAGE_MX_MV 0x84
0142 #define FB_ACCEL_SAVAGE_MX 0x85
0143 #define FB_ACCEL_SAVAGE_IX_MV 0x86
0144 #define FB_ACCEL_SAVAGE_IX 0x87
0145 #define FB_ACCEL_PROSAVAGE_PM 0x88
0146 #define FB_ACCEL_PROSAVAGE_KM 0x89
0147 #define FB_ACCEL_S3TWISTER_P 0x8a
0148 #define FB_ACCEL_S3TWISTER_K 0x8b
0149 #define FB_ACCEL_SUPERSAVAGE 0x8c
0150 #define FB_ACCEL_PROSAVAGE_DDR 0x8d
0151 #define FB_ACCEL_PROSAVAGE_DDRK 0x8e
0152
0153 #define FB_ACCEL_PUV3_UNIGFX 0xa0
0154
0155 #define FB_CAP_FOURCC 1
0156
0157 struct fb_fix_screeninfo {
0158 char id[16];
0159 unsigned long smem_start;
0160
0161 __u32 smem_len;
0162 __u32 type;
0163 __u32 type_aux;
0164 __u32 visual;
0165 __u16 xpanstep;
0166 __u16 ypanstep;
0167 __u16 ywrapstep;
0168 __u32 line_length;
0169 unsigned long mmio_start;
0170
0171 __u32 mmio_len;
0172 __u32 accel;
0173
0174 __u16 capabilities;
0175 __u16 reserved[2];
0176 };
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188 struct fb_bitfield {
0189 __u32 offset;
0190 __u32 length;
0191 __u32 msb_right;
0192
0193 };
0194
0195 #define FB_NONSTD_HAM 1
0196 #define FB_NONSTD_REV_PIX_IN_B 2
0197
0198 #define FB_ACTIVATE_NOW 0
0199 #define FB_ACTIVATE_NXTOPEN 1
0200 #define FB_ACTIVATE_TEST 2
0201 #define FB_ACTIVATE_MASK 15
0202
0203 #define FB_ACTIVATE_VBL 16
0204 #define FB_CHANGE_CMAP_VBL 32
0205 #define FB_ACTIVATE_ALL 64
0206 #define FB_ACTIVATE_FORCE 128
0207 #define FB_ACTIVATE_INV_MODE 256
0208 #define FB_ACTIVATE_KD_TEXT 512
0209
0210 #define FB_ACCELF_TEXT 1
0211
0212 #define FB_SYNC_HOR_HIGH_ACT 1
0213 #define FB_SYNC_VERT_HIGH_ACT 2
0214 #define FB_SYNC_EXT 4
0215 #define FB_SYNC_COMP_HIGH_ACT 8
0216 #define FB_SYNC_BROADCAST 16
0217
0218
0219 #define FB_SYNC_ON_GREEN 32
0220
0221 #define FB_VMODE_NONINTERLACED 0
0222 #define FB_VMODE_INTERLACED 1
0223 #define FB_VMODE_DOUBLE 2
0224 #define FB_VMODE_ODD_FLD_FIRST 4
0225 #define FB_VMODE_MASK 255
0226
0227 #define FB_VMODE_YWRAP 256
0228 #define FB_VMODE_SMOOTH_XPAN 512
0229 #define FB_VMODE_CONUPDATE 512
0230
0231
0232
0233
0234 #define FB_ROTATE_UR 0
0235 #define FB_ROTATE_CW 1
0236 #define FB_ROTATE_UD 2
0237 #define FB_ROTATE_CCW 3
0238
0239 #define PICOS2KHZ(a) (1000000000UL/(a))
0240 #define KHZ2PICOS(a) (1000000000UL/(a))
0241
0242 struct fb_var_screeninfo {
0243 __u32 xres;
0244 __u32 yres;
0245 __u32 xres_virtual;
0246 __u32 yres_virtual;
0247 __u32 xoffset;
0248 __u32 yoffset;
0249
0250 __u32 bits_per_pixel;
0251 __u32 grayscale;
0252
0253 struct fb_bitfield red;
0254 struct fb_bitfield green;
0255 struct fb_bitfield blue;
0256 struct fb_bitfield transp;
0257
0258 __u32 nonstd;
0259
0260 __u32 activate;
0261
0262 __u32 height;
0263 __u32 width;
0264
0265 __u32 accel_flags;
0266
0267
0268 __u32 pixclock;
0269 __u32 left_margin;
0270 __u32 right_margin;
0271 __u32 upper_margin;
0272 __u32 lower_margin;
0273 __u32 hsync_len;
0274 __u32 vsync_len;
0275 __u32 sync;
0276 __u32 vmode;
0277 __u32 rotate;
0278 __u32 colorspace;
0279 __u32 reserved[4];
0280 };
0281
0282 struct fb_cmap {
0283 __u32 start;
0284 __u32 len;
0285 __u16 *red;
0286 __u16 *green;
0287 __u16 *blue;
0288 __u16 *transp;
0289 };
0290
0291 struct fb_con2fbmap {
0292 __u32 console;
0293 __u32 framebuffer;
0294 };
0295
0296
0297 #define VESA_NO_BLANKING 0
0298 #define VESA_VSYNC_SUSPEND 1
0299 #define VESA_HSYNC_SUSPEND 2
0300 #define VESA_POWERDOWN 3
0301
0302
0303 enum {
0304
0305 FB_BLANK_UNBLANK = VESA_NO_BLANKING,
0306
0307
0308 FB_BLANK_NORMAL = VESA_NO_BLANKING + 1,
0309
0310
0311 FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1,
0312
0313
0314 FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1,
0315
0316
0317 FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1
0318 };
0319
0320 #define FB_VBLANK_VBLANKING 0x001
0321 #define FB_VBLANK_HBLANKING 0x002
0322 #define FB_VBLANK_HAVE_VBLANK 0x004
0323 #define FB_VBLANK_HAVE_HBLANK 0x008
0324 #define FB_VBLANK_HAVE_COUNT 0x010
0325 #define FB_VBLANK_HAVE_VCOUNT 0x020
0326 #define FB_VBLANK_HAVE_HCOUNT 0x040
0327 #define FB_VBLANK_VSYNCING 0x080
0328 #define FB_VBLANK_HAVE_VSYNC 0x100
0329
0330 struct fb_vblank {
0331 __u32 flags;
0332 __u32 count;
0333 __u32 vcount;
0334 __u32 hcount;
0335 __u32 reserved[4];
0336 };
0337
0338
0339 #define ROP_COPY 0
0340 #define ROP_XOR 1
0341
0342 struct fb_copyarea {
0343 __u32 dx;
0344 __u32 dy;
0345 __u32 width;
0346 __u32 height;
0347 __u32 sx;
0348 __u32 sy;
0349 };
0350
0351 struct fb_fillrect {
0352 __u32 dx;
0353 __u32 dy;
0354 __u32 width;
0355 __u32 height;
0356 __u32 color;
0357 __u32 rop;
0358 };
0359
0360 struct fb_image {
0361 __u32 dx;
0362 __u32 dy;
0363 __u32 width;
0364 __u32 height;
0365 __u32 fg_color;
0366 __u32 bg_color;
0367 __u8 depth;
0368 const char *data;
0369 struct fb_cmap cmap;
0370 };
0371
0372
0373
0374
0375
0376 #define FB_CUR_SETIMAGE 0x01
0377 #define FB_CUR_SETPOS 0x02
0378 #define FB_CUR_SETHOT 0x04
0379 #define FB_CUR_SETCMAP 0x08
0380 #define FB_CUR_SETSHAPE 0x10
0381 #define FB_CUR_SETSIZE 0x20
0382 #define FB_CUR_SETALL 0xFF
0383
0384 struct fbcurpos {
0385 __u16 x, y;
0386 };
0387
0388 struct fb_cursor {
0389 __u16 set;
0390 __u16 enable;
0391 __u16 rop;
0392 const char *mask;
0393 struct fbcurpos hot;
0394 struct fb_image image;
0395 };
0396
0397
0398 #define FB_BACKLIGHT_LEVELS 128
0399 #define FB_BACKLIGHT_MAX 0xFF
0400
0401
0402 #endif