diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 26 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/opp.h | 7 |
3 files changed, 24 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h index fd3ce742af2c..a7c89c36f90f 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h @@ -69,7 +69,9 @@ struct mem_input { struct dc_context *ctx; struct dc_plane_address request_address; struct dc_plane_address current_address; - uint32_t inst; + int inst; + int opp_id; + int mpcc_id; struct stutter_modes stutter_mode; }; diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h index 55c9c305a259..4bbcff48acc8 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h @@ -26,27 +26,29 @@ #define __DC_MPCC_H__ #include "dc_hw_types.h" +#include "opp.h" struct mpcc_cfg { - int top_dpp_id; - int bot_mpcc_id; - int opp_id; + struct mem_input *mi; + struct output_pixel_processor *opp; + unsigned int z_index; + + struct tg_color black_color; bool per_pixel_alpha; bool pre_multiplied_alpha; - bool top_of_tree; }; -struct mpcc { - const struct mpcc_funcs *funcs; +struct mpc { + const struct mpc_funcs *funcs; struct dc_context *ctx; - int inst; - int opp_id; }; -struct mpcc_funcs { - void (*set)(struct mpcc *mpcc, struct mpcc_cfg *cfg); - void (*wait_for_idle)(struct mpcc *mpcc); - void (*set_bg_color)( struct mpcc *mpcc, struct tg_color *bg_color); +struct mpc_funcs { + void (*add)(struct mpc *mpc, struct mpcc_cfg *cfg); + void (*remove)(struct mpc *mpc, + struct output_pixel_processor *opp, + int mpcc_inst); + void (*wait_for_idle)(struct mpc *mpc, int id); }; #endif diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h index a43a09b3f414..01d6957c07fb 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h @@ -196,10 +196,17 @@ struct pwl_float_data { struct fixed31_32 b; }; +struct mpc_tree_cfg { + int num_pipes; + int dpp[MAX_PIPES]; + int mpcc[MAX_PIPES]; +}; + struct output_pixel_processor { struct dc_context *ctx; uint32_t inst; struct pwl_params regamma_params; + struct mpc_tree_cfg mpc_tree; bool mpcc_disconnect_pending[MAX_PIPES]; const struct opp_funcs *funcs; }; |