1 // SPDX-License-Identifier: MIT
2 //
3 // Copyright 2024 Advanced Micro Devices, Inc.
4 
5 #include "dml2_mcg_factory.h"
6 #include "dml2_mcg_dcn4.h"
7 #include "dml2_external_lib_deps.h"
8 
dummy_build_min_clock_table(struct dml2_mcg_build_min_clock_table_params_in_out * in_out)9 static bool dummy_build_min_clock_table(struct dml2_mcg_build_min_clock_table_params_in_out *in_out)
10 {
11 	return true;
12 }
13 
dml2_mcg_create(enum dml2_project_id project_id,struct dml2_mcg_instance * out)14 bool dml2_mcg_create(enum dml2_project_id project_id, struct dml2_mcg_instance *out)
15 {
16 	bool result = false;
17 
18 	if (out == 0)
19 		return false;
20 
21 	memset(out, 0, sizeof(struct dml2_mcg_instance));
22 
23 	switch (project_id) {
24 	case dml2_project_dcn4x_stage1:
25 		out->build_min_clock_table = &dummy_build_min_clock_table;
26 		result = true;
27 		break;
28 	case dml2_project_dcn4x_stage2:
29 	case dml2_project_dcn4x_stage2_auto_drr_svp:
30 		out->build_min_clock_table = &mcg_dcn4_build_min_clock_table;
31 		result = true;
32 		break;
33 	case dml2_project_invalid:
34 	default:
35 		break;
36 	}
37 
38 	return result;
39 }
40