aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch
new file mode 100644
index 00000000..3bfb041c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3592-drm-amd-display-fix-DML-not-calculating-delivery-tim.patch
@@ -0,0 +1,63 @@
+From 68064bb19a5719108199e242040b678802dba418 Mon Sep 17 00:00:00 2001
+From: Jun Lei <Jun.Lei@amd.com>
+Date: Wed, 7 Aug 2019 16:24:46 -0400
+Subject: [PATCH 3592/4256] drm/amd/display: fix DML not calculating delivery
+ time
+
+[why]
+Calculating DCFCLK DS time requires calculating
+delivery time for luma/chroma, but this value is
+not calculated in DMLv2, it was inadvertently
+removed when porting DMLv2
+
+[how]
+Add the calculation back
+
+Signed-off-by: Jun Lei <Jun.Lei@amd.com>
+Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ .../dc/dml/dcn20/display_mode_vba_20v2.c | 27 +++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
+index 22455db54980..0fafd693ffb4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
++++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
+@@ -1475,6 +1475,33 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
+ / mode_lib->vba.ReturnBW;
+
+ mode_lib->vba.LastPixelOfLineExtraWatermark = 0;
++ for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
++ if (mode_lib->vba.VRatio[k] <= 1.0)
++ mode_lib->vba.DisplayPipeLineDeliveryTimeLuma[k] =
++ (double) mode_lib->vba.SwathWidthY[k]
++ * mode_lib->vba.DPPPerPlane[k]
++ / mode_lib->vba.HRatio[k]
++ / mode_lib->vba.PixelClock[k];
++ else
++ mode_lib->vba.DisplayPipeLineDeliveryTimeLuma[k] =
++ (double) mode_lib->vba.SwathWidthY[k]
++ / mode_lib->vba.PSCL_THROUGHPUT_LUMA[k]
++ / mode_lib->vba.DPPCLK[k];
++
++ if (mode_lib->vba.BytePerPixelDETC[k] == 0)
++ mode_lib->vba.DisplayPipeLineDeliveryTimeChroma[k] = 0.0;
++ else if (mode_lib->vba.VRatio[k] / 2.0 <= 1.0)
++ mode_lib->vba.DisplayPipeLineDeliveryTimeChroma[k] =
++ mode_lib->vba.SwathWidthY[k] / 2.0
++ * mode_lib->vba.DPPPerPlane[k]
++ / (mode_lib->vba.HRatio[k] / 2.0)
++ / mode_lib->vba.PixelClock[k];
++ else
++ mode_lib->vba.DisplayPipeLineDeliveryTimeChroma[k] =
++ mode_lib->vba.SwathWidthY[k] / 2.0
++ / mode_lib->vba.PSCL_THROUGHPUT_CHROMA[k]
++ / mode_lib->vba.DPPCLK[k];
++ }
+
+ mode_lib->vba.UrgentExtraLatency = mode_lib->vba.UrgentRoundTripAndOutOfOrderLatency
+ + (mode_lib->vba.TotalActiveDPP * mode_lib->vba.PixelChunkSizeInKByte
+--
+2.17.1
+