mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 01:41:30 +07:00
drm/amd/display: Implement CM dealpha and bias interfaces
Add vtable entries for de-alpha and bias color management interfaces. Move piece-wise transfer function registers to a helper list for future reuse. Signed-off-by: Gary Kattan <gary.kattan@amd.com> Reviewed-by: Nevenko Stupar <Nevenko.Stupar@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
821c65596b
commit
48ea75f99a
@ -38,6 +38,22 @@
|
|||||||
type exp_resion_start_segment;\
|
type exp_resion_start_segment;\
|
||||||
type field_region_linear_slope
|
type field_region_linear_slope
|
||||||
|
|
||||||
|
#define TF_HELPER_REG_LIST \
|
||||||
|
uint32_t start_cntl_b; \
|
||||||
|
uint32_t start_cntl_g; \
|
||||||
|
uint32_t start_cntl_r; \
|
||||||
|
uint32_t start_slope_cntl_b; \
|
||||||
|
uint32_t start_slope_cntl_g; \
|
||||||
|
uint32_t start_slope_cntl_r; \
|
||||||
|
uint32_t start_end_cntl1_b; \
|
||||||
|
uint32_t start_end_cntl2_b; \
|
||||||
|
uint32_t start_end_cntl1_g; \
|
||||||
|
uint32_t start_end_cntl2_g; \
|
||||||
|
uint32_t start_end_cntl1_r; \
|
||||||
|
uint32_t start_end_cntl2_r; \
|
||||||
|
uint32_t region_start; \
|
||||||
|
uint32_t region_end
|
||||||
|
|
||||||
#define TF_CM_REG_FIELD_LIST(type) \
|
#define TF_CM_REG_FIELD_LIST(type) \
|
||||||
type csc_c11; \
|
type csc_c11; \
|
||||||
type csc_c12
|
type csc_c12
|
||||||
@ -54,20 +70,7 @@ struct xfer_func_reg {
|
|||||||
struct xfer_func_shift shifts;
|
struct xfer_func_shift shifts;
|
||||||
struct xfer_func_mask masks;
|
struct xfer_func_mask masks;
|
||||||
|
|
||||||
uint32_t start_cntl_b;
|
TF_HELPER_REG_LIST;
|
||||||
uint32_t start_cntl_g;
|
|
||||||
uint32_t start_cntl_r;
|
|
||||||
uint32_t start_slope_cntl_b;
|
|
||||||
uint32_t start_slope_cntl_g;
|
|
||||||
uint32_t start_slope_cntl_r;
|
|
||||||
uint32_t start_end_cntl1_b;
|
|
||||||
uint32_t start_end_cntl2_b;
|
|
||||||
uint32_t start_end_cntl1_g;
|
|
||||||
uint32_t start_end_cntl2_g;
|
|
||||||
uint32_t start_end_cntl1_r;
|
|
||||||
uint32_t start_end_cntl2_r;
|
|
||||||
uint32_t region_start;
|
|
||||||
uint32_t region_end;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cm_color_matrix_shift {
|
struct cm_color_matrix_shift {
|
||||||
|
@ -64,7 +64,22 @@ struct dcn_dpp_state {
|
|||||||
uint32_t gamut_remap_c33_c34;
|
uint32_t gamut_remap_c33_c34;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct CM_bias_params {
|
||||||
|
uint32_t cm_bias_cr_r;
|
||||||
|
uint32_t cm_bias_y_g;
|
||||||
|
uint32_t cm_bias_cb_b;
|
||||||
|
uint32_t cm_bias_format;
|
||||||
|
};
|
||||||
|
|
||||||
struct dpp_funcs {
|
struct dpp_funcs {
|
||||||
|
|
||||||
|
void (*dpp_program_cm_dealpha)(struct dpp *dpp_base,
|
||||||
|
uint32_t enable, uint32_t additive_blending);
|
||||||
|
|
||||||
|
void (*dpp_program_cm_bias)(
|
||||||
|
struct dpp *dpp_base,
|
||||||
|
struct CM_bias_params *bias_params);
|
||||||
|
|
||||||
void (*dpp_read_state)(struct dpp *dpp, struct dcn_dpp_state *s);
|
void (*dpp_read_state)(struct dpp *dpp, struct dcn_dpp_state *s);
|
||||||
|
|
||||||
void (*dpp_reset)(struct dpp *dpp);
|
void (*dpp_reset)(struct dpp *dpp);
|
||||||
@ -155,9 +170,11 @@ struct dpp_funcs {
|
|||||||
uint32_t width,
|
uint32_t width,
|
||||||
uint32_t height
|
uint32_t height
|
||||||
);
|
);
|
||||||
|
|
||||||
void (*dpp_set_hdr_multiplier)(
|
void (*dpp_set_hdr_multiplier)(
|
||||||
struct dpp *dpp_base,
|
struct dpp *dpp_base,
|
||||||
uint32_t multiplier);
|
uint32_t multiplier);
|
||||||
|
|
||||||
void (*set_optional_cursor_attributes)(
|
void (*set_optional_cursor_attributes)(
|
||||||
struct dpp *dpp_base,
|
struct dpp *dpp_base,
|
||||||
struct dpp_cursor_attributes *attr);
|
struct dpp_cursor_attributes *attr);
|
||||||
|
Loading…
Reference in New Issue
Block a user