1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI__LINUX_OMAPFB_H__
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI__LINUX_OMAPFB_H__
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/fb.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/ioctl.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define OMAP_IOW(num,dtype) _IOW('O', num, dtype)
25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define OMAP_IOR(num,dtype) _IOR('O', num, dtype)
26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define OMAP_IOWR(num,dtype) _IOWR('O', num, dtype)
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAP_IO(num) _IO('O', num)
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MIRROR OMAP_IOW(31, int)
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SYNC_GFX OMAP_IO(37)
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_VSYNC OMAP_IO(38)
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SET_UPDATE_MODE OMAP_IOW(40, int)
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_CAPS OMAP_IOR(42, struct omapfb_caps)
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_UPDATE_MODE OMAP_IOW(43, int)
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_LCD_TEST OMAP_IOW(45, int)
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CTRL_TEST OMAP_IOW(46, int)
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(47, struct omapfb_update_window_old)
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SET_COLOR_KEY OMAP_IOW(50, struct omapfb_color_key)
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_COLOR_KEY OMAP_IOW(51, struct omapfb_color_key)
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SETUP_PLANE OMAP_IOW(52, struct omapfb_plane_info)
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_QUERY_PLANE OMAP_IOW(53, struct omapfb_plane_info)
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_UPDATE_WINDOW OMAP_IOW(54, struct omapfb_update_window)
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SETUP_MEM OMAP_IOW(55, struct omapfb_mem_info)
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_QUERY_MEM OMAP_IOW(56, struct omapfb_mem_info)
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_WAITFORVSYNC OMAP_IO(57)
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEMORY_READ OMAP_IOR(58, struct omapfb_memory_read)
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_OVERLAY_COLORMODE OMAP_IOR(59, struct omapfb_ovl_colormode)
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_WAITFORGO OMAP_IO(60)
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_VRAM_INFO OMAP_IOR(61, struct omapfb_vram_info)
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_SET_TEARSYNC OMAP_IOW(62, struct omapfb_tearsync_info)
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_GET_DISPLAY_INFO OMAP_IOR(63, struct omapfb_display_info)
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_GENERIC_MASK 0x00000fff
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_LCDC_MASK 0x00fff000
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_PANEL_MASK 0xff000000
54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_MANUAL_UPDATE 0x00001000
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_TEARSYNC 0x00002000
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_PLANE_RELOCATE_MEM 0x00004000
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_PLANE_SCALE 0x00008000
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_WINDOW_SCALE 0x00020000
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_WINDOW_ROTATE 0x00080000
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_MASK 0x00ff
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_FLAG_DOUBLE 0x0100
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_FLAG_TEARSYNC 0x0200
66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_FLAG_FORCE_VSYNC 0x0400
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_FLAG_ENABLE_OVERLAY 0x0800
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_FORMAT_FLAG_DISABLE_OVERLAY 0x1000
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEMTYPE_SDRAM 0
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEMTYPE_SRAM 1
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEMTYPE_MAX 1
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEM_IDX_ENABLED 0x80
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define OMAPFB_MEM_IDX_MASK 0x7f
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum omapfb_color_format {
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGB565 = 0,
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_YUV422,
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_YUV420,
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_CLUT_8BPP,
79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_CLUT_4BPP,
80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_CLUT_2BPP,
81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_CLUT_1BPP,
82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGB444,
83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_YUY422,
84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_ARGB16,
85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGB24U,
86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGB24P,
87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_ARGB32,
88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGBA32,
89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_RGBX32,
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_update_window {
92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 x, y;
93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 width, height;
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 format;
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 out_x, out_y;
96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 out_width, out_height;
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved[8];
98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_update_window_old {
100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 x, y;
101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 width, height;
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 format;
103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum omapfb_plane {
105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_PLANE_GFX = 0,
106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_PLANE_VID1,
107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_PLANE_VID2,
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum omapfb_channel_out {
110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_CHANNEL_OUT_LCD = 0,
111d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_CHANNEL_OUT_DIGIT,
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_plane_info {
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 pos_x;
115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 pos_y;
116d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 enabled;
117d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 channel_out;
118d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 mirror;
119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 mem_idx;
120d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 out_width;
121d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 out_height;
122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved2[12];
123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_mem_info {
125d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 size;
126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 type;
127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 reserved[3];
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_caps {
130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 ctrl;
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 plane_color;
132d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 wnd_color;
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum omapfb_color_key_type {
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_KEY_DISABLED = 0,
136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_KEY_GFX_DST,
137d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_COLOR_KEY_VID_SRC,
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_color_key {
140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 channel_out;
141d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 background;
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 trans_key;
143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 key_type;
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum omapfb_update_mode {
146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_UPDATE_DISABLED = 0,
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_AUTO_UPDATE,
148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  OMAPFB_MANUAL_UPDATE
149655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_memory_read {
151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 x;
152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 y;
153d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 w;
154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 h;
155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  size_t buffer_size;
156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  void __user * buffer;
157655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
158655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_ovl_colormode {
159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 overlay_idx;
160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 mode_idx;
161d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 bits_per_pixel;
162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 nonstd;
163d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct fb_bitfield red;
164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct fb_bitfield green;
165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct fb_bitfield blue;
166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct fb_bitfield transp;
167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_vram_info {
169d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 total;
170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 free;
171d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 largest_free_block;
172d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved[5];
173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
174655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_tearsync_info {
175d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 enabled;
176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 reserved1[3];
177d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 line;
178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 reserved2;
179655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
180655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct omapfb_display_info {
181d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 xres;
182d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 yres;
183d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 width;
184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 height;
185d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved[5];
186655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
188