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