| .. | .. |
|---|
| 36 | 36 | |
|---|
| 37 | 37 | #define MAX_AUDIOS 7 |
|---|
| 38 | 38 | #define MAX_PIPES 6 |
|---|
| 39 | +#define MAX_DWB_PIPES 1 |
|---|
| 39 | 40 | |
|---|
| 40 | 41 | struct gamma_curve { |
|---|
| 41 | 42 | uint32_t offset; |
|---|
| .. | .. |
|---|
| 52 | 53 | uint32_t custom_float_y; |
|---|
| 53 | 54 | uint32_t custom_float_offset; |
|---|
| 54 | 55 | uint32_t custom_float_slope; |
|---|
| 56 | +}; |
|---|
| 57 | + |
|---|
| 58 | +struct curve_points3 { |
|---|
| 59 | + struct curve_points red; |
|---|
| 60 | + struct curve_points green; |
|---|
| 61 | + struct curve_points blue; |
|---|
| 55 | 62 | }; |
|---|
| 56 | 63 | |
|---|
| 57 | 64 | struct pwl_result_data { |
|---|
| .. | .. |
|---|
| 72 | 79 | uint32_t delta_blue_reg; |
|---|
| 73 | 80 | }; |
|---|
| 74 | 81 | |
|---|
| 82 | +struct dc_rgb { |
|---|
| 83 | + uint32_t red; |
|---|
| 84 | + uint32_t green; |
|---|
| 85 | + uint32_t blue; |
|---|
| 86 | +}; |
|---|
| 87 | + |
|---|
| 88 | +struct tetrahedral_17x17x17 { |
|---|
| 89 | + struct dc_rgb lut0[1229]; |
|---|
| 90 | + struct dc_rgb lut1[1228]; |
|---|
| 91 | + struct dc_rgb lut2[1228]; |
|---|
| 92 | + struct dc_rgb lut3[1228]; |
|---|
| 93 | +}; |
|---|
| 94 | +struct tetrahedral_9x9x9 { |
|---|
| 95 | + struct dc_rgb lut0[183]; |
|---|
| 96 | + struct dc_rgb lut1[182]; |
|---|
| 97 | + struct dc_rgb lut2[182]; |
|---|
| 98 | + struct dc_rgb lut3[182]; |
|---|
| 99 | +}; |
|---|
| 100 | + |
|---|
| 101 | +struct tetrahedral_params { |
|---|
| 102 | + union { |
|---|
| 103 | + struct tetrahedral_17x17x17 tetrahedral_17; |
|---|
| 104 | + struct tetrahedral_9x9x9 tetrahedral_9; |
|---|
| 105 | + }; |
|---|
| 106 | + bool use_tetrahedral_9; |
|---|
| 107 | + bool use_12bits; |
|---|
| 108 | + |
|---|
| 109 | +}; |
|---|
| 110 | + |
|---|
| 111 | +/* arr_curve_points - regamma regions/segments specification |
|---|
| 112 | + * arr_points - beginning and end point specified separately (only one on DCE) |
|---|
| 113 | + * corner_points - beginning and end point for all 3 colors (DCN) |
|---|
| 114 | + * rgb_resulted - final curve |
|---|
| 115 | + */ |
|---|
| 75 | 116 | struct pwl_params { |
|---|
| 76 | 117 | struct gamma_curve arr_curve_points[34]; |
|---|
| 77 | | - struct curve_points arr_points[2]; |
|---|
| 118 | + union { |
|---|
| 119 | + struct curve_points arr_points[2]; |
|---|
| 120 | + struct curve_points3 corner_points[2]; |
|---|
| 121 | + }; |
|---|
| 78 | 122 | struct pwl_result_data rgb_resulted[256 + 3]; |
|---|
| 79 | 123 | uint32_t hw_points_num; |
|---|
| 80 | 124 | }; |
|---|
| .. | .. |
|---|
| 106 | 150 | IPP_DEGAMMA_MODE_USER_PWL |
|---|
| 107 | 151 | }; |
|---|
| 108 | 152 | |
|---|
| 153 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 154 | +enum gamcor_mode { |
|---|
| 155 | + GAMCOR_MODE_BYPASS, |
|---|
| 156 | + GAMCOR_MODE_RESERVED_1, |
|---|
| 157 | + GAMCOR_MODE_USER_PWL, |
|---|
| 158 | + GAMCOR_MODE_RESERVED_3 |
|---|
| 159 | +}; |
|---|
| 160 | +#endif |
|---|
| 161 | + |
|---|
| 109 | 162 | enum ipp_output_format { |
|---|
| 110 | 163 | IPP_OUTPUT_FORMAT_12_BIT_FIX, |
|---|
| 111 | 164 | IPP_OUTPUT_FORMAT_16_BIT_BYPASS, |
|---|
| .. | .. |
|---|
| 133 | 186 | uint16_t regval[12]; |
|---|
| 134 | 187 | }; |
|---|
| 135 | 188 | |
|---|
| 189 | +enum gamut_remap_select { |
|---|
| 190 | + GAMUT_REMAP_BYPASS = 0, |
|---|
| 191 | + GAMUT_REMAP_COEFF, |
|---|
| 192 | + GAMUT_REMAP_COMA_COEFF, |
|---|
| 193 | + GAMUT_REMAP_COMB_COEFF |
|---|
| 194 | +}; |
|---|
| 136 | 195 | |
|---|
| 137 | 196 | enum opp_regamma { |
|---|
| 138 | 197 | OPP_REGAMMA_BYPASS = 0, |
|---|
| 139 | 198 | OPP_REGAMMA_SRGB, |
|---|
| 140 | 199 | OPP_REGAMMA_XVYCC, |
|---|
| 141 | 200 | OPP_REGAMMA_USER |
|---|
| 201 | +}; |
|---|
| 202 | + |
|---|
| 203 | +enum optc_dsc_mode { |
|---|
| 204 | + OPTC_DSC_DISABLED = 0, |
|---|
| 205 | + OPTC_DSC_ENABLED_444 = 1, /* 'RGB 444' or 'Simple YCbCr 4:2:2' (4:2:2 upsampled to 4:4:4) */ |
|---|
| 206 | + OPTC_DSC_ENABLED_NATIVE_SUBSAMPLED = 2 /* Native 4:2:2 or 4:2:0 */ |
|---|
| 142 | 207 | }; |
|---|
| 143 | 208 | |
|---|
| 144 | 209 | struct dc_bias_and_scale { |
|---|
| .. | .. |
|---|
| 162 | 227 | TEST_PATTERN_MODE_VERTICALBARS, |
|---|
| 163 | 228 | TEST_PATTERN_MODE_HORIZONTALBARS, |
|---|
| 164 | 229 | TEST_PATTERN_MODE_SINGLERAMP_RGB, |
|---|
| 165 | | - TEST_PATTERN_MODE_DUALRAMP_RGB |
|---|
| 230 | + TEST_PATTERN_MODE_DUALRAMP_RGB, |
|---|
| 231 | + TEST_PATTERN_MODE_XR_BIAS_RGB |
|---|
| 166 | 232 | }; |
|---|
| 167 | 233 | |
|---|
| 168 | 234 | enum test_pattern_color_format { |
|---|
| .. | .. |
|---|
| 184 | 250 | CONTROLLER_DP_TEST_PATTERN_RESERVED_8, |
|---|
| 185 | 251 | CONTROLLER_DP_TEST_PATTERN_RESERVED_9, |
|---|
| 186 | 252 | CONTROLLER_DP_TEST_PATTERN_RESERVED_A, |
|---|
| 187 | | - CONTROLLER_DP_TEST_PATTERN_COLORSQUARES_CEA |
|---|
| 253 | + CONTROLLER_DP_TEST_PATTERN_COLORSQUARES_CEA, |
|---|
| 254 | + CONTROLLER_DP_TEST_PATTERN_SOLID_COLOR |
|---|
| 255 | +}; |
|---|
| 256 | + |
|---|
| 257 | +enum controller_dp_color_space { |
|---|
| 258 | + CONTROLLER_DP_COLOR_SPACE_RGB, |
|---|
| 259 | + CONTROLLER_DP_COLOR_SPACE_YCBCR601, |
|---|
| 260 | + CONTROLLER_DP_COLOR_SPACE_YCBCR709, |
|---|
| 261 | + CONTROLLER_DP_COLOR_SPACE_UDEFINED |
|---|
| 188 | 262 | }; |
|---|
| 189 | 263 | |
|---|
| 190 | 264 | enum dc_lut_mode { |
|---|