From: Charlene Liu <charlene....@amd.com>

[why]
This is to update SW DML implementation.

Reviewed-by: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>
Reviewed-by: Ariel Bernstein <eric.bernst...@amd.com>
Acked-by: Alex Hung <alex.h...@amd.com>
Signed-off-by: Charlene Liu <charlene....@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c | 3 ++-
 .../gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c   | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c
index b612edb14417..45ab0ce50860 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c
@@ -1052,7 +1052,8 @@ static bool CalculatePrefetchSchedule(
        else
                bytes_pp = myPipe->BytePerPixelY + myPipe->BytePerPixelC;
        /*rev 99*/
-       prefetch_bw_pr = dml_min(1, bytes_pp * myPipe->PixelClock / (double) 
myPipe->DPPPerPlane);
+       prefetch_bw_pr = bytes_pp * myPipe->PixelClock / (double) 
myPipe->DPPPerPlane;
+       prefetch_bw_pr = dml_min(1, myPipe->VRatio) * prefetch_bw_pr;
        max_Tsw = dml_max(PrefetchSourceLinesY, PrefetchSourceLinesC) * 
LineTime;
        prefetch_sw_bytes = PrefetchSourceLinesY * swath_width_luma_ub * 
myPipe->BytePerPixelY + PrefetchSourceLinesC * swath_width_chroma_ub * 
myPipe->BytePerPixelC;
        prefetch_bw_oto = dml_max(bytes_pp * myPipe->PixelClock / 
myPipe->DPPPerPlane, prefetch_sw_bytes / (dml_max(PrefetchSourceLinesY, 
PrefetchSourceLinesC) * LineTime));
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
index 0d12fd079cd6..53e3e7364ec6 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
@@ -1074,7 +1074,8 @@ static bool CalculatePrefetchSchedule(
        else
                bytes_pp = myPipe->BytePerPixelY + myPipe->BytePerPixelC;
        /*rev 99*/
-       prefetch_bw_pr = dml_min(1, bytes_pp * myPipe->PixelClock / (double) 
myPipe->DPPPerPlane);
+       prefetch_bw_pr = bytes_pp * myPipe->PixelClock / (double) 
myPipe->DPPPerPlane;
+       prefetch_bw_pr = dml_min(1, myPipe->VRatio) * prefetch_bw_pr;
        max_Tsw = dml_max(PrefetchSourceLinesY, PrefetchSourceLinesC) * 
LineTime;
        prefetch_sw_bytes = PrefetchSourceLinesY * swath_width_luma_ub * 
myPipe->BytePerPixelY + PrefetchSourceLinesC * swath_width_chroma_ub * 
myPipe->BytePerPixelC;
        prefetch_bw_oto = dml_max(bytes_pp * myPipe->PixelClock / 
myPipe->DPPPerPlane, prefetch_sw_bytes / (dml_max(PrefetchSourceLinesY, 
PrefetchSourceLinesC) * LineTime));
-- 
2.38.1

Reply via email to