Commit 05ffbdf4 authored by Sherry Wang's avatar Sherry Wang Committed by Alex Deucher
Browse files

drm/amd/display: correct DML calc error



[Why]
DML calculation is different from HW formula.

[How]
Correct the bug to keep it same as HW formula.

Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarSherry Wang <Yao.Wang1@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 44243719
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4939,8 +4939,8 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
					}
					v->TotImmediateFlipBytes = 0.0;
					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
						v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->NoOfDPP[i][j][k] * v->PDEAndMetaPTEBytesPerFrame[i][j][k]
								+ v->MetaRowBytes[i][j][k] + v->DPTEBytesPerRow[i][j][k];
						v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k]
								+ v->MetaRowBytes[i][j][k] + v->DPTEBytesPerRow[i][j][k]);
					}

					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
+2 −2
Original line number Diff line number Diff line
@@ -5274,8 +5274,8 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
					v->TotImmediateFlipBytes = 0.0;
					for (k = 0; k < v->NumberOfActivePlanes; k++) {
						v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
								+ v->NoOfDPP[i][j][k] * v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
								+ v->DPTEBytesPerRow[i][j][k];
								+ v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
								+ v->DPTEBytesPerRow[i][j][k]);
					}

					for (k = 0; k < v->NumberOfActivePlanes; k++) {
+2 −2
Original line number Diff line number Diff line
@@ -5371,8 +5371,8 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
					v->TotImmediateFlipBytes = 0.0;
					for (k = 0; k < v->NumberOfActivePlanes; k++) {
						v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
								+ v->NoOfDPP[i][j][k] * v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
								+ v->DPTEBytesPerRow[i][j][k];
								+ v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
								+ v->DPTEBytesPerRow[i][j][k]);
					}

					for (k = 0; k < v->NumberOfActivePlanes; k++) {