drm/amd/display: update dml var
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Mon, 15 Jun 2020 13:40:06 +0000 (09:40 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 14 Jul 2020 18:33:56 +0000 (14:33 -0400)
Update *DynamicMetadata variables for providing more flexibility.

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h

index 75dc4fe41731f310907bbe95b44817ddd61e1553..b54814f11b74b76ed5b5b4125ac2a58dc4a4d2bc 100644 (file)
@@ -2567,7 +2567,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        &v->VRatioPrefetchC[k],
                                        &v->RequiredPrefetchPixDataBWLuma[k],
                                        &v->RequiredPrefetchPixDataBWChroma[k],
-                                       &v->NotEnoughTimeForDynamicMetadata,
+                                       &v->NotEnoughTimeForDynamicMetadata[k],
                                        &v->Tno_bw[k],
                                        &v->prefetch_vmrow_bw[k],
                                        &v->Tdmdl_vm[k],
@@ -2686,7 +2686,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                v->FractionOfUrgentBandwidth = MaxTotalRDBandwidthNoUrgentBurst / v->ReturnBW;
 
 
-               if (MaxTotalRDBandwidth <= v->ReturnBW && v->NotEnoughUrgentLatencyHiding == 0 && v->NotEnoughUrgentLatencyHidingPre == 0 && v->NotEnoughTimeForDynamicMetadata == 0 && !VRatioPrefetchMoreThan4
+               if (MaxTotalRDBandwidth <= v->ReturnBW && v->NotEnoughUrgentLatencyHiding == 0 && v->NotEnoughUrgentLatencyHidingPre == 0 && !VRatioPrefetchMoreThan4
                                && !DestinationLineTimesForPrefetchLessThan2)
                        v->PrefetchModeSupported = true;
                else {
@@ -2695,8 +2695,6 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        dml_print("DML: MaxTotalRDBandwidth:%f AvailReturnBandwidth:%f\n", MaxTotalRDBandwidth, v->ReturnBW);
                        dml_print("DML: VRatioPrefetch %s more than 4\n", (VRatioPrefetchMoreThan4) ? "is" : "is not");
                        dml_print("DML: DestinationLines for Prefetch %s less than 2\n", (DestinationLineTimesForPrefetchLessThan2) ? "is" : "is not");
-                       dml_print("DML: Not enough lines for dynamic meta is %s\n", (v->NotEnoughTimeForDynamicMetadata) ? "true" : "false");
-
                }
 
                if (v->PrefetchModeSupported == true && v->ImmediateFlipSupport == true) {
@@ -2786,7 +2784,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                }
 
                for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-                       if (v->ErrorResult[k]) {
+                       if (v->ErrorResult[k] || v->NotEnoughTimeForDynamicMetadata[k]) {
                                v->PrefetchModeSupported = false;
                                dml_print("DML: CalculatePrefetchSchedule ***failed***. Prefetch schedule violation. Results are NOT valid\n");
                        }
index f615815c73bd591d098a16a394cff1076381d4b6..756d8eb1221cace04423ccfd12edf70d0cb987df 100644 (file)
@@ -802,7 +802,7 @@ struct vba_vars_st {
        unsigned int DCCCMaxCompressedBlock[DC__NUM_DPP__MAX];
        unsigned int DCCCIndependent64ByteBlock[DC__NUM_DPP__MAX];
        double VStartupMargin;
-       bool NotEnoughTimeForDynamicMetadata;
+       bool NotEnoughTimeForDynamicMetadata[DC__NUM_DPP__MAX];
 
        /* Missing from VBA */
        unsigned int MaximumMaxVStartupLines;