aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc/hw
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h4
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h26
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/opp.h7
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;
};