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