xref: /linux/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.h (revision 92c4c9fdc838d3b41a996bb700ea64b9e78fc7ea)
1 // SPDX-License-Identifier: MIT
2 //
3 // Copyright 2024 Advanced Micro Devices, Inc.
4 
5 #ifndef __DML2_PMO_FAMS2_DCN4_H__
6 #define __DML2_PMO_FAMS2_DCN4_H__
7 
8 #include "dml2_internal_shared_types.h"
9 
10 struct display_configuation_with_meta;
11 
12 int dcn4_get_vactive_pstate_margin(
13 	const struct display_configuation_with_meta *display_cfg,
14 	int plane_mask);
15 
16 int dcn4_get_minimum_reserved_time_us_for_planes(
17 	const struct display_configuation_with_meta *display_config,
18 	int plane_mask);
19 
20 bool pmo_dcn4_fams2_initialize(struct dml2_pmo_initialize_in_out *in_out);
21 
22 bool pmo_dcn4_fams2_optimize_dcc_mcache(struct dml2_pmo_optimize_dcc_mcache_in_out *in_out);
23 
24 bool pmo_dcn4_fams2_init_for_vmin(struct dml2_pmo_init_for_vmin_in_out *in_out);
25 bool pmo_dcn4_fams2_test_for_vmin(struct dml2_pmo_test_for_vmin_in_out *in_out);
26 bool pmo_dcn4_fams2_optimize_for_vmin(struct dml2_pmo_optimize_for_vmin_in_out *in_out);
27 
28 bool pmo_dcn4_fams2_init_for_pstate_support(struct dml2_pmo_init_for_pstate_support_in_out *in_out);
29 bool pmo_dcn4_fams2_test_for_pstate_support(struct dml2_pmo_test_for_pstate_support_in_out *in_out);
30 bool pmo_dcn4_fams2_optimize_for_pstate_support(struct dml2_pmo_optimize_for_pstate_support_in_out *in_out);
31 
32 bool pmo_dcn4_fams2_init_for_stutter(struct dml2_pmo_init_for_stutter_in_out *in_out);
33 bool pmo_dcn4_fams2_test_for_stutter(struct dml2_pmo_test_for_stutter_in_out *in_out);
34 bool pmo_dcn4_fams2_optimize_for_stutter(struct dml2_pmo_optimize_for_stutter_in_out *in_out);
35 
36 void pmo_dcn4_fams2_expand_base_pstate_strategies(
37 	const struct dml2_pmo_pstate_strategy *base_strategies_list,
38 	const unsigned int num_base_strategies,
39 	const unsigned int stream_count,
40 	struct dml2_pmo_pstate_strategy *expanded_strategy_list,
41 	unsigned int *num_expanded_strategies);
42 
43 #endif
44