Commit ea45405d authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher

drm/amd/display: Hook up DCN314 specific dml implementation

[Why & How]
Add support for the DML314 functions and hook up DCN314 to use them.

This has some necessary additions for calculating Max VSTARTUP for
future features, but there's also some changes that we have to make
for pixel format/swizzle support.

That will come in a following patch to make this transition easier to
bisect.
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarPavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent af2f2a25
...@@ -262,7 +262,7 @@ void dcn314_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_p ...@@ -262,7 +262,7 @@ void dcn314_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_p
} }
if (!IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) if (!IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment))
dml_init_instance(&dc->dml, &dcn3_14_soc, &dcn3_14_ip, DML_PROJECT_DCN31); dml_init_instance(&dc->dml, &dcn3_14_soc, &dcn3_14_ip, DML_PROJECT_DCN314);
else else
dml_init_instance(&dc->dml, &dcn3_14_soc, &dcn3_14_ip, DML_PROJECT_DCN31_FPGA); dml_init_instance(&dc->dml, &dcn3_14_soc, &dcn3_14_ip, DML_PROJECT_DCN31_FPGA);
} }
......
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include "dcn30/display_rq_dlg_calc_30.h" #include "dcn30/display_rq_dlg_calc_30.h"
#include "dcn31/display_mode_vba_31.h" #include "dcn31/display_mode_vba_31.h"
#include "dcn31/display_rq_dlg_calc_31.h" #include "dcn31/display_rq_dlg_calc_31.h"
#include "dcn314/display_mode_vba_314.h"
#include "dcn314/display_rq_dlg_calc_314.h"
#include "dcn32/display_mode_vba_32.h" #include "dcn32/display_mode_vba_32.h"
#include "dcn32/display_rq_dlg_calc_32.h" #include "dcn32/display_rq_dlg_calc_32.h"
#include "dml_logger.h" #include "dml_logger.h"
...@@ -74,6 +76,13 @@ const struct dml_funcs dml31_funcs = { ...@@ -74,6 +76,13 @@ const struct dml_funcs dml31_funcs = {
.rq_dlg_get_rq_reg = dml31_rq_dlg_get_rq_reg .rq_dlg_get_rq_reg = dml31_rq_dlg_get_rq_reg
}; };
const struct dml_funcs dml314_funcs = {
.validate = dml314_ModeSupportAndSystemConfigurationFull,
.recalculate = dml314_recalculate,
.rq_dlg_get_dlg_reg = dml314_rq_dlg_get_dlg_reg,
.rq_dlg_get_rq_reg = dml314_rq_dlg_get_rq_reg
};
const struct dml_funcs dml32_funcs = { const struct dml_funcs dml32_funcs = {
.validate = dml32_ModeSupportAndSystemConfigurationFull, .validate = dml32_ModeSupportAndSystemConfigurationFull,
.recalculate = dml32_recalculate, .recalculate = dml32_recalculate,
...@@ -107,6 +116,9 @@ void dml_init_instance(struct display_mode_lib *lib, ...@@ -107,6 +116,9 @@ void dml_init_instance(struct display_mode_lib *lib,
case DML_PROJECT_DCN31_FPGA: case DML_PROJECT_DCN31_FPGA:
lib->funcs = dml31_funcs; lib->funcs = dml31_funcs;
break; break;
case DML_PROJECT_DCN314:
lib->funcs = dml314_funcs;
break;
case DML_PROJECT_DCN32: case DML_PROJECT_DCN32:
lib->funcs = dml32_funcs; lib->funcs = dml32_funcs;
break; break;
......
...@@ -41,6 +41,7 @@ enum dml_project { ...@@ -41,6 +41,7 @@ enum dml_project {
DML_PROJECT_DCN30, DML_PROJECT_DCN30,
DML_PROJECT_DCN31, DML_PROJECT_DCN31,
DML_PROJECT_DCN31_FPGA, DML_PROJECT_DCN31_FPGA,
DML_PROJECT_DCN314,
DML_PROJECT_DCN32, DML_PROJECT_DCN32,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment