Skip to content

Instantly share code, notes, and snippets.

@srikanth007m
Last active July 27, 2017 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save srikanth007m/8377ddbf7acc7598374bca781ef3272d to your computer and use it in GitHub Desktop.
Save srikanth007m/8377ddbf7acc7598374bca781ef3272d to your computer and use it in GitHub Desktop.
include <asm/ioctl.h>
include <../include/uapi/linux/msm_mdp.h>
include <../include/uapi/linux/fb.h>
include <../include/uapi/linux/msm_mdp_ext.h>
resource fd_displayfb[fd]
syz_open_dev$displayfb(dev ptr[in, string["/dev/graphics/fb#"]], id intptr, flags flags[open_flags]) fd_displayfb
ioctl$MSMFB_ASYNC_BLIT(fd fd_displayfb, cmd const[MSMFB_ASYNC_BLIT], arg ptr[in, int32])
ioctl$MSMFB_BLIT(fd fd_displayfb, cmd const[MSMFB_BLIT], arg ptr[in, int32])
ioctl$MSMFB_GRP_DISP(fd fd_displayfb, cmd const[MSMFB_GRP_DISP], arg ptr[in, int32])
ioctl$MSMFB_NOTIFY_UPDATE(fd fd_displayfb, cmd const[MSMFB_NOTIFY_UPDATE], arg ptr[inout, int32])
ioctl$MSMFB_RESUME_SW_REFRESHER(fd fd_displayfb, cmd const[MSMFB_RESUME_SW_REFRESHER], arg ptr[in, int32])
ioctl$MSMFB_OVERLAY_PLAY_ENABLE(fd fd_displayfb, cmd const[MSMFB_OVERLAY_PLAY_ENABLE], arg ptr[in, int32])
ioctl$MSMFB_SUSPEND_SW_REFRESHER(fd fd_displayfb, cmd const[MSMFB_SUSPEND_SW_REFRESHER], arg ptr[in, int32])
ioctl$MSMFB_VSYNC_CTRL(fd fd_displayfb, cmd const[MSMFB_VSYNC_CTRL], arg ptr[in, int32])
ioctl$MSMFB_WRITEBACK_SET_MIRRORING_HINT(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_SET_MIRRORING_HINT], arg ptr[in, int32])
ioctl$MSMFB_OVERLAY_COMMIT(fd fd_displayfb, cmd const[MSMFB_OVERLAY_COMMIT], arg const[0])
ioctl$MSMFB_WRITEBACK_INIT(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_INIT], arg const[0])
ioctl$MSMFB_WRITEBACK_START(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_START], arg const[0])
ioctl$MSMFB_WRITEBACK_STOP(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_STOP], arg const[0])
ioctl$MSMFB_WRITEBACK_TERMINATE(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_TERMINATE], arg const[0])
ioctl$MSMFB_CURSOR(fd fd_displayfb, cmd const[MSMFB_CURSOR], arg ptr[in, fb_cursor])
ioctl$MSMFB_SET_LUT(fd fd_displayfb, cmd const[MSMFB_SET_LUT], arg ptr[in, fb_cmap])
ioctl$MSMFB_MDP_PP_GET_FEATURE_VERSION(fd fd_displayfb, cmd const[MSMFB_MDP_PP_GET_FEATURE_VERSION], arg ptr[inout, mdp_pp_feature_version])
ioctl$MSMFB_HISTOGRAM(fd fd_displayfb, cmd const[MSMFB_HISTOGRAM], arg ptr[inout, mdp_histogram_data])
ioctl$MSMFB_OVERLAY_SET(fd fd_displayfb, cmd const[MSMFB_OVERLAY_SET], arg ptr[inout, mdp_overlay])
ioctl$MSMFB_OVERLAY_UNSET(fd fd_displayfb, cmd const[MSMFB_OVERLAY_UNSET], arg ptr[in, int32])
ioctl$MSMFB_OVERLAY_PLAY(fd fd_displayfb, cmd const[MSMFB_OVERLAY_PLAY], arg ptr[in, msmfb_overlay_data])
ioctl$MSMFB_OVERLAY_QUEUE(fd fd_displayfb, cmd const[MSMFB_OVERLAY_QUEUE], arg ptr[in, msmfb_overlay_data])
ioctl$MSMFB_OVERLAY_GET(fd fd_displayfb, cmd const[MSMFB_OVERLAY_GET], arg ptr[inout, mdp_overlay])
ioctl$MSMFB_HISTOGRAM_START(fd fd_displayfb, cmd const[MSMFB_HISTOGRAM_START], arg ptr[out, mdp_histogram_start_req])
ioctl$MSMFB_HISTOGRAM_STOP(fd fd_displayfb, cmd const[MSMFB_HISTOGRAM_STOP], arg ptr[out, int32])
ioctl$MSMFB_OVERLAY_VSYNC_CTRL(fd fd_displayfb, cmd const[MSMFB_OVERLAY_VSYNC_CTRL], arg ptr[in, int32])
ioctl$MSMFB_BUFFER_SYNC(fd fd_displayfb, cmd const[MSMFB_BUFFER_SYNC], arg ptr[in, mdp_buf_sync])
ioctl$MSMFB_DISPLAY_COMMIT(fd fd_displayfb, cmd const[MSMFB_DISPLAY_COMMIT], arg ptr[in, mdp_display_commit])
ioctl$MSMFB_OVERLAY_PREPARE(fd fd_displayfb, cmd const[MSMFB_OVERLAY_PREPARE], arg ptr[inout, mdp_overlay_list])
ioctl$MSMFB_LPM_ENABLE(fd fd_displayfb, cmd const[MSMFB_LPM_ENABLE], arg ptr[inout, int32])
ioctl$MSMFB_ATOMIC_COMMIT(fd fd_displayfb, cmd const[MSMFB_ATOMIC_COMMIT], arg ptr[inout, ptr[inout,int32]])
ioctl$MSMFB_ASYNC_POSITION_UPDATE(fd fd_displayfb, cmd const[MSMFB_ASYNC_POSITION_UPDATE], arg ptr[inout, mdp_position_update])
ioctl$MSMFB_MDP_SET_CFG(fd fd_displayfb, cmd const[MSMFB_MDP_SET_CFG], arg ptr[in, mdp_set_cfg])
ioctl$MSMFB_METADATA_GET(fd fd_displayfb, cmd const[MSMFB_METADATA_GET], arg ptr[in, msmfb_metadata])
ioctl$MSMFB_METADATA_SET(fd fd_displayfb, cmd const[MSMFB_METADATA_SET], arg ptr[in, msmfb_metadata])
#ioctl$MSMFB_MDP_PP(fd fd_displayfb, cmd const[MSMFB_MDP_PP], arg ptr[inout, msmfb_mdp_pp])
ioctl$MSMFB_GET_CCS_MATRIX(fd fd_displayfb, cmd const[MSMFB_GET_CCS_MATRIX], arg ptr[inout, mdp_ccs])
ioctl$MSMFB_SET_CCS_MATRIX(fd fd_displayfb, cmd const[MSMFB_SET_CCS_MATRIX], arg ptr[in, mdp_ccs])
ioctl$MSMFB_GET_PAGE_PROTECTION(fd fd_displayfb, cmd const[MSMFB_GET_PAGE_PROTECTION], arg ptr[out, mdp_page_protection])
ioctl$MSMFB_MIXER_INFO(fd fd_displayfb, cmd const[MSMFB_MIXER_INFO], arg ptr[inout, msmfb_mixer_info_req])
ioctl$MSMFB_OVERLAY_3D(fd fd_displayfb, cmd const[MSMFB_OVERLAY_3D], arg ptr[inout, msmfb_overlay_3d])
ioctl$MSMFB_OVERLAY_BLT(fd fd_displayfb, cmd const[MSMFB_OVERLAY_BLT], arg ptr[inout, msmfb_overlay_blt])
ioctl$MSMFB_OVERLAY_BLT_OFFSET(fd fd_displayfb, cmd const[MSMFB_OVERLAY_BLT_OFFSET], arg ptr[in, int32])
ioctl$MSMFB_OVERLAY_PLAY_WAIT(fd fd_displayfb, cmd const[MSMFB_OVERLAY_PLAY_WAIT], arg ptr[inout, msmfb_overlay_data])
ioctl$MSMFB_SET_PAGE_PROTECTION(fd fd_displayfb, cmd const[MSMFB_SET_PAGE_PROTECTION], arg ptr[in, mdp_page_protection])
ioctl$MSMFB_WRITEBACK_DEQUEUE_BUFFER(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_DEQUEUE_BUFFER], arg ptr[in, msmfb_data])
ioctl$MSMFB_WRITEBACK_QUEUE_BUFFER(fd fd_displayfb, cmd const[MSMFB_WRITEBACK_QUEUE_BUFFER], arg ptr[in, msmfb_data])
fbcurpos {
x int16
y int16
}
fb_cursor {
set int16
enable int16
rop int16
mask ptr[in, int8]
hot fbcurpos
image fb_image
}
fb_image {
dx int32
dy int32
width int32
height int32
fg_color int32
bg_color int32
depth int8
data buffer[inout]
cmap fb_cmap
}
fb_cmap {
start int32
len int32
red buffer[inout]
green buffer[inout]
blue buffer[inout]
transp ptr[in, int16, opt]
}
mdp_pp_feature_version {
pp_feature flags[pp_feature_1, int32]
version_info int32
}
mdp_histogram_data {
block int32
bin_cnt int32
c0 buffer[inout]
c1 buffer[inout]
c2 buffer[inout]
extra_info buffer[inout]
}
mdp_overlay {
src msmfb_img
src_rect mdp_rect
dst_rect mdp_rect
z_order array[int32, 3]
is_fg int32
alpha int32
blend_op flags[mdss_mdp_blend_op, int32]
transp_mask int32
flags int32
pipe_type flags[mdp_overlay_pipe_type, int32]
id int32
priority int8
user_data array[int32, 6]
bg_color int32
horz_deci flags[msmfb_decimation, int8]
vert_deci flags[msmfb_decimation, int8]
overlay_pp_cfg mdp_overlay_pp_params
scale mdp_scale_data
color_space int8
frame_rate int32
}
msmfb_img {
width int32
height int32
format int32
}
mdp_rect {
x int32
y int32
w int32
h int32
}
mdp_overlay_pp_params {
config_ops int32
csc_cfg mdp_csc_cfg
qseed_cfg array[mdp_qseed_cfg, 2]
pa_cfg mdp_pa_cfg
pa_v2_cfg mdp_pa_v2_data
igc_cfg mdp_igc_lut_data
sharp_cfg mdp_sharp_cfg
hist_cfg mdp_histogram_cfg
hist_lut_cfg mdp_hist_lut_data
pa_v2_cfg_data mdp_pa_v2_cfg_data
pcc_cfg_data mdp_pcc_cfg_data
}
mdp_scale_data {
enable_pxl_ext int8
init_phase_x array[int32, 4]
phase_step_x array[int32, 4]
init_phase_y array[int32, 4]
phase_step_y array[int32, 4]
num_ext_pxls_left array[int32, 4]
num_ext_pxls_right array[int32, 4]
num_ext_pxls_top array[int32, 4]
num_ext_pxls_btm array[int32, 4]
left_ftch array[int32, 4]
left_rpt array[int32, 4]
right_ftch array[int32, 4]
right_rpt array[int32, 4]
top_rpt array[int32, 4]
btm_rpt array[int32, 4]
top_ftch array[int32, 4]
btm_ftch array[int32, 4]
roi_w array[int32, 4]
}
mdp_csc_cfg {
flags flags[mdss_mdp_csc_type, int32]
csc_mv array[int32, 9]
csc_pre_bv array[int32, 3]
csc_pre_lv array[int32, 6]
csc_post_lv array[int32, 6]
}
mdp_pa_cfg {
flags int32
hue_adj int32
sat_adj int32
val_adj int32
cont_adj int32
}
mdp_qseed_cfg {
table_num int32
ops int32
len int32
data buffer[inout]
}
mdp_pa_v2_data {
flags int32
global_hue_adj int32
global_sat_adj int32
global_val_adj int32
global_cont_adj int32
skin_cfg mdp_pa_mem_col_cfg
sky_cfg mdp_pa_mem_col_cfg
fol_cfg mdp_pa_mem_col_cfg
six_zone_len int32
six_zone_thresh int32
six_zone_curve_p0 buffer[inout]
six_zone_curve_p1 buffer[inout]
}
mdp_pa_mem_col_cfg {
color_adjust_p0 int32
color_adjust_p1 int32
hue_region int32
sat_region int32
val_region int32
}
mdp_igc_lut_data {
block int32
version int32
len int32
ops int32
c0_c1_data ptr[inout, int32]
c2_data ptr[inout, int32]
cfg_payload buffer[inout]
}
mdp_sharp_cfg {
flags int32
strength int32
edge_thr int32
smooth_thr int32
noise_thr int32
}
mdp_histogram_cfg {
ops int32
block int32
frame_cnt int8
bit_mask int8
num_bins int16
}
mdp_hist_lut_data {
block int32
version int32
hist_lut_first int32
ops int32
len int32
data ptr[inout, int32]
cfg_payload buffer[inout]
}
mdp_hist_lut_data_v1_7 {
len int32
data int32
}
mdp_pa_v2_cfg_data {
version int32
block int32
flags int32
pa_v2_data mdp_pa_v2_data
cfg_payload buffer[inout]
}
mdp_pcc_cfg_data {
version int32
block int32
ops int32
r mdp_pcc_coeff
g mdp_pcc_coeff
b mdp_pcc_coeff
cfg_payload buffer[inout]
}
mdp_pcc_coeff {
c int32
r int32
g int32
b int32
rr int32
gg int32
bb int32
rg int32
gb int32
rb int32
rgb_0 int32
rgb_1 int32
}
msmfb_overlay_data {
id int32
version_key int32
data msmfb_data
plane1_data msmfb_data
plane2_data msmfb_data
dst_data msmfb_data
}
msmfb_data {
offset int32
memory_id int32
id int32
flags int32
priv int32
iova int32
}
mdp_histogram_start_req {
block int32
frame_cnt int8
bit_mask int8
num_bins int16
}
mdp_buf_sync {
flags int32
acq_fen_fd_cnt int32
session_id int32
acq_fen_fd ptr[in, int32]
rel_fen_fd ptr[in, int32]
retire_fen_fd ptr[in, int32]
}
mdp_display_commit {
flags int32
wait_for_finish int32
var fb_var_screeninfo
l_roi mdp_rect
r_roi mdp_rect
}
fb_var_screeninfo {
xres int32
yres int32
xres_virtual int32
yres_virtual int32
xoffset int32
yoffset int32
bits_per_pixel int32
grayscale int32
red fb_bitfield
green fb_bitfield
blue fb_bitfield
transp fb_bitfield
nonstd int32
activate int32
height int32
width int32
accel_flags int32
pixclock int32
left_margin int32
right_margin int32
upper_margin int32
lower_margin int32
hsync_len int32
vsync_len int32
sync int32
vmode int32
rotate int32
colorspace int32
reserved array[const[0, int32], 4]
}
fb_bitfield {
offset int32
length int32
msb_right int32
}
mdp_overlay_list {
num_overlays int32
overlay_list ptr[inout, mdp_overlay]
flags int32
processed_overlays int32
}
mdp_position_update {
input_layers ptr[inout, mdp_async_layer]
input_layer_cnt int32
}
mdp_async_layer {
flags int32
pipe_ndx int32
src mdp_point
dst mdp_point
error_code int32
reserved array[const[0, int32], 3]
}
mdp_point {
x int32
y int32
}
mdp_set_cfg {
flags int64
len int32
payload int64
#Area to be improved for payload from user
}
msmfb_metadata_data_union [
misr_request mdp_misr
blend_cfg mdp_blend_cfg
mixer_cfg mdp_blend_cfg
panel_frame_rate int32
video_info_code int32
caps mdss_hw_caps
secure_en int8
fbmem_ionfd int16
]
msmfb_metadata {
op int32
flags int32
data msmfb_metadata_data_union
}
mdp_misr {
block_id int32
frame_count int32
crc_op_mode int32
crc_value array[int32, 32]
}
mdp_blend_cfg {
is_premultiplied int32
}
mdss_hw_caps {
mdp_rev int32
rgb_pipes int8
vig_pipes int8
dma_pipes int8
max_smp_cnt int8
smp_per_pipe int8
features int32
}
msmfb_mdp_pp_union [
pcc_cfg_data mdp_pcc_cfg_data
csc_cfg_data mdp_csc_cfg_data
lut_cfg_data mdp_lut_cfg_data
qseed_cfg_data mdp_qseed_cfg_data
bl_scale_data mdp_bl_scale_data
pa_cfg_data mdp_pa_cfg_data
pa_v2_cfg_data mdp_pa_v2_cfg_data
dither_cfg_data mdp_dither_cfg_data
gamut_cfg_data mdp_gamut_cfg_data
calib_cfg mdp_calib_config_data
ad_init_cfg mdss_ad_init_cfg
mdss_calib_cfg mdss_calib_cfg
ad_input mdss_ad_input
calib_buffer mdp_calib_config_buffer
calib_dcm mdp_calib_dcm_state
ad_bl_cfg mdss_ad_bl_cfg
]
msmfb_mdp_pp {
op int32
data msmfb_mdp_pp_union
}
mdp_csc_cfg_data {
block int32
csc_data mdp_csc_cfg
}
msmfb_mdp_lut_cfg_union [
igc_lut_data mdp_igc_lut_data
pgc_lut_data mdp_pgc_lut_data
hist_lut_data mdp_hist_lut_data
rgb_lut_data mdp_rgb_lut_data
]
mdp_lut_cfg_data {
lut_type int32
data msmfb_mdp_lut_cfg_union
}
mdp_pgc_lut_data {
version int32
block int32
flags int32
num_r_stages int8
num_g_stages int8
num_b_stages int8
r_data ptr[inout, mdp_ar_gc_lut_data]
g_data ptr[inout, mdp_ar_gc_lut_data]
b_data ptr[inout, mdp_ar_gc_lut_data]
cfg_payload buffer[inout]
}
mdp_ar_gc_lut_data {
x_start int32
slope int32
offset int32
}
mdp_rgb_lut_data {
flags int32
lut_type int32
cmap fb_cmap
}
mdp_qseed_cfg_data {
block int32
qseed_data mdp_qseed_cfg
}
mdp_bl_scale_data {
min_lvl int32
scale int32
}
mdp_pa_cfg_data {
block int32
pa_data mdp_pa_cfg
}
mdp_dither_cfg_data {
version int32
block int32
flags int32
mode int32
g_y_depth int32
r_cr_depth int32
b_cb_depth int32
cfg_payload buffer[inout]
}
mdp_gamut_cfg_data {
block int32
flags int32
version int32
gamut_first int32
tbl_size array[int32, 8]
r_tbl array[int16, 8]
g_tbl array[int16, 8]
b_tbl array[int16, 8]
cfg_payload buffer[inout]
}
mdp_calib_config_data {
ops int32
addr int32
data int32
}
msmfb_mdss_ad_union [
init mdss_ad_init
cfg mdss_ad_cfg
]
mdss_ad_init_cfg {
ops int32
params msmfb_mdss_ad_union
}
mdss_ad_init {
asym_lut array[int32, 33]
color_corr_lut array[int32, 33]
i_control array[int8, 2]
black_lvl int16
white_lvl int16
var int8
limit_ampl int8
i_dither int8
slope_max int8
slope_min int8
dither_ctl int8
format int8
auto_size int8
frame_w int16
frame_h int16
logo_v int8
logo_h int8
alpha int32
alpha_base int32
al_thresh int32
bl_lin_len int32
bl_att_len int32
bl_lin ptr[inout, int32]
bl_lin_inv ptr[inout, int32]
bl_att_lut ptr[inout, int32]
}
mdss_ad_cfg {
mode int32
al_calib_lut array[int32, 33]
backlight_min int16
backlight_max int16
backlight_scale int16
amb_light_min int16
filter array[int16, 2]
calib array[int16, 4]
strength_limit int8
t_filter_recursion int8
stab_itr int16
bl_ctrl_mode int32
}
mdss_calib_cfg {
ops int32
calib_mask int32
}
msmfb_mdss_ad_input_union [
amb_light int32
strength int32
calib_bl int32
]
mdss_ad_input {
mode int32
in msmfb_mdss_ad_input_union
output int32
}
mdp_calib_config_buffer {
ops int32
size int32
buffer ptr[inout, int32]
}
mdp_calib_dcm_state {
ops int32
dcm_state int32
}
mdss_ad_bl_cfg {
bl_min_delta int32
bl_low_limit int32
}
mdp_ccs {
id int32
ccs array[int16, 9]
bv array[int16, 3]
}
mdp_page_protection {
page_protection int32
}
msmfb_mixer_info_req {
mixer_num int32
cnt int32
info array[mdp_mixer_info, 7]
}
mdp_mixer_info {
pndx int32
pnum int32
ptype int32
mixer_num int32
z_order int32
}
msmfb_overlay_3d {
is_3d int32
width int32
height int32
}
msmfb_overlay_blt {
enable int32
offset int32
width int32
height int32
bpp int32
}
mdss_mdp_csc_type = MDSS_MDP_CSC_YUV2RGB_601L, MDSS_MDP_CSC_YUV2RGB_601FR, MDSS_MDP_CSC_YUV2RGB_709L, MDSS_MDP_CSC_YUV2RGB_2020L, MDSS_MDP_CSC_YUV2RGB_2020FR, MDSS_MDP_CSC_RGB2YUV_601L, MDSS_MDP_CSC_RGB2YUV_601FR, MDSS_MDP_CSC_RGB2YUV_709L, MDSS_MDP_CSC_RGB2YUV_2020L, MDSS_MDP_CSC_RGB2YUV_2020FR, MDSS_MDP_CSC_YUV2YUV, MDSS_MDP_CSC_RGB2RGB, MDSS_MDP_MAX_CSC
msmfb_decimation = 0, 2, 4, 8, 16
pp_feature_1 = IGC, PCC, GC, PA, GAMUT, DITHER, QSEED, HIST_LUT, HIST, PP_FEATURE_MAX, PA_DITHER, PP_MAX_FEATURES
mdp_overlay_pipe_type = PIPE_TYPE_AUTO, PIPE_TYPE_VIG, PIPE_TYPE_RGB, PIPE_TYPE_DMA, PIPE_TYPE_CURSOR, PIPE_TYPE_MAX
mdss_mdp_blend_op = BLEND_OP_NOT_DEFINED, BLEND_OP_OPAQUE, BLEND_OP_PREMULTIPLIED, BLEND_OP_COVERAGE, BLEND_OP_MAX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment