blob: fda2b05a0fe8760ac2cd9e444ffddb2150097852 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_LINUX_FB_H
8#define _UAPI_LINUX_FB_H
9#include <linux/types.h>
10#include <linux/i2c.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011#define FB_MAX 32
12#define FBIOGET_VSCREENINFO 0x4600
13#define FBIOPUT_VSCREENINFO 0x4601
14#define FBIOGET_FSCREENINFO 0x4602
Ben Cheng655a7c02013-10-16 16:09:24 -070015#define FBIOGETCMAP 0x4604
16#define FBIOPUTCMAP 0x4605
17#define FBIOPAN_DISPLAY 0x4606
18#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
Ben Cheng655a7c02013-10-16 16:09:24 -070019#define FBIOGET_CON2FBMAP 0x460F
20#define FBIOPUT_CON2FBMAP 0x4610
21#define FBIOBLANK 0x4611
22#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define FBIO_ALLOC 0x4613
24#define FBIO_FREE 0x4614
25#define FBIOGET_GLYPH 0x4615
26#define FBIOGET_HWCINFO 0x4616
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define FBIOPUT_MODEINFO 0x4617
28#define FBIOGET_DISPINFO 0x4618
29#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
30#define FB_TYPE_PACKED_PIXELS 0
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define FB_TYPE_PLANES 1
32#define FB_TYPE_INTERLEAVED_PLANES 2
33#define FB_TYPE_TEXT 3
34#define FB_TYPE_VGA_PLANES 4
Ben Cheng655a7c02013-10-16 16:09:24 -070035#define FB_TYPE_FOURCC 5
36#define FB_AUX_TEXT_MDA 0
37#define FB_AUX_TEXT_CGA 1
38#define FB_AUX_TEXT_S3_MMIO 2
Ben Cheng655a7c02013-10-16 16:09:24 -070039#define FB_AUX_TEXT_MGA_STEP16 3
40#define FB_AUX_TEXT_MGA_STEP8 4
41#define FB_AUX_TEXT_SVGA_GROUP 8
42#define FB_AUX_TEXT_SVGA_MASK 7
Ben Cheng655a7c02013-10-16 16:09:24 -070043#define FB_AUX_TEXT_SVGA_STEP2 8
44#define FB_AUX_TEXT_SVGA_STEP4 9
45#define FB_AUX_TEXT_SVGA_STEP8 10
46#define FB_AUX_TEXT_SVGA_STEP16 11
Ben Cheng655a7c02013-10-16 16:09:24 -070047#define FB_AUX_TEXT_SVGA_LAST 15
48#define FB_AUX_VGA_PLANES_VGA4 0
49#define FB_AUX_VGA_PLANES_CFB4 1
50#define FB_AUX_VGA_PLANES_CFB8 2
Ben Cheng655a7c02013-10-16 16:09:24 -070051#define FB_VISUAL_MONO01 0
52#define FB_VISUAL_MONO10 1
53#define FB_VISUAL_TRUECOLOR 2
54#define FB_VISUAL_PSEUDOCOLOR 3
Ben Cheng655a7c02013-10-16 16:09:24 -070055#define FB_VISUAL_DIRECTCOLOR 4
56#define FB_VISUAL_STATIC_PSEUDOCOLOR 5
57#define FB_VISUAL_FOURCC 6
58#define FB_ACCEL_NONE 0
Ben Cheng655a7c02013-10-16 16:09:24 -070059#define FB_ACCEL_ATARIBLITT 1
60#define FB_ACCEL_AMIGABLITT 2
61#define FB_ACCEL_S3_TRIO64 3
62#define FB_ACCEL_NCR_77C32BLT 4
Ben Cheng655a7c02013-10-16 16:09:24 -070063#define FB_ACCEL_S3_VIRGE 5
64#define FB_ACCEL_ATI_MACH64GX 6
65#define FB_ACCEL_DEC_TGA 7
66#define FB_ACCEL_ATI_MACH64CT 8
Ben Cheng655a7c02013-10-16 16:09:24 -070067#define FB_ACCEL_ATI_MACH64VT 9
68#define FB_ACCEL_ATI_MACH64GT 10
69#define FB_ACCEL_SUN_CREATOR 11
70#define FB_ACCEL_SUN_CGSIX 12
Ben Cheng655a7c02013-10-16 16:09:24 -070071#define FB_ACCEL_SUN_LEO 13
72#define FB_ACCEL_IMS_TWINTURBO 14
73#define FB_ACCEL_3DLABS_PERMEDIA2 15
74#define FB_ACCEL_MATROX_MGA2064W 16
Ben Cheng655a7c02013-10-16 16:09:24 -070075#define FB_ACCEL_MATROX_MGA1064SG 17
76#define FB_ACCEL_MATROX_MGA2164W 18
77#define FB_ACCEL_MATROX_MGA2164W_AGP 19
78#define FB_ACCEL_MATROX_MGAG100 20
Ben Cheng655a7c02013-10-16 16:09:24 -070079#define FB_ACCEL_MATROX_MGAG200 21
80#define FB_ACCEL_SUN_CG14 22
81#define FB_ACCEL_SUN_BWTWO 23
82#define FB_ACCEL_SUN_CGTHREE 24
Ben Cheng655a7c02013-10-16 16:09:24 -070083#define FB_ACCEL_SUN_TCX 25
84#define FB_ACCEL_MATROX_MGAG400 26
85#define FB_ACCEL_NV3 27
86#define FB_ACCEL_NV4 28
Ben Cheng655a7c02013-10-16 16:09:24 -070087#define FB_ACCEL_NV5 29
88#define FB_ACCEL_CT_6555x 30
89#define FB_ACCEL_3DFX_BANSHEE 31
90#define FB_ACCEL_ATI_RAGE128 32
Ben Cheng655a7c02013-10-16 16:09:24 -070091#define FB_ACCEL_IGS_CYBER2000 33
92#define FB_ACCEL_IGS_CYBER2010 34
93#define FB_ACCEL_IGS_CYBER5000 35
94#define FB_ACCEL_SIS_GLAMOUR 36
Ben Cheng655a7c02013-10-16 16:09:24 -070095#define FB_ACCEL_3DLABS_PERMEDIA3 37
96#define FB_ACCEL_ATI_RADEON 38
97#define FB_ACCEL_I810 39
98#define FB_ACCEL_SIS_GLAMOUR_2 40
Ben Cheng655a7c02013-10-16 16:09:24 -070099#define FB_ACCEL_SIS_XABRE 41
100#define FB_ACCEL_I830 42
101#define FB_ACCEL_NV_10 43
102#define FB_ACCEL_NV_20 44
Ben Cheng655a7c02013-10-16 16:09:24 -0700103#define FB_ACCEL_NV_30 45
104#define FB_ACCEL_NV_40 46
105#define FB_ACCEL_XGI_VOLARI_V 47
106#define FB_ACCEL_XGI_VOLARI_Z 48
Ben Cheng655a7c02013-10-16 16:09:24 -0700107#define FB_ACCEL_OMAP1610 49
108#define FB_ACCEL_TRIDENT_TGUI 50
109#define FB_ACCEL_TRIDENT_3DIMAGE 51
110#define FB_ACCEL_TRIDENT_BLADE3D 52
Ben Cheng655a7c02013-10-16 16:09:24 -0700111#define FB_ACCEL_TRIDENT_BLADEXP 53
112#define FB_ACCEL_CIRRUS_ALPINE 53
113#define FB_ACCEL_NEOMAGIC_NM2070 90
114#define FB_ACCEL_NEOMAGIC_NM2090 91
Ben Cheng655a7c02013-10-16 16:09:24 -0700115#define FB_ACCEL_NEOMAGIC_NM2093 92
116#define FB_ACCEL_NEOMAGIC_NM2097 93
117#define FB_ACCEL_NEOMAGIC_NM2160 94
118#define FB_ACCEL_NEOMAGIC_NM2200 95
Ben Cheng655a7c02013-10-16 16:09:24 -0700119#define FB_ACCEL_NEOMAGIC_NM2230 96
120#define FB_ACCEL_NEOMAGIC_NM2360 97
121#define FB_ACCEL_NEOMAGIC_NM2380 98
122#define FB_ACCEL_PXA3XX 99
Ben Cheng655a7c02013-10-16 16:09:24 -0700123#define FB_ACCEL_SAVAGE4 0x80
124#define FB_ACCEL_SAVAGE3D 0x81
125#define FB_ACCEL_SAVAGE3D_MV 0x82
126#define FB_ACCEL_SAVAGE2000 0x83
Ben Cheng655a7c02013-10-16 16:09:24 -0700127#define FB_ACCEL_SAVAGE_MX_MV 0x84
128#define FB_ACCEL_SAVAGE_MX 0x85
129#define FB_ACCEL_SAVAGE_IX_MV 0x86
130#define FB_ACCEL_SAVAGE_IX 0x87
Ben Cheng655a7c02013-10-16 16:09:24 -0700131#define FB_ACCEL_PROSAVAGE_PM 0x88
132#define FB_ACCEL_PROSAVAGE_KM 0x89
133#define FB_ACCEL_S3TWISTER_P 0x8a
134#define FB_ACCEL_S3TWISTER_K 0x8b
Ben Cheng655a7c02013-10-16 16:09:24 -0700135#define FB_ACCEL_SUPERSAVAGE 0x8c
136#define FB_ACCEL_PROSAVAGE_DDR 0x8d
137#define FB_ACCEL_PROSAVAGE_DDRK 0x8e
138#define FB_ACCEL_PUV3_UNIGFX 0xa0
Ben Cheng655a7c02013-10-16 16:09:24 -0700139#define FB_CAP_FOURCC 1
140struct fb_fix_screeninfo {
Tao Baod7db5942015-01-28 10:07:51 -0800141 char id[16];
142 unsigned long smem_start;
Tao Baod7db5942015-01-28 10:07:51 -0800143 __u32 smem_len;
144 __u32 type;
145 __u32 type_aux;
146 __u32 visual;
Tao Baod7db5942015-01-28 10:07:51 -0800147 __u16 xpanstep;
148 __u16 ypanstep;
149 __u16 ywrapstep;
150 __u32 line_length;
Tao Baod7db5942015-01-28 10:07:51 -0800151 unsigned long mmio_start;
152 __u32 mmio_len;
153 __u32 accel;
154 __u16 capabilities;
Tao Baod7db5942015-01-28 10:07:51 -0800155 __u16 reserved[2];
Ben Cheng655a7c02013-10-16 16:09:24 -0700156};
157struct fb_bitfield {
Tao Baod7db5942015-01-28 10:07:51 -0800158 __u32 offset;
Tao Baod7db5942015-01-28 10:07:51 -0800159 __u32 length;
160 __u32 msb_right;
Ben Cheng655a7c02013-10-16 16:09:24 -0700161};
162#define FB_NONSTD_HAM 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700163#define FB_NONSTD_REV_PIX_IN_B 2
164#define FB_ACTIVATE_NOW 0
165#define FB_ACTIVATE_NXTOPEN 1
166#define FB_ACTIVATE_TEST 2
Ben Cheng655a7c02013-10-16 16:09:24 -0700167#define FB_ACTIVATE_MASK 15
168#define FB_ACTIVATE_VBL 16
169#define FB_CHANGE_CMAP_VBL 32
170#define FB_ACTIVATE_ALL 64
Ben Cheng655a7c02013-10-16 16:09:24 -0700171#define FB_ACTIVATE_FORCE 128
172#define FB_ACTIVATE_INV_MODE 256
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700173#define FB_ACTIVATE_KD_TEXT 512
Ben Cheng655a7c02013-10-16 16:09:24 -0700174#define FB_ACCELF_TEXT 1
175#define FB_SYNC_HOR_HIGH_ACT 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700176#define FB_SYNC_VERT_HIGH_ACT 2
177#define FB_SYNC_EXT 4
178#define FB_SYNC_COMP_HIGH_ACT 8
179#define FB_SYNC_BROADCAST 16
Ben Cheng655a7c02013-10-16 16:09:24 -0700180#define FB_SYNC_ON_GREEN 32
181#define FB_VMODE_NONINTERLACED 0
182#define FB_VMODE_INTERLACED 1
183#define FB_VMODE_DOUBLE 2
Ben Cheng655a7c02013-10-16 16:09:24 -0700184#define FB_VMODE_ODD_FLD_FIRST 4
185#define FB_VMODE_MASK 255
186#define FB_VMODE_YWRAP 256
187#define FB_VMODE_SMOOTH_XPAN 512
Ben Cheng655a7c02013-10-16 16:09:24 -0700188#define FB_VMODE_CONUPDATE 512
189#define FB_ROTATE_UR 0
190#define FB_ROTATE_CW 1
191#define FB_ROTATE_UD 2
Ben Cheng655a7c02013-10-16 16:09:24 -0700192#define FB_ROTATE_CCW 3
Tao Baod7db5942015-01-28 10:07:51 -0800193#define PICOS2KHZ(a) (1000000000UL / (a))
194#define KHZ2PICOS(a) (1000000000UL / (a))
Ben Cheng655a7c02013-10-16 16:09:24 -0700195struct fb_var_screeninfo {
Tao Baod7db5942015-01-28 10:07:51 -0800196 __u32 xres;
197 __u32 yres;
198 __u32 xres_virtual;
199 __u32 yres_virtual;
Tao Baod7db5942015-01-28 10:07:51 -0800200 __u32 xoffset;
201 __u32 yoffset;
202 __u32 bits_per_pixel;
203 __u32 grayscale;
Tao Baod7db5942015-01-28 10:07:51 -0800204 struct fb_bitfield red;
205 struct fb_bitfield green;
206 struct fb_bitfield blue;
207 struct fb_bitfield transp;
Tao Baod7db5942015-01-28 10:07:51 -0800208 __u32 nonstd;
209 __u32 activate;
210 __u32 height;
211 __u32 width;
Tao Baod7db5942015-01-28 10:07:51 -0800212 __u32 accel_flags;
213 __u32 pixclock;
214 __u32 left_margin;
215 __u32 right_margin;
Tao Baod7db5942015-01-28 10:07:51 -0800216 __u32 upper_margin;
217 __u32 lower_margin;
218 __u32 hsync_len;
219 __u32 vsync_len;
Tao Baod7db5942015-01-28 10:07:51 -0800220 __u32 sync;
221 __u32 vmode;
222 __u32 rotate;
223 __u32 colorspace;
Tao Baod7db5942015-01-28 10:07:51 -0800224 __u32 reserved[4];
Ben Cheng655a7c02013-10-16 16:09:24 -0700225};
226struct fb_cmap {
Tao Baod7db5942015-01-28 10:07:51 -0800227 __u32 start;
Tao Baod7db5942015-01-28 10:07:51 -0800228 __u32 len;
229 __u16 * red;
230 __u16 * green;
231 __u16 * blue;
Tao Baod7db5942015-01-28 10:07:51 -0800232 __u16 * transp;
Ben Cheng655a7c02013-10-16 16:09:24 -0700233};
234struct fb_con2fbmap {
Tao Baod7db5942015-01-28 10:07:51 -0800235 __u32 console;
Tao Baod7db5942015-01-28 10:07:51 -0800236 __u32 framebuffer;
Ben Cheng655a7c02013-10-16 16:09:24 -0700237};
238#define VESA_NO_BLANKING 0
239#define VESA_VSYNC_SUSPEND 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700240#define VESA_HSYNC_SUSPEND 2
241#define VESA_POWERDOWN 3
242enum {
Tao Baod7db5942015-01-28 10:07:51 -0800243 FB_BLANK_UNBLANK = VESA_NO_BLANKING,
Tao Baod7db5942015-01-28 10:07:51 -0800244 FB_BLANK_NORMAL = VESA_NO_BLANKING + 1,
245 FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1,
246 FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1,
247 FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700248};
249#define FB_VBLANK_VBLANKING 0x001
250#define FB_VBLANK_HBLANKING 0x002
251#define FB_VBLANK_HAVE_VBLANK 0x004
Ben Cheng655a7c02013-10-16 16:09:24 -0700252#define FB_VBLANK_HAVE_HBLANK 0x008
253#define FB_VBLANK_HAVE_COUNT 0x010
254#define FB_VBLANK_HAVE_VCOUNT 0x020
255#define FB_VBLANK_HAVE_HCOUNT 0x040
Ben Cheng655a7c02013-10-16 16:09:24 -0700256#define FB_VBLANK_VSYNCING 0x080
257#define FB_VBLANK_HAVE_VSYNC 0x100
258struct fb_vblank {
Tao Baod7db5942015-01-28 10:07:51 -0800259 __u32 flags;
Tao Baod7db5942015-01-28 10:07:51 -0800260 __u32 count;
261 __u32 vcount;
262 __u32 hcount;
263 __u32 reserved[4];
Ben Cheng655a7c02013-10-16 16:09:24 -0700264};
265#define ROP_COPY 0
266#define ROP_XOR 1
267struct fb_copyarea {
Tao Baod7db5942015-01-28 10:07:51 -0800268 __u32 dx;
269 __u32 dy;
270 __u32 width;
271 __u32 height;
Tao Baod7db5942015-01-28 10:07:51 -0800272 __u32 sx;
273 __u32 sy;
Ben Cheng655a7c02013-10-16 16:09:24 -0700274};
275struct fb_fillrect {
Tao Baod7db5942015-01-28 10:07:51 -0800276 __u32 dx;
277 __u32 dy;
278 __u32 width;
279 __u32 height;
Tao Baod7db5942015-01-28 10:07:51 -0800280 __u32 color;
281 __u32 rop;
Ben Cheng655a7c02013-10-16 16:09:24 -0700282};
283struct fb_image {
Tao Baod7db5942015-01-28 10:07:51 -0800284 __u32 dx;
285 __u32 dy;
286 __u32 width;
287 __u32 height;
Tao Baod7db5942015-01-28 10:07:51 -0800288 __u32 fg_color;
289 __u32 bg_color;
290 __u8 depth;
291 const char * data;
Tao Baod7db5942015-01-28 10:07:51 -0800292 struct fb_cmap cmap;
Ben Cheng655a7c02013-10-16 16:09:24 -0700293};
294#define FB_CUR_SETIMAGE 0x01
295#define FB_CUR_SETPOS 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -0700296#define FB_CUR_SETHOT 0x04
297#define FB_CUR_SETCMAP 0x08
298#define FB_CUR_SETSHAPE 0x10
299#define FB_CUR_SETSIZE 0x20
Ben Cheng655a7c02013-10-16 16:09:24 -0700300#define FB_CUR_SETALL 0xFF
301struct fbcurpos {
Tao Baod7db5942015-01-28 10:07:51 -0800302 __u16 x, y;
Ben Cheng655a7c02013-10-16 16:09:24 -0700303};
Ben Cheng655a7c02013-10-16 16:09:24 -0700304struct fb_cursor {
Tao Baod7db5942015-01-28 10:07:51 -0800305 __u16 set;
306 __u16 enable;
307 __u16 rop;
Tao Baod7db5942015-01-28 10:07:51 -0800308 const char * mask;
309 struct fbcurpos hot;
310 struct fb_image image;
Ben Cheng655a7c02013-10-16 16:09:24 -0700311};
Christopher Ferrisd842e432019-03-07 10:21:59 -0800312#define FB_BACKLIGHT_LEVELS 128
313#define FB_BACKLIGHT_MAX 0xFF
Ben Cheng655a7c02013-10-16 16:09:24 -0700314#endif