mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 12:10:23 -04:00
drm/amd/display: Fix underflow issue on 175hz timing
[Why] Screen underflows happen on 175hz timing for 3 plane overlay case. [How] Based on dst y prefetch value clamp to equ or oto for bandwidth calculation. Reviewed-by: Dillon Varone <dillon.varone@amd.com> Acked-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Leo Ma <hanghong.ma@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -3459,6 +3459,7 @@ bool dml32_CalculatePrefetchSchedule(
|
||||
double TimeForFetchingMetaPTE = 0;
|
||||
double TimeForFetchingRowInVBlank = 0;
|
||||
double LinesToRequestPrefetchPixelData = 0;
|
||||
double LinesForPrefetchBandwidth = 0;
|
||||
unsigned int HostVMDynamicLevelsTrips;
|
||||
double trip_to_mem;
|
||||
double Tvm_trips;
|
||||
@@ -3888,11 +3889,15 @@ bool dml32_CalculatePrefetchSchedule(
|
||||
TimeForFetchingMetaPTE = Tvm_oto;
|
||||
TimeForFetchingRowInVBlank = Tr0_oto;
|
||||
*PrefetchBandwidth = prefetch_bw_oto;
|
||||
/* Clamp to oto for bandwidth calculation */
|
||||
LinesForPrefetchBandwidth = dst_y_prefetch_oto;
|
||||
} else {
|
||||
*DestinationLinesForPrefetch = dst_y_prefetch_equ;
|
||||
TimeForFetchingMetaPTE = Tvm_equ;
|
||||
TimeForFetchingRowInVBlank = Tr0_equ;
|
||||
*PrefetchBandwidth = prefetch_bw_equ;
|
||||
/* Clamp to equ for bandwidth calculation */
|
||||
LinesForPrefetchBandwidth = dst_y_prefetch_equ;
|
||||
}
|
||||
|
||||
*DestinationLinesToRequestVMInVBlank = dml_ceil(4.0 * TimeForFetchingMetaPTE / LineTime, 1.0) / 4.0;
|
||||
@@ -3900,7 +3905,7 @@ bool dml32_CalculatePrefetchSchedule(
|
||||
*DestinationLinesToRequestRowInVBlank =
|
||||
dml_ceil(4.0 * TimeForFetchingRowInVBlank / LineTime, 1.0) / 4.0;
|
||||
|
||||
LinesToRequestPrefetchPixelData = *DestinationLinesForPrefetch -
|
||||
LinesToRequestPrefetchPixelData = LinesForPrefetchBandwidth -
|
||||
*DestinationLinesToRequestVMInVBlank - 2 * *DestinationLinesToRequestRowInVBlank;
|
||||
|
||||
#ifdef __DML_VBA_DEBUG__
|
||||
|
||||
Reference in New Issue
Block a user