| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| *** To edit the content of this header, modify the corresponding |
| *** source file (e.g. under external/kernel-headers/original/) then |
| *** run bionic/libc/kernel/tools/update_all.py |
| *** |
| *** Any manual change here will be lost the next time this script will |
| *** be run. You've been warned! |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef _MSM_DRM_PP_H_ |
| #define _MSM_DRM_PP_H_ |
| #include <linux/types.h> |
| struct drm_msm_pcc_coeff { |
| __u32 c; |
| __u32 r; |
| __u32 g; |
| __u32 b; |
| __u32 rg; |
| __u32 gb; |
| __u32 rb; |
| __u32 rgb; |
| }; |
| #define DRM_MSM_PCC3 |
| struct drm_msm_pcc { |
| __u64 flags; |
| struct drm_msm_pcc_coeff r; |
| struct drm_msm_pcc_coeff g; |
| struct drm_msm_pcc_coeff b; |
| __u32 r_rr; |
| __u32 r_gg; |
| __u32 r_bb; |
| __u32 g_rr; |
| __u32 g_gg; |
| __u32 g_bb; |
| __u32 b_rr; |
| __u32 b_gg; |
| __u32 b_bb; |
| }; |
| #define PA_VLUT_SIZE 256 |
| struct drm_msm_pa_vlut { |
| __u64 flags; |
| __u32 val[PA_VLUT_SIZE]; |
| }; |
| #define PA_HSIC_HUE_ENABLE (1 << 0) |
| #define PA_HSIC_SAT_ENABLE (1 << 1) |
| #define PA_HSIC_VAL_ENABLE (1 << 2) |
| #define PA_HSIC_CONT_ENABLE (1 << 3) |
| #define DRM_MSM_PA_HSIC |
| struct drm_msm_pa_hsic { |
| __u64 flags; |
| __u32 hue; |
| __u32 saturation; |
| __u32 value; |
| __u32 contrast; |
| }; |
| #define MEMCOL_PROT_HUE (1 << 0) |
| #define MEMCOL_PROT_SAT (1 << 1) |
| #define MEMCOL_PROT_VAL (1 << 2) |
| #define MEMCOL_PROT_CONT (1 << 3) |
| #define MEMCOL_PROT_SIXZONE (1 << 4) |
| #define MEMCOL_PROT_BLEND (1 << 5) |
| #define DRM_MSM_MEMCOL |
| struct drm_msm_memcol { |
| __u64 prot_flags; |
| __u32 color_adjust_p0; |
| __u32 color_adjust_p1; |
| __u32 color_adjust_p2; |
| __u32 blend_gain; |
| __u32 sat_hold; |
| __u32 val_hold; |
| __u32 hue_region; |
| __u32 sat_region; |
| __u32 val_region; |
| }; |
| #define DRM_MSM_SIXZONE |
| #define SIXZONE_LUT_SIZE 384 |
| #define SIXZONE_HUE_ENABLE (1 << 0) |
| #define SIXZONE_SAT_ENABLE (1 << 1) |
| #define SIXZONE_VAL_ENABLE (1 << 2) |
| struct drm_msm_sixzone_curve { |
| __u32 p1; |
| __u32 p0; |
| }; |
| struct drm_msm_sixzone { |
| __u64 flags; |
| __u32 threshold; |
| __u32 adjust_p0; |
| __u32 adjust_p1; |
| __u32 sat_hold; |
| __u32 val_hold; |
| struct drm_msm_sixzone_curve curve[SIXZONE_LUT_SIZE]; |
| }; |
| #define GAMUT_3D_MODE_17 1 |
| #define GAMUT_3D_MODE_5 2 |
| #define GAMUT_3D_MODE_13 3 |
| #define GAMUT_3D_MODE17_TBL_SZ 1229 |
| #define GAMUT_3D_MODE5_TBL_SZ 32 |
| #define GAMUT_3D_MODE13_TBL_SZ 550 |
| #define GAMUT_3D_SCALE_OFF_SZ 16 |
| #define GAMUT_3D_SCALEB_OFF_SZ 12 |
| #define GAMUT_3D_TBL_NUM 4 |
| #define GAMUT_3D_SCALE_OFF_TBL_NUM 3 |
| #define GAMUT_3D_MAP_EN (1 << 0) |
| struct drm_msm_3d_col { |
| __u32 c2_c1; |
| __u32 c0; |
| }; |
| struct drm_msm_3d_gamut { |
| __u64 flags; |
| __u32 mode; |
| __u32 scale_off[GAMUT_3D_SCALE_OFF_TBL_NUM][GAMUT_3D_SCALE_OFF_SZ]; |
| struct drm_msm_3d_col col[GAMUT_3D_TBL_NUM][GAMUT_3D_MODE17_TBL_SZ]; |
| }; |
| #define PGC_TBL_LEN 512 |
| #define PGC_8B_ROUND (1 << 0) |
| struct drm_msm_pgc_lut { |
| __u64 flags; |
| __u32 c0[PGC_TBL_LEN]; |
| __u32 c1[PGC_TBL_LEN]; |
| __u32 c2[PGC_TBL_LEN]; |
| }; |
| #define IGC_TBL_LEN 256 |
| #define IGC_DITHER_ENABLE (1 << 0) |
| struct drm_msm_igc_lut { |
| __u64 flags; |
| __u32 c0[IGC_TBL_LEN]; |
| __u32 c1[IGC_TBL_LEN]; |
| __u32 c2[IGC_TBL_LEN]; |
| __u32 strength; |
| __u32 c0_last; |
| __u32 c1_last; |
| __u32 c2_last; |
| }; |
| #define LAST_LUT 2 |
| #define HIST_V_SIZE 256 |
| struct drm_msm_hist { |
| __u64 flags; |
| __u32 data[HIST_V_SIZE]; |
| }; |
| #define AD4_LUT_GRP0_SIZE 33 |
| #define AD4_LUT_GRP1_SIZE 32 |
| struct drm_msm_ad4_init { |
| __u32 init_param_001[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_002[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_003[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_004[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_005[AD4_LUT_GRP1_SIZE]; |
| __u32 init_param_006[AD4_LUT_GRP1_SIZE]; |
| __u32 init_param_007[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_008[AD4_LUT_GRP0_SIZE]; |
| __u32 init_param_009; |
| __u32 init_param_010; |
| __u32 init_param_011; |
| __u32 init_param_012; |
| __u32 init_param_013; |
| __u32 init_param_014; |
| __u32 init_param_015; |
| __u32 init_param_016; |
| __u32 init_param_017; |
| __u32 init_param_018; |
| __u32 init_param_019; |
| __u32 init_param_020; |
| __u32 init_param_021; |
| __u32 init_param_022; |
| __u32 init_param_023; |
| __u32 init_param_024; |
| __u32 init_param_025; |
| __u32 init_param_026; |
| __u32 init_param_027; |
| __u32 init_param_028; |
| __u32 init_param_029; |
| __u32 init_param_030; |
| __u32 init_param_031; |
| __u32 init_param_032; |
| __u32 init_param_033; |
| __u32 init_param_034; |
| __u32 init_param_035; |
| __u32 init_param_036; |
| __u32 init_param_037; |
| __u32 init_param_038; |
| __u32 init_param_039; |
| __u32 init_param_040; |
| __u32 init_param_041; |
| __u32 init_param_042; |
| __u32 init_param_043; |
| __u32 init_param_044; |
| __u32 init_param_045; |
| __u32 init_param_046; |
| __u32 init_param_047; |
| __u32 init_param_048; |
| __u32 init_param_049; |
| __u32 init_param_050; |
| __u32 init_param_051; |
| __u32 init_param_052; |
| __u32 init_param_053; |
| __u32 init_param_054; |
| __u32 init_param_055; |
| __u32 init_param_056; |
| __u32 init_param_057; |
| __u32 init_param_058; |
| __u32 init_param_059; |
| __u32 init_param_060; |
| __u32 init_param_061; |
| __u32 init_param_062; |
| __u32 init_param_063; |
| __u32 init_param_064; |
| __u32 init_param_065; |
| __u32 init_param_066; |
| __u32 init_param_067; |
| __u32 init_param_068; |
| __u32 init_param_069; |
| __u32 init_param_070; |
| __u32 init_param_071; |
| __u32 init_param_072; |
| __u32 init_param_073; |
| __u32 init_param_074; |
| __u32 init_param_075; |
| }; |
| struct drm_msm_ad4_cfg { |
| __u32 cfg_param_001; |
| __u32 cfg_param_002; |
| __u32 cfg_param_003; |
| __u32 cfg_param_004; |
| __u32 cfg_param_005; |
| __u32 cfg_param_006; |
| __u32 cfg_param_007; |
| __u32 cfg_param_008; |
| __u32 cfg_param_009; |
| __u32 cfg_param_010; |
| __u32 cfg_param_011; |
| __u32 cfg_param_012; |
| __u32 cfg_param_013; |
| __u32 cfg_param_014; |
| __u32 cfg_param_015; |
| __u32 cfg_param_016; |
| __u32 cfg_param_017; |
| __u32 cfg_param_018; |
| __u32 cfg_param_019; |
| __u32 cfg_param_020; |
| __u32 cfg_param_021; |
| __u32 cfg_param_022; |
| __u32 cfg_param_023; |
| __u32 cfg_param_024; |
| __u32 cfg_param_025; |
| __u32 cfg_param_026; |
| __u32 cfg_param_027; |
| __u32 cfg_param_028; |
| __u32 cfg_param_029; |
| __u32 cfg_param_030; |
| __u32 cfg_param_031; |
| __u32 cfg_param_032; |
| __u32 cfg_param_033; |
| __u32 cfg_param_034; |
| __u32 cfg_param_035; |
| __u32 cfg_param_036; |
| __u32 cfg_param_037; |
| __u32 cfg_param_038; |
| __u32 cfg_param_039; |
| __u32 cfg_param_040; |
| __u32 cfg_param_041; |
| __u32 cfg_param_042; |
| __u32 cfg_param_043; |
| __u32 cfg_param_044; |
| __u32 cfg_param_045; |
| __u32 cfg_param_046; |
| __u32 cfg_param_047; |
| __u32 cfg_param_048; |
| __u32 cfg_param_049; |
| __u32 cfg_param_050; |
| __u32 cfg_param_051; |
| __u32 cfg_param_052; |
| __u32 cfg_param_053; |
| }; |
| #define DITHER_MATRIX_SZ 16 |
| struct drm_msm_dither { |
| __u64 flags; |
| __u32 temporal_en; |
| __u32 c0_bitdepth; |
| __u32 c1_bitdepth; |
| __u32 c2_bitdepth; |
| __u32 c3_bitdepth; |
| __u32 matrix[DITHER_MATRIX_SZ]; |
| }; |
| #define DRM_MSM_PA_DITHER |
| struct drm_msm_pa_dither { |
| __u64 flags; |
| __u32 strength; |
| __u32 offset_en; |
| __u32 matrix[DITHER_MATRIX_SZ]; |
| }; |
| #define DRM_MSM_AD4_ROI |
| struct drm_msm_ad4_roi_cfg { |
| __u32 h_x; |
| __u32 h_y; |
| __u32 v_x; |
| __u32 v_y; |
| __u32 factor_in; |
| __u32 factor_out; |
| }; |
| #define LTM_FEATURE_DEF 1 |
| #define LTM_DATA_SIZE_0 32 |
| #define LTM_DATA_SIZE_1 128 |
| #define LTM_DATA_SIZE_2 256 |
| #define LTM_DATA_SIZE_3 33 |
| #define LTM_BUFFER_SIZE 5 |
| #define LTM_GUARD_BYTES 255 |
| #define LTM_BLOCK_SIZE 2 |
| #define LTM_STATS_SAT (1 << 1) |
| #define LTM_STATS_MERGE_SAT (1 << 2) |
| struct drm_msm_ltm_stats_data { |
| __u32 stats_01[LTM_DATA_SIZE_0][LTM_DATA_SIZE_1]; |
| __u32 stats_02[LTM_DATA_SIZE_2]; |
| __u32 stats_03[LTM_DATA_SIZE_0]; |
| __u32 stats_04[LTM_DATA_SIZE_0]; |
| __u32 stats_05[LTM_DATA_SIZE_0]; |
| __u32 status_flag; |
| __u32 display_h; |
| __u32 display_v; |
| __u32 init_h[LTM_BLOCK_SIZE]; |
| __u32 init_v; |
| __u32 inc_h; |
| __u32 inc_v; |
| __u32 portrait_en; |
| __u32 merge_en; |
| __u32 cfg_param_01; |
| __u32 cfg_param_02; |
| __u32 cfg_param_03; |
| __u32 cfg_param_04; |
| }; |
| struct drm_msm_ltm_init_param { |
| __u32 init_param_01; |
| __u32 init_param_02; |
| __u32 init_param_03; |
| __u32 init_param_04; |
| }; |
| struct drm_msm_ltm_cfg_param { |
| __u32 cfg_param_01; |
| __u32 cfg_param_02; |
| __u32 cfg_param_03; |
| __u32 cfg_param_04; |
| __u32 cfg_param_05; |
| __u32 cfg_param_06; |
| }; |
| struct drm_msm_ltm_data { |
| __u32 data[LTM_DATA_SIZE_0][LTM_DATA_SIZE_3]; |
| }; |
| struct drm_msm_ltm_buffers_ctrl { |
| __u32 num_of_buffers; |
| __u32 fds[LTM_BUFFER_SIZE]; |
| }; |
| struct drm_msm_ltm_buffer { |
| __u32 fd; |
| __u32 offset; |
| __u32 status; |
| }; |
| #define DRM_MSM_AD4_MANUAL_STRENGTH |
| struct drm_msm_ad4_manual_str_cfg { |
| __u32 in_str; |
| __u32 out_str; |
| }; |
| #endif |