diff options
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.patch | 63 |
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 + |