1 // SPDX-License-Identifier: MIT
2 //
3 // Copyright 2024 Advanced Micro Devices, Inc.
4 
5 #include "dml_top.h"
6 #include "dml2_internal_shared_types.h"
7 #include "dml2_top_soc15.h"
8 
dml2_get_instance_size_bytes(void)9 unsigned int dml2_get_instance_size_bytes(void)
10 {
11 	return sizeof(struct dml2_instance);
12 }
13 
dml2_initialize_instance(struct dml2_initialize_instance_in_out * in_out)14 bool dml2_initialize_instance(struct dml2_initialize_instance_in_out *in_out)
15 {
16 	switch (in_out->options.project_id) {
17 	case dml2_project_dcn4x_stage1:
18 	case dml2_project_dcn4x_stage2:
19 	case dml2_project_dcn4x_stage2_auto_drr_svp:
20 		return dml2_top_soc15_initialize_instance(in_out);
21 	case dml2_project_invalid:
22 	default:
23 		return false;
24 	}
25 }
26 
dml2_check_mode_supported(struct dml2_check_mode_supported_in_out * in_out)27 bool dml2_check_mode_supported(struct dml2_check_mode_supported_in_out *in_out)
28 {
29 	if (!in_out->dml2_instance->funcs.check_mode_supported)
30 		return false;
31 
32 	return in_out->dml2_instance->funcs.check_mode_supported(in_out);
33 }
34 
dml2_build_mode_programming(struct dml2_build_mode_programming_in_out * in_out)35 bool dml2_build_mode_programming(struct dml2_build_mode_programming_in_out *in_out)
36 {
37 	if (!in_out->dml2_instance->funcs.build_mode_programming)
38 		return false;
39 
40 	return in_out->dml2_instance->funcs.build_mode_programming(in_out);
41 }
42 
dml2_build_mcache_programming(struct dml2_build_mcache_programming_in_out * in_out)43 bool dml2_build_mcache_programming(struct dml2_build_mcache_programming_in_out *in_out)
44 {
45 	if (!in_out->dml2_instance->funcs.build_mcache_programming)
46 		return false;
47 
48 	return in_out->dml2_instance->funcs.build_mcache_programming(in_out);
49 }
50