From 63f872092434e906959cf802c68ec0d841280597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Fri, 11 Nov 2016 00:33:59 +0100 Subject: Sync with 16.10 codedrop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie3d247faea0d4f76b973e95c80712ca41fdf4c0d Signed-off-by: Bernhard Rosenkränzer --- kernel-headers/linux/disp_session.h | 7 +- kernel-headers/linux/disp_svp.h | 404 +++++++++++++++++------------------- 2 files changed, 199 insertions(+), 212 deletions(-) diff --git a/kernel-headers/linux/disp_session.h b/kernel-headers/linux/disp_session.h index 075698e..939b021 100755 --- a/kernel-headers/linux/disp_session.h +++ b/kernel-headers/linux/disp_session.h @@ -305,8 +305,10 @@ typedef struct disp_session_info_t { unsigned int displayFormat; DISP_IF_MODE displayMode; unsigned int vsyncFPS; - unsigned int physicalWidth; - unsigned int physicalHeight; + unsigned int physicalWidth; /* length: mm, for legacy use */ + unsigned int physicalHeight; /* length: mm, for legacy use */ + unsigned int physicalWidthUm; /* length: um, for more precise precision */ + unsigned int physicalHeightUm; /* length: um, for more precise precision */ unsigned int isConnected; unsigned int isHDCPSupported; unsigned int isOVLDisabled; @@ -365,6 +367,7 @@ typedef enum { DISP_FEATURE_TIME_SHARING = 0x00000001, DISP_FEATURE_HRT = 0x00000002, DISP_FEATURE_PARTIAL = 0x00000004, + DISP_FEATURE_NO_LCM = 0x10000000, } DISP_FEATURE; typedef struct disp_caps_t { diff --git a/kernel-headers/linux/disp_svp.h b/kernel-headers/linux/disp_svp.h index 3b8310f..5aca351 100755 --- a/kernel-headers/linux/disp_svp.h +++ b/kernel-headers/linux/disp_svp.h @@ -8,237 +8,221 @@ #define DISP_NO_ION_FD ((int)(~0U>>1)) #define DISP_NO_USE_LAEYR_ID ((int)(~0U>>1)) -#define MAX_INPUT_CONFIG 4 +#define MAX_INPUT_CONFIG 4 #define MAKE_DISP_FORMAT_ID(id, bpp) (((id) << 8) | (bpp)) -///============================================================================= -// structure declarations -///=========================== - -typedef enum -{ - DISP_IF_TYPE_DBI = 0, - DISP_IF_TYPE_DPI, - DISP_IF_TYPE_DSI0, - DISP_IF_TYPE_DSI1, - DISP_IF_TYPE_DSIDUAL, - DISP_IF_HDMI, - DISP_IF_HDMI_SMARTBOOK +/* /============================================================================= */ +/* structure declarations */ +/* /=========================== */ + +typedef enum { + DISP_IF_TYPE_DBI = 0, + DISP_IF_TYPE_DPI, + DISP_IF_TYPE_DSI0, + DISP_IF_TYPE_DSI1, + DISP_IF_TYPE_DSIDUAL, + DISP_IF_HDMI, + DISP_IF_HDMI_SMARTBOOK } DISP_IF_TYPE; -typedef enum -{ - DISP_IF_FORMAT_RGB565 = 0, - DISP_IF_FORMAT_RGB666, - DISP_IF_FORMAT_RGB888 +typedef enum { + DISP_IF_FORMAT_RGB565 = 0, + DISP_IF_FORMAT_RGB666, + DISP_IF_FORMAT_RGB888 } DISP_IF_FORMAT; -typedef enum -{ - DISP_IF_MODE_VIDEO = 0, - DISP_IF_MODE_COMMAND +typedef enum { + DISP_IF_MODE_VIDEO = 0, + DISP_IF_MODE_COMMAND } DISP_IF_MODE; -typedef enum -{ - DISP_ORIENTATION_0 = 0, - DISP_ORIENTATION_90 = 1, - DISP_ORIENTATION_180 = 2, - DISP_ORIENTATION_270 = 3, +typedef enum { + DISP_ORIENTATION_0 = 0, + DISP_ORIENTATION_90 = 1, + DISP_ORIENTATION_180 = 2, + DISP_ORIENTATION_270 = 3, } DISP_ORIENTATION; -typedef enum -{ - DISP_FORMAT_UNKNOWN = 0, - - DISP_FORMAT_RGB565 = MAKE_DISP_FORMAT_ID(1, 2), - DISP_FORMAT_RGB888 = MAKE_DISP_FORMAT_ID(2, 3), - DISP_FORMAT_BGR888 = MAKE_DISP_FORMAT_ID(3, 3), - DISP_FORMAT_ARGB8888 = MAKE_DISP_FORMAT_ID(4, 4), - DISP_FORMAT_ABGR8888 = MAKE_DISP_FORMAT_ID(5, 4), - DISP_FORMAT_RGBA8888 = MAKE_DISP_FORMAT_ID(6, 4), - DISP_FORMAT_BGRA8888 = MAKE_DISP_FORMAT_ID(7, 4), - DISP_FORMAT_XRGB8888 = MAKE_DISP_FORMAT_ID(8, 4), - DISP_FORMAT_XBGR8888 = MAKE_DISP_FORMAT_ID(9, 4), - //Packed YUV Formats - DISP_FORMAT_YUV444 = MAKE_DISP_FORMAT_ID(10, 3), - DISP_FORMAT_YVYU = MAKE_DISP_FORMAT_ID(11, 2), //Same as UYVY, but replace Y/U/V - DISP_FORMAT_VYUY = MAKE_DISP_FORMAT_ID(12, 2), - DISP_FORMAT_UYVY = MAKE_DISP_FORMAT_ID(13, 2), - DISP_FORMAT_Y422 = MAKE_DISP_FORMAT_ID(13, 2), - DISP_FORMAT_YUYV = MAKE_DISP_FORMAT_ID(14, 2), //Same as UYVY but replace U/V - DISP_FORMAT_YUY2 = MAKE_DISP_FORMAT_ID(14, 2), - DISP_FORMAT_YUV422 = MAKE_DISP_FORMAT_ID(14, 2), //Will be removed - DISP_FORMAT_GREY = MAKE_DISP_FORMAT_ID(15, 1), //Single Y plane - DISP_FORMAT_Y800 = MAKE_DISP_FORMAT_ID(15, 1), - DISP_FORMAT_Y8 = MAKE_DISP_FORMAT_ID(15, 1), - //Planar YUV Formats - DISP_FORMAT_YV12 = MAKE_DISP_FORMAT_ID(16, 1), //BPP = 1.5 - DISP_FORMAT_I420 = MAKE_DISP_FORMAT_ID(17, 1), //Same as YV12 but replace U/V - DISP_FORMAT_IYUV = MAKE_DISP_FORMAT_ID(17, 1), - DISP_FORMAT_NV12 = MAKE_DISP_FORMAT_ID(18, 1), //BPP = 1.5 - DISP_FORMAT_NV21 = MAKE_DISP_FORMAT_ID(19, 1), //Same as NV12 but replace U/V - - DISP_FORMAT_BPP_MASK = 0xFFFF, +typedef enum { + DISP_FORMAT_UNKNOWN = 0, + + DISP_FORMAT_RGB565 = MAKE_DISP_FORMAT_ID(1, 2), + DISP_FORMAT_RGB888 = MAKE_DISP_FORMAT_ID(2, 3), + DISP_FORMAT_BGR888 = MAKE_DISP_FORMAT_ID(3, 3), + DISP_FORMAT_ARGB8888 = MAKE_DISP_FORMAT_ID(4, 4), + DISP_FORMAT_ABGR8888 = MAKE_DISP_FORMAT_ID(5, 4), + DISP_FORMAT_RGBA8888 = MAKE_DISP_FORMAT_ID(6, 4), + DISP_FORMAT_BGRA8888 = MAKE_DISP_FORMAT_ID(7, 4), + DISP_FORMAT_XRGB8888 = MAKE_DISP_FORMAT_ID(8, 4), + DISP_FORMAT_XBGR8888 = MAKE_DISP_FORMAT_ID(9, 4), + /* Packed YUV Formats */ + DISP_FORMAT_YUV444 = MAKE_DISP_FORMAT_ID(10, 3), + DISP_FORMAT_YVYU = MAKE_DISP_FORMAT_ID(11, 2), /* Same as UYVY, but replace Y/U/V */ + DISP_FORMAT_VYUY = MAKE_DISP_FORMAT_ID(12, 2), + DISP_FORMAT_UYVY = MAKE_DISP_FORMAT_ID(13, 2), + DISP_FORMAT_Y422 = MAKE_DISP_FORMAT_ID(13, 2), + DISP_FORMAT_YUYV = MAKE_DISP_FORMAT_ID(14, 2), /* Same as UYVY but replace U/V */ + DISP_FORMAT_YUY2 = MAKE_DISP_FORMAT_ID(14, 2), + DISP_FORMAT_YUV422 = MAKE_DISP_FORMAT_ID(14, 2), /* Will be removed */ + DISP_FORMAT_GREY = MAKE_DISP_FORMAT_ID(15, 1), /* Single Y plane */ + DISP_FORMAT_Y800 = MAKE_DISP_FORMAT_ID(15, 1), + DISP_FORMAT_Y8 = MAKE_DISP_FORMAT_ID(15, 1), + /* Planar YUV Formats */ + DISP_FORMAT_YV12 = MAKE_DISP_FORMAT_ID(16, 1), /* BPP = 1.5 */ + DISP_FORMAT_I420 = MAKE_DISP_FORMAT_ID(17, 1), /* Same as YV12 but replace U/V */ + DISP_FORMAT_IYUV = MAKE_DISP_FORMAT_ID(17, 1), + DISP_FORMAT_NV12 = MAKE_DISP_FORMAT_ID(18, 1), /* BPP = 1.5 */ + DISP_FORMAT_NV21 = MAKE_DISP_FORMAT_ID(19, 1), /* Same as NV12 but replace U/V */ + + DISP_FORMAT_BPP_MASK = 0xFFFF, } DISP_FORMAT; -typedef enum -{ - DISP_LAYER_2D = 0, - DISP_LAYER_3D_SBS_0 = 0x1, - DISP_LAYER_3D_SBS_90 = 0x2, - DISP_LAYER_3D_SBS_180 = 0x3, - DISP_LAYER_3D_SBS_270 = 0x4, - DISP_LAYER_3D_TAB_0 = 0x10, - DISP_LAYER_3D_TAB_90 = 0x20, - DISP_LAYER_3D_TAB_180 = 0x30, - DISP_LAYER_3D_TAB_270 = 0x40, +typedef enum { + DISP_LAYER_2D = 0, + DISP_LAYER_3D_SBS_0 = 0x1, + DISP_LAYER_3D_SBS_90 = 0x2, + DISP_LAYER_3D_SBS_180 = 0x3, + DISP_LAYER_3D_SBS_270 = 0x4, + DISP_LAYER_3D_TAB_0 = 0x10, + DISP_LAYER_3D_TAB_90 = 0x20, + DISP_LAYER_3D_TAB_180 = 0x30, + DISP_LAYER_3D_TAB_270 = 0x40, } DISP_LAYER_TYPE; -typedef enum -{ - // normal memory +typedef enum { + /* normal memory */ DISP_NORMAL_BUFFER = 0, - // secure memory + /* secure memory */ DISP_SECURE_BUFFER = 1, - // normal memory but should not be dumpped within screenshot + /* normal memory but should not be dumpped within screenshot */ DISP_PROTECT_BUFFER = 2, - DISP_SECURE_BUFFER_SHIFT = 0x10001 + DISP_SECURE_BUFFER_SHIFT = 0x10001 } DISP_BUFFER_TYPE; -typedef enum -{ - DISP_SESSION_PRIMARY = 1, - DISP_SESSION_EXTERNAL = 2, - DISP_SESSION_MEMORY = 3 -}DISP_SESSION_TYPE; - -typedef enum -{ - // single output - DISP_SESSION_DIRECT_LINK_MODE = 1, - DISP_SESSION_DECOUPLE_MODE = 2, - - // two ouputs - DISP_SESSION_DIRECT_LINK_MIRROR_MODE = 3, - DISP_SESSION_DECOUPLE_MIRROR_MODE = 4, -}DISP_MODE; - -typedef struct disp_session_config_t -{ - DISP_SESSION_TYPE type; - unsigned int device_id; - DISP_MODE mode; - unsigned int session_id; -}disp_session_config; - -typedef struct -{ - unsigned int session_id; - unsigned int vsync_cnt; - long int vsync_ts; -}disp_session_vsync_config; - -typedef struct disp_input_config_t -{ - unsigned int layer_id; - unsigned int layer_enable; - - void* src_base_addr; - void* src_phy_addr; - unsigned int src_direct_link; - DISP_FORMAT src_fmt; - unsigned int src_use_color_key; - unsigned int src_color_key; - unsigned int src_pitch; - unsigned int src_offset_x, src_offset_y; - unsigned int src_width, src_height; - - unsigned int tgt_offset_x, tgt_offset_y; - unsigned int tgt_width, tgt_height; - DISP_ORIENTATION layer_rotation; - DISP_LAYER_TYPE layer_type; - DISP_ORIENTATION video_rotation; - - unsigned int isTdshp; // set to 1, will go through tdshp first, then layer blending, then to color - - unsigned int next_buff_idx; - int identity; - int connected_type; - DISP_BUFFER_TYPE security; - unsigned int alpha_enable; - unsigned int alpha; - unsigned int frm_sequence; -}disp_input_config; - - -typedef struct disp_output_config_t -{ - unsigned int va; - unsigned int pa; - DISP_FORMAT fmt; - unsigned int x; - unsigned int y; - unsigned int width; - unsigned int height; - unsigned int pitch; - unsigned int pitchUV; - DISP_BUFFER_TYPE security; - unsigned int buff_idx; - unsigned int frm_sequence; -}disp_output_config; +typedef enum { + DISP_SESSION_PRIMARY = 1, + DISP_SESSION_EXTERNAL = 2, + DISP_SESSION_MEMORY = 3 +} DISP_SESSION_TYPE; + +typedef enum { + /* single output */ + DISP_SESSION_DIRECT_LINK_MODE = 1, + DISP_SESSION_DECOUPLE_MODE = 2, + + /* two ouputs */ + DISP_SESSION_DIRECT_LINK_MIRROR_MODE = 3, + DISP_SESSION_DECOUPLE_MIRROR_MODE = 4, +} DISP_MODE; + +typedef struct disp_session_config_t { + DISP_SESSION_TYPE type; + unsigned int device_id; + DISP_MODE mode; + unsigned int session_id; +} disp_session_config; + +typedef struct { + unsigned int session_id; + unsigned int vsync_cnt; + long int vsync_ts; +} disp_session_vsync_config; + +typedef struct disp_input_config_t { + unsigned int layer_id; + unsigned int layer_enable; + + void *src_base_addr; + void *src_phy_addr; + unsigned int src_direct_link; + DISP_FORMAT src_fmt; + unsigned int src_use_color_key; + unsigned int src_color_key; + unsigned int src_pitch; + unsigned int src_offset_x, src_offset_y; + unsigned int src_width, src_height; + + unsigned int tgt_offset_x, tgt_offset_y; + unsigned int tgt_width, tgt_height; + DISP_ORIENTATION layer_rotation; + DISP_LAYER_TYPE layer_type; + DISP_ORIENTATION video_rotation; + + unsigned int isTdshp; /* set to 1, will go through tdshp first, then layer blending, then to color */ + + unsigned int next_buff_idx; + int identity; + int connected_type; + DISP_BUFFER_TYPE security; + unsigned int alpha_enable; + unsigned int alpha; + unsigned int frm_sequence; +} disp_input_config; + + +typedef struct disp_output_config_t { + unsigned int va; + unsigned int pa; + DISP_FORMAT fmt; + unsigned int x; + unsigned int y; + unsigned int width; + unsigned int height; + unsigned int pitch; + unsigned int pitchUV; + DISP_BUFFER_TYPE security; + unsigned int buff_idx; + unsigned int frm_sequence; +} disp_output_config; #define MAX_INPUT_CONFIG 4 -typedef struct disp_session_input_config_t -{ - unsigned int session_id; - unsigned int config_layer_num; - disp_input_config config[MAX_INPUT_CONFIG]; -}disp_session_input_config; - -typedef struct disp_session_output_config_t -{ - unsigned int session_id; - disp_output_config config; -}disp_session_output_config; - -typedef struct disp_session_layer_num_config_t -{ - unsigned int session_id; - unsigned int max_layer_num; -}disp_session_layer_num_config; - -typedef struct disp_session_info_t -{ - unsigned int session_id; - unsigned int maxLayerNum; - unsigned int isHwVsyncAvailable; - DISP_IF_TYPE displayType; - unsigned int displayWidth; - unsigned int displayHeight; - unsigned int displayFormat; - DISP_IF_MODE displayMode; - unsigned int vsyncFPS; - unsigned int physicalWidth; - unsigned int physicalHeight; - unsigned int isConnected; +typedef struct disp_session_input_config_t { + unsigned int session_id; + unsigned int config_layer_num; + disp_input_config config[MAX_INPUT_CONFIG]; +} disp_session_input_config; + +typedef struct disp_session_output_config_t { + unsigned int session_id; + disp_output_config config; +} disp_session_output_config; + +typedef struct disp_session_layer_num_config_t { + unsigned int session_id; + unsigned int max_layer_num; +} disp_session_layer_num_config; + +typedef struct disp_session_info_t { + unsigned int session_id; + unsigned int maxLayerNum; + unsigned int isHwVsyncAvailable; + DISP_IF_TYPE displayType; + unsigned int displayWidth; + unsigned int displayHeight; + unsigned int displayFormat; + DISP_IF_MODE displayMode; + unsigned int vsyncFPS; + unsigned int physicalWidth; /* length: mm, for legacy use */ + unsigned int physicalHeight; /* length: mm, for legacy use */ + unsigned int physicalWidthUm; /* length: um, for more precise precision */ + unsigned int physicalHeightUm; /* length: um, for more precise precision */ + unsigned int isConnected; } disp_session_info; -typedef struct disp_buffer_info_t -{ - // Session - unsigned int session_id; - // Input - unsigned int layer_id; - unsigned int layer_en; - int ion_fd; - unsigned int cache_sync; - // Output - unsigned int index; - int fence_fd; -}disp_buffer_info; +typedef struct disp_buffer_info_t { + /* Session */ + unsigned int session_id; + /* Input */ + unsigned int layer_id; + unsigned int layer_en; + int ion_fd; + unsigned int cache_sync; + /* Output */ + unsigned int index; + int fence_fd; +} disp_buffer_info; /* IOCTL commands. */ #define DISP_IOW(num, dtype) _IOW('O', num, dtype) #define DISP_IOR(num, dtype) _IOR('O', num, dtype) @@ -249,9 +233,9 @@ typedef struct disp_buffer_info_t #define DISP_IOCTL_CREATE_SESSION DISP_IOW(201, disp_session_config) #define DISP_IOCTL_DESTROY_SESSION DISP_IOW(202, disp_session_config) #define DISP_IOCTL_TRIGGER_SESSION DISP_IOW(203, disp_session_config) -#define DISP_IOCTL_PREPARE_INPUT_BUFFER DISP_IOW(204, disp_buffer_info) -#define DISP_IOCTL_PREPARE_OUTPUT_BUFFER DISP_IOW(205, disp_buffer_info) -#define DISP_IOCTL_SET_INPUT_BUFFER DISP_IOW(206, disp_session_input_config) +#define DISP_IOCTL_PREPARE_INPUT_BUFFER DISP_IOW(204, disp_buffer_info) +#define DISP_IOCTL_PREPARE_OUTPUT_BUFFER DISP_IOW(205, disp_buffer_info) +#define DISP_IOCTL_SET_INPUT_BUFFER DISP_IOW(206, disp_session_input_config) #define DISP_IOCTL_SET_OUTPUT_BUFFER DISP_IOW(207, disp_session_output_config) #define DISP_IOCTL_GET_SESSION_INFO DISP_IOW(208, disp_session_info) @@ -263,4 +247,4 @@ typedef struct disp_buffer_info_t #define DISP_IOCTL_SET_MAX_LAYER_NUM DISP_IOW(214, disp_session_layer_num_config) -#endif //__DISP_SVP_H +#endif /* __DISP_SVP_H */ -- cgit v1.2.3