mirror of
https://github.com/torvalds/linux
synced 2024-09-21 11:38:48 +00:00
drm/amd/display: Fix DML calculation errors
[Why] DML calculations differ with DCN3.1 spreadsheet values due to translations errors from the visual basic code [How] Add missing calculations that set the value for DSCDelay Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Jun Lei <jun.lei@amd.com> Acked-by: Stylon Wang <stylon.wang@amd.com> Signed-off-by: Nicholas Susanto <nicholas.susanto@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
ced575203a
commit
d074e0f9ec
|
@ -2311,6 +2311,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
|||
v->OutputFormat[k],
|
||||
v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
|
||||
}
|
||||
v->DSCDelay[k] = v->DSCDelay[k] + (v->HTotal[k] - v->HActive[k]) * dml_ceil((double) v->DSCDelay[k] / v->HActive[k], 1);
|
||||
v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
|
||||
} else {
|
||||
v->DSCDelay[k] = 0;
|
||||
|
@ -4719,6 +4720,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
|
|||
v->OutputFormat[k],
|
||||
v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
|
||||
}
|
||||
v->DSCDelayPerState[i][k] = v->DSCDelayPerState[i][k] + (v->HTotal[k] - v->HActive[k]) * dml_ceil((double) v->DSCDelayPerState[i][k] / v->HActive[k], 1.0);
|
||||
v->DSCDelayPerState[i][k] = v->DSCDelayPerState[i][k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
|
||||
} else {
|
||||
v->DSCDelayPerState[i][k] = 0.0;
|
||||
|
|
Loading…
Reference in a new issue