linux/drivers/gpu/drm/amd/display/dc/dml2/dml21/src/inc/dml2_internal_shared_types.h

// SPDX-License-Identifier: MIT
//
// Copyright 2024 Advanced Micro Devices, Inc.


#ifndef __DML2_INTERNAL_SHARED_TYPES_H__
#define __DML2_INTERNAL_SHARED_TYPES_H__

#include "dml2_external_lib_deps.h"
#include "dml_top_types.h"
#include "dml2_core_shared_types.h"

/*
* DML2 MCG Types and Interfaces
*/

#define DML_MCG_MAX_CLK_TABLE_SIZE

struct dram_bw_to_min_clk_table_entry {};

struct dml2_mcg_dram_bw_to_min_clk_table {};

struct dml2_mcg_min_clock_table {};

struct dml2_mcg_build_min_clock_table_params_in_out {};

struct dml2_mcg_instance {};

/*
* DML2 DPMM Types and Interfaces
*/

struct dml2_dpmm_map_mode_to_soc_dpm_params_in_out {};

struct dml2_dpmm_map_watermarks_params_in_out {};

struct dml2_dpmm_instance {};

/*
* DML2 Core Types and Interfaces
*/

struct dml2_core_initialize_in_out {};

struct core_bandwidth_requirements {};

struct core_plane_support_info {};

struct core_stream_support_info {};

struct core_display_cfg_support_info {};

struct dml2_core_mode_support_result {};

struct dml2_optimization_stage1_state {};

struct dml2_optimization_stage2_state {};

#define DML2_PMO_LEGACY_PREFETCH_MAX_TWAIT_OPTIONS
#define DML2_PMO_PSTATE_CANDIDATE_LIST_SIZE
#define DML2_PMO_STUTTER_CANDIDATE_LIST_SIZE

struct dml2_implicit_svp_meta {};

struct dml2_fams2_per_method_common_meta {};

struct dml2_fams2_meta {};

struct dml2_optimization_stage3_state {};

struct dml2_optimization_stage4_state {};

struct dml2_optimization_stage5_state {};

struct display_configuation_with_meta {};

struct dml2_core_mode_support_in_out {};

struct dml2_core_mode_programming_in_out {};

struct dml2_core_populate_informative_in_out {};

struct dml2_calculate_mcache_allocation_in_out {};

struct dml2_core_internal_state_inputs {};

struct dml2_core_internal_state_intermediates {};

struct dml2_core_mode_support_locals {};

struct dml2_core_mode_programming_locals {};

struct dml2_core_scratch {};

struct dml2_core_instance {};

/*
* DML2 PMO Types and Interfaces
*/

struct dml2_pmo_initialize_in_out {};

struct dml2_pmo_optimize_dcc_mcache_in_out {};

struct dml2_pmo_init_for_vmin_in_out {};

struct dml2_pmo_test_for_vmin_in_out {};

struct dml2_pmo_optimize_for_vmin_in_out {};

struct dml2_pmo_init_for_pstate_support_in_out {};

struct dml2_pmo_test_for_pstate_support_in_out {};

struct dml2_pmo_optimize_for_pstate_support_in_out {};

struct dml2_pmo_init_for_stutter_in_out {};

struct dml2_pmo_test_for_stutter_in_out {};

struct dml2_pmo_optimize_for_stutter_in_out {};

enum dml2_pmo_pstate_strategy {};

#define PMO_NO_DRR_STRATEGY_MASK
#define PMO_DRR_STRATEGY_MASK
#define PMO_DRR_CLAMPED_STRATEGY_MASK
#define PMO_DRR_VAR_STRATEGY_MASK
#define PMO_FW_STRATEGY_MASK

#define PMO_DCN4_MAX_DISPLAYS
#define PMO_DCN4_MAX_NUM_VARIANTS
#define PMO_DCN4_MAX_BASE_STRATEGIES

struct dml2_pmo_scratch {};

struct dml2_pmo_init_data {};

struct dml2_pmo_instance {};

/*
* DML2 MCache Types
*/

struct top_mcache_validate_admissability_in_out {};

struct top_mcache_assign_ids_in_out {};

struct top_mcache_calc_mcache_count_and_offsets_in_out {};

struct top_mcache_assign_global_mcache_ids_in_out {};

/*
* DML2 Top Types
*/

struct dml2_initialize_instance_locals {};

struct dml2_optimization_init_function_locals {};

struct dml2_optimization_test_function_locals {};

struct dml2_optimization_optimize_function_locals {};

struct dml2_optimization_phase_locals {};

struct dml2_check_mode_supported_locals {};

struct optimization_init_function_params {};

struct optimization_test_function_params {};

struct optimization_optimize_function_params {};

struct optimization_phase_params {};

struct dml2_build_mode_programming_locals {};

struct dml2_legacy_core_build_mode_programming_wrapper_locals {};

struct dml2_top_mcache_verify_mcache_size_locals {};

struct dml2_top_mcache_validate_admissability_locals {};

struct dml2_top_display_cfg_support_info {};

struct dml2_instance {};
#endif