1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _MSM_DRM_PP_H_ 20 #define _MSM_DRM_PP_H_ 21 #include <linux/types.h> 22 struct drm_msm_pcc_coeff { 23 __u32 c; 24 __u32 r; 25 __u32 g; 26 __u32 b; 27 __u32 rg; 28 __u32 gb; 29 __u32 rb; 30 __u32 rgb; 31 }; 32 #define DRM_MSM_PCC3 33 struct drm_msm_pcc { 34 __u64 flags; 35 struct drm_msm_pcc_coeff r; 36 struct drm_msm_pcc_coeff g; 37 struct drm_msm_pcc_coeff b; 38 __u32 r_rr; 39 __u32 r_gg; 40 __u32 r_bb; 41 __u32 g_rr; 42 __u32 g_gg; 43 __u32 g_bb; 44 __u32 b_rr; 45 __u32 b_gg; 46 __u32 b_bb; 47 }; 48 #define PA_VLUT_SIZE 256 49 struct drm_msm_pa_vlut { 50 __u64 flags; 51 __u32 val[PA_VLUT_SIZE]; 52 }; 53 #define PA_HSIC_HUE_ENABLE (1 << 0) 54 #define PA_HSIC_SAT_ENABLE (1 << 1) 55 #define PA_HSIC_VAL_ENABLE (1 << 2) 56 #define PA_HSIC_CONT_ENABLE (1 << 3) 57 #define DRM_MSM_PA_HSIC 58 struct drm_msm_pa_hsic { 59 __u64 flags; 60 __u32 hue; 61 __u32 saturation; 62 __u32 value; 63 __u32 contrast; 64 }; 65 #define MEMCOL_PROT_HUE (1 << 0) 66 #define MEMCOL_PROT_SAT (1 << 1) 67 #define MEMCOL_PROT_VAL (1 << 2) 68 #define MEMCOL_PROT_CONT (1 << 3) 69 #define MEMCOL_PROT_SIXZONE (1 << 4) 70 #define MEMCOL_PROT_BLEND (1 << 5) 71 #define DRM_MSM_MEMCOL 72 struct drm_msm_memcol { 73 __u64 prot_flags; 74 __u32 color_adjust_p0; 75 __u32 color_adjust_p1; 76 __u32 color_adjust_p2; 77 __u32 blend_gain; 78 __u32 sat_hold; 79 __u32 val_hold; 80 __u32 hue_region; 81 __u32 sat_region; 82 __u32 val_region; 83 }; 84 #define DRM_MSM_SIXZONE 85 #define SIXZONE_LUT_SIZE 384 86 #define SIXZONE_HUE_ENABLE (1 << 0) 87 #define SIXZONE_SAT_ENABLE (1 << 1) 88 #define SIXZONE_VAL_ENABLE (1 << 2) 89 struct drm_msm_sixzone_curve { 90 __u32 p1; 91 __u32 p0; 92 }; 93 struct drm_msm_sixzone { 94 __u64 flags; 95 __u32 threshold; 96 __u32 adjust_p0; 97 __u32 adjust_p1; 98 __u32 sat_hold; 99 __u32 val_hold; 100 struct drm_msm_sixzone_curve curve[SIXZONE_LUT_SIZE]; 101 }; 102 #define GAMUT_3D_MODE_17 1 103 #define GAMUT_3D_MODE_5 2 104 #define GAMUT_3D_MODE_13 3 105 #define GAMUT_3D_MODE17_TBL_SZ 1229 106 #define GAMUT_3D_MODE5_TBL_SZ 32 107 #define GAMUT_3D_MODE13_TBL_SZ 550 108 #define GAMUT_3D_SCALE_OFF_SZ 16 109 #define GAMUT_3D_SCALEB_OFF_SZ 12 110 #define GAMUT_3D_TBL_NUM 4 111 #define GAMUT_3D_SCALE_OFF_TBL_NUM 3 112 #define GAMUT_3D_MAP_EN (1 << 0) 113 struct drm_msm_3d_col { 114 __u32 c2_c1; 115 __u32 c0; 116 }; 117 struct drm_msm_3d_gamut { 118 __u64 flags; 119 __u32 mode; 120 __u32 scale_off[GAMUT_3D_SCALE_OFF_TBL_NUM][GAMUT_3D_SCALE_OFF_SZ]; 121 struct drm_msm_3d_col col[GAMUT_3D_TBL_NUM][GAMUT_3D_MODE17_TBL_SZ]; 122 }; 123 #define PGC_TBL_LEN 512 124 #define PGC_8B_ROUND (1 << 0) 125 struct drm_msm_pgc_lut { 126 __u64 flags; 127 __u32 c0[PGC_TBL_LEN]; 128 __u32 c1[PGC_TBL_LEN]; 129 __u32 c2[PGC_TBL_LEN]; 130 }; 131 #define IGC_TBL_LEN 256 132 #define IGC_DITHER_ENABLE (1 << 0) 133 struct drm_msm_igc_lut { 134 __u64 flags; 135 __u32 c0[IGC_TBL_LEN]; 136 __u32 c1[IGC_TBL_LEN]; 137 __u32 c2[IGC_TBL_LEN]; 138 __u32 strength; 139 }; 140 #define HIST_V_SIZE 256 141 struct drm_msm_hist { 142 __u64 flags; 143 __u32 data[HIST_V_SIZE]; 144 }; 145 #define AD4_LUT_GRP0_SIZE 33 146 #define AD4_LUT_GRP1_SIZE 32 147 struct drm_msm_ad4_init { 148 __u32 init_param_001[AD4_LUT_GRP0_SIZE]; 149 __u32 init_param_002[AD4_LUT_GRP0_SIZE]; 150 __u32 init_param_003[AD4_LUT_GRP0_SIZE]; 151 __u32 init_param_004[AD4_LUT_GRP0_SIZE]; 152 __u32 init_param_005[AD4_LUT_GRP1_SIZE]; 153 __u32 init_param_006[AD4_LUT_GRP1_SIZE]; 154 __u32 init_param_007[AD4_LUT_GRP0_SIZE]; 155 __u32 init_param_008[AD4_LUT_GRP0_SIZE]; 156 __u32 init_param_009; 157 __u32 init_param_010; 158 __u32 init_param_011; 159 __u32 init_param_012; 160 __u32 init_param_013; 161 __u32 init_param_014; 162 __u32 init_param_015; 163 __u32 init_param_016; 164 __u32 init_param_017; 165 __u32 init_param_018; 166 __u32 init_param_019; 167 __u32 init_param_020; 168 __u32 init_param_021; 169 __u32 init_param_022; 170 __u32 init_param_023; 171 __u32 init_param_024; 172 __u32 init_param_025; 173 __u32 init_param_026; 174 __u32 init_param_027; 175 __u32 init_param_028; 176 __u32 init_param_029; 177 __u32 init_param_030; 178 __u32 init_param_031; 179 __u32 init_param_032; 180 __u32 init_param_033; 181 __u32 init_param_034; 182 __u32 init_param_035; 183 __u32 init_param_036; 184 __u32 init_param_037; 185 __u32 init_param_038; 186 __u32 init_param_039; 187 __u32 init_param_040; 188 __u32 init_param_041; 189 __u32 init_param_042; 190 __u32 init_param_043; 191 __u32 init_param_044; 192 __u32 init_param_045; 193 __u32 init_param_046; 194 __u32 init_param_047; 195 __u32 init_param_048; 196 __u32 init_param_049; 197 __u32 init_param_050; 198 __u32 init_param_051; 199 __u32 init_param_052; 200 __u32 init_param_053; 201 __u32 init_param_054; 202 __u32 init_param_055; 203 __u32 init_param_056; 204 __u32 init_param_057; 205 __u32 init_param_058; 206 __u32 init_param_059; 207 __u32 init_param_060; 208 __u32 init_param_061; 209 __u32 init_param_062; 210 __u32 init_param_063; 211 __u32 init_param_064; 212 __u32 init_param_065; 213 __u32 init_param_066; 214 __u32 init_param_067; 215 __u32 init_param_068; 216 __u32 init_param_069; 217 __u32 init_param_070; 218 __u32 init_param_071; 219 __u32 init_param_072; 220 __u32 init_param_073; 221 __u32 init_param_074; 222 __u32 init_param_075; 223 }; 224 struct drm_msm_ad4_cfg { 225 __u32 cfg_param_001; 226 __u32 cfg_param_002; 227 __u32 cfg_param_003; 228 __u32 cfg_param_004; 229 __u32 cfg_param_005; 230 __u32 cfg_param_006; 231 __u32 cfg_param_007; 232 __u32 cfg_param_008; 233 __u32 cfg_param_009; 234 __u32 cfg_param_010; 235 __u32 cfg_param_011; 236 __u32 cfg_param_012; 237 __u32 cfg_param_013; 238 __u32 cfg_param_014; 239 __u32 cfg_param_015; 240 __u32 cfg_param_016; 241 __u32 cfg_param_017; 242 __u32 cfg_param_018; 243 __u32 cfg_param_019; 244 __u32 cfg_param_020; 245 __u32 cfg_param_021; 246 __u32 cfg_param_022; 247 __u32 cfg_param_023; 248 __u32 cfg_param_024; 249 __u32 cfg_param_025; 250 __u32 cfg_param_026; 251 __u32 cfg_param_027; 252 __u32 cfg_param_028; 253 __u32 cfg_param_029; 254 __u32 cfg_param_030; 255 __u32 cfg_param_031; 256 __u32 cfg_param_032; 257 __u32 cfg_param_033; 258 __u32 cfg_param_034; 259 __u32 cfg_param_035; 260 __u32 cfg_param_036; 261 __u32 cfg_param_037; 262 __u32 cfg_param_038; 263 __u32 cfg_param_039; 264 __u32 cfg_param_040; 265 __u32 cfg_param_041; 266 __u32 cfg_param_042; 267 __u32 cfg_param_043; 268 __u32 cfg_param_044; 269 __u32 cfg_param_045; 270 __u32 cfg_param_046; 271 __u32 cfg_param_047; 272 __u32 cfg_param_048; 273 __u32 cfg_param_049; 274 __u32 cfg_param_050; 275 __u32 cfg_param_051; 276 __u32 cfg_param_052; 277 __u32 cfg_param_053; 278 }; 279 #define DITHER_MATRIX_SZ 16 280 struct drm_msm_dither { 281 __u64 flags; 282 __u32 temporal_en; 283 __u32 c0_bitdepth; 284 __u32 c1_bitdepth; 285 __u32 c2_bitdepth; 286 __u32 c3_bitdepth; 287 __u32 matrix[DITHER_MATRIX_SZ]; 288 }; 289 #define DRM_MSM_PA_DITHER 290 struct drm_msm_pa_dither { 291 __u64 flags; 292 __u32 strength; 293 __u32 offset_en; 294 __u32 matrix[DITHER_MATRIX_SZ]; 295 }; 296 #endif 297 298