diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-07-01 01:59:18 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-07-01 02:32:20 +0900 |
| commit | 3ab7116b29750824c7d77b7dd43f20db88aac7db (patch) | |
| tree | ab8de4dd907f0d587394b7910acb1df6c96359a5 /internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch | |
| parent | 9be165d6ee7ad57b5846a3c2f8844010db7cd220 (diff) | |
internal/rosa/package/kernel: 6.12.94 to 6.18.37
Finally jumping from 6.12 to 6.18, and the patches can be dropped.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch')
| -rw-r--r-- | internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch | 493 |
1 files changed, 0 insertions, 493 deletions
diff --git a/internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch b/internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch deleted file mode 100644 index 91e4f075..00000000 --- a/internal/rosa/package/kernel/6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch +++ /dev/null @@ -1,493 +0,0 @@ -From 6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f Mon Sep 17 00:00:00 2001 -From: Nathan Chancellor <nathan@kernel.org> -Date: Sat, 13 Dec 2025 19:58:11 +0900 -Subject: drm/amd/display: Reduce number of arguments of dcn30's - CalculateWatermarksAndDRAMSpeedChangeSupport() - -CalculateWatermarksAndDRAMSpeedChangeSupport() has a large number of -parameters, which must be passed on the stack. Most of the parameters -between the two callsites are the same, so they can be accessed through -the existing mode_lib pointer, instead of being passed as explicit -arguments. Doing this reduces the stack size of -dml30_ModeSupportAndSystemConfigurationFull() from 1912 bytes to 1840 -bytes building for x86_64 with clang-22, helping stay under the 2048 -byte limit for display_mode_vba_30.c. - -Additionally, now that there is a pointer to mode_lib->vba available, -use 'v' consistently throughout the entire function. - -Signed-off-by: Nathan Chancellor <nathan@kernel.org> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -(cherry picked from commit 563dfbefdf633c8d958398ddfa3955f9f40e47d9) ---- - .../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 287 +++++---------------- - 1 file changed, 66 insertions(+), 221 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c -index 2d19bb8de59c84..1df3412be3465d 100644 ---- a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c -+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c -@@ -265,62 +265,23 @@ static void CalculateDynamicMetadataParameters( - static void CalculateWatermarksAndDRAMSpeedChangeSupport( - struct display_mode_lib *mode_lib, - unsigned int PrefetchMode, -- unsigned int NumberOfActivePlanes, -- unsigned int MaxLineBufferLines, -- unsigned int LineBufferSize, -- unsigned int DPPOutputBufferPixels, -- unsigned int DETBufferSizeInKByte, -- unsigned int WritebackInterfaceBufferSize, - double DCFCLK, - double ReturnBW, -- bool GPUVMEnable, -- unsigned int dpte_group_bytes[], -- unsigned int MetaChunkSize, - double UrgentLatency, - double ExtraLatency, -- double WritebackLatency, -- double WritebackChunkSize, - double SOCCLK, -- double DRAMClockChangeLatency, -- double SRExitTime, -- double SREnterPlusExitTime, - double DCFCLKDeepSleep, - unsigned int DPPPerPlane[], -- bool DCCEnable[], - double DPPCLK[], - unsigned int DETBufferSizeY[], - unsigned int DETBufferSizeC[], - unsigned int SwathHeightY[], - unsigned int SwathHeightC[], -- unsigned int LBBitPerPixel[], - double SwathWidthY[], - double SwathWidthC[], -- double HRatio[], -- double HRatioChroma[], -- unsigned int vtaps[], -- unsigned int VTAPsChroma[], -- double VRatio[], -- double VRatioChroma[], -- unsigned int HTotal[], -- double PixelClock[], -- unsigned int BlendingAndTiming[], - double BytePerPixelDETY[], - double BytePerPixelDETC[], -- double DSTXAfterScaler[], -- double DSTYAfterScaler[], -- bool WritebackEnable[], -- enum source_format_class WritebackPixelFormat[], -- double WritebackDestinationWidth[], -- double WritebackDestinationHeight[], -- double WritebackSourceHeight[], -- enum clock_change_support *DRAMClockChangeSupport, -- double *UrgentWatermark, -- double *WritebackUrgentWatermark, -- double *DRAMClockChangeWatermark, -- double *WritebackDRAMClockChangeWatermark, -- double *StutterExitWatermark, -- double *StutterEnterPlusExitWatermark, -- double *MinActiveDRAMClockChangeLatencySupported); -+ enum clock_change_support *DRAMClockChangeSupport); - static void CalculateDCFCLKDeepSleep( - struct display_mode_lib *mode_lib, - unsigned int NumberOfActivePlanes, -@@ -2646,62 +2607,23 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman - CalculateWatermarksAndDRAMSpeedChangeSupport( - mode_lib, - PrefetchMode, -- v->NumberOfActivePlanes, -- v->MaxLineBufferLines, -- v->LineBufferSize, -- v->DPPOutputBufferPixels, -- v->DETBufferSizeInKByte[0], -- v->WritebackInterfaceBufferSize, - v->DCFCLK, - v->ReturnBW, -- v->GPUVMEnable, -- v->dpte_group_bytes, -- v->MetaChunkSize, - v->UrgentLatency, - v->UrgentExtraLatency, -- v->WritebackLatency, -- v->WritebackChunkSize, - v->SOCCLK, -- v->FinalDRAMClockChangeLatency, -- v->SRExitTime, -- v->SREnterPlusExitTime, - v->DCFCLKDeepSleep, - v->DPPPerPlane, -- v->DCCEnable, - v->DPPCLK, - v->DETBufferSizeY, - v->DETBufferSizeC, - v->SwathHeightY, - v->SwathHeightC, -- v->LBBitPerPixel, - v->SwathWidthY, - v->SwathWidthC, -- v->HRatio, -- v->HRatioChroma, -- v->vtaps, -- v->VTAPsChroma, -- v->VRatio, -- v->VRatioChroma, -- v->HTotal, -- v->PixelClock, -- v->BlendingAndTiming, - v->BytePerPixelDETY, - v->BytePerPixelDETC, -- v->DSTXAfterScaler, -- v->DSTYAfterScaler, -- v->WritebackEnable, -- v->WritebackPixelFormat, -- v->WritebackDestinationWidth, -- v->WritebackDestinationHeight, -- v->WritebackSourceHeight, -- &DRAMClockChangeSupport, -- &v->UrgentWatermark, -- &v->WritebackUrgentWatermark, -- &v->DRAMClockChangeWatermark, -- &v->WritebackDRAMClockChangeWatermark, -- &v->StutterExitWatermark, -- &v->StutterEnterPlusExitWatermark, -- &v->MinActiveDRAMClockChangeLatencySupported); -+ &DRAMClockChangeSupport); - - for (k = 0; k < v->NumberOfActivePlanes; ++k) { - if (v->WritebackEnable[k] == true) { -@@ -4895,62 +4817,23 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l - CalculateWatermarksAndDRAMSpeedChangeSupport( - mode_lib, - v->PrefetchModePerState[i][j], -- v->NumberOfActivePlanes, -- v->MaxLineBufferLines, -- v->LineBufferSize, -- v->DPPOutputBufferPixels, -- v->DETBufferSizeInKByte[0], -- v->WritebackInterfaceBufferSize, - v->DCFCLKState[i][j], - v->ReturnBWPerState[i][j], -- v->GPUVMEnable, -- v->dpte_group_bytes, -- v->MetaChunkSize, - v->UrgLatency[i], - v->ExtraLatency, -- v->WritebackLatency, -- v->WritebackChunkSize, - v->SOCCLKPerState[i], -- v->FinalDRAMClockChangeLatency, -- v->SRExitTime, -- v->SREnterPlusExitTime, - v->ProjectedDCFCLKDeepSleep[i][j], - v->NoOfDPPThisState, -- v->DCCEnable, - v->RequiredDPPCLKThisState, - v->DETBufferSizeYThisState, - v->DETBufferSizeCThisState, - v->SwathHeightYThisState, - v->SwathHeightCThisState, -- v->LBBitPerPixel, - v->SwathWidthYThisState, - v->SwathWidthCThisState, -- v->HRatio, -- v->HRatioChroma, -- v->vtaps, -- v->VTAPsChroma, -- v->VRatio, -- v->VRatioChroma, -- v->HTotal, -- v->PixelClock, -- v->BlendingAndTiming, - v->BytePerPixelInDETY, - v->BytePerPixelInDETC, -- v->DSTXAfterScaler, -- v->DSTYAfterScaler, -- v->WritebackEnable, -- v->WritebackPixelFormat, -- v->WritebackDestinationWidth, -- v->WritebackDestinationHeight, -- v->WritebackSourceHeight, -- &v->DRAMClockChangeSupport[i][j], -- &v->UrgentWatermark, -- &v->WritebackUrgentWatermark, -- &v->DRAMClockChangeWatermark, -- &v->WritebackDRAMClockChangeWatermark, -- &v->StutterExitWatermark, -- &v->StutterEnterPlusExitWatermark, -- &v->MinActiveDRAMClockChangeLatencySupported); -+ &v->DRAMClockChangeSupport[i][j]); - } - } - -@@ -5067,63 +4950,25 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l - static void CalculateWatermarksAndDRAMSpeedChangeSupport( - struct display_mode_lib *mode_lib, - unsigned int PrefetchMode, -- unsigned int NumberOfActivePlanes, -- unsigned int MaxLineBufferLines, -- unsigned int LineBufferSize, -- unsigned int DPPOutputBufferPixels, -- unsigned int DETBufferSizeInKByte, -- unsigned int WritebackInterfaceBufferSize, - double DCFCLK, - double ReturnBW, -- bool GPUVMEnable, -- unsigned int dpte_group_bytes[], -- unsigned int MetaChunkSize, - double UrgentLatency, - double ExtraLatency, -- double WritebackLatency, -- double WritebackChunkSize, - double SOCCLK, -- double DRAMClockChangeLatency, -- double SRExitTime, -- double SREnterPlusExitTime, - double DCFCLKDeepSleep, - unsigned int DPPPerPlane[], -- bool DCCEnable[], - double DPPCLK[], - unsigned int DETBufferSizeY[], - unsigned int DETBufferSizeC[], - unsigned int SwathHeightY[], - unsigned int SwathHeightC[], -- unsigned int LBBitPerPixel[], - double SwathWidthY[], - double SwathWidthC[], -- double HRatio[], -- double HRatioChroma[], -- unsigned int vtaps[], -- unsigned int VTAPsChroma[], -- double VRatio[], -- double VRatioChroma[], -- unsigned int HTotal[], -- double PixelClock[], -- unsigned int BlendingAndTiming[], - double BytePerPixelDETY[], - double BytePerPixelDETC[], -- double DSTXAfterScaler[], -- double DSTYAfterScaler[], -- bool WritebackEnable[], -- enum source_format_class WritebackPixelFormat[], -- double WritebackDestinationWidth[], -- double WritebackDestinationHeight[], -- double WritebackSourceHeight[], -- enum clock_change_support *DRAMClockChangeSupport, -- double *UrgentWatermark, -- double *WritebackUrgentWatermark, -- double *DRAMClockChangeWatermark, -- double *WritebackDRAMClockChangeWatermark, -- double *StutterExitWatermark, -- double *StutterEnterPlusExitWatermark, -- double *MinActiveDRAMClockChangeLatencySupported) -+ enum clock_change_support *DRAMClockChangeSupport) - { -+ struct vba_vars_st *v = &mode_lib->vba; - double EffectiveLBLatencyHidingY = 0; - double EffectiveLBLatencyHidingC = 0; - double LinesInDETY[DC__NUM_DPP__MAX] = { 0 }; -@@ -5142,101 +4987,101 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport( - double WritebackDRAMClockChangeLatencyHiding = 0; - unsigned int k, j; - -- mode_lib->vba.TotalActiveDPP = 0; -- mode_lib->vba.TotalDCCActiveDPP = 0; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -- mode_lib->vba.TotalActiveDPP = mode_lib->vba.TotalActiveDPP + DPPPerPlane[k]; -- if (DCCEnable[k] == true) { -- mode_lib->vba.TotalDCCActiveDPP = mode_lib->vba.TotalDCCActiveDPP + DPPPerPlane[k]; -+ v->TotalActiveDPP = 0; -+ v->TotalDCCActiveDPP = 0; -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { -+ v->TotalActiveDPP = v->TotalActiveDPP + DPPPerPlane[k]; -+ if (v->DCCEnable[k] == true) { -+ v->TotalDCCActiveDPP = v->TotalDCCActiveDPP + DPPPerPlane[k]; - } - } - -- *UrgentWatermark = UrgentLatency + ExtraLatency; -+ v->UrgentWatermark = UrgentLatency + ExtraLatency; - -- *DRAMClockChangeWatermark = DRAMClockChangeLatency + *UrgentWatermark; -+ v->DRAMClockChangeWatermark = v->FinalDRAMClockChangeLatency + v->UrgentWatermark; - -- mode_lib->vba.TotalActiveWriteback = 0; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -- if (WritebackEnable[k] == true) { -- mode_lib->vba.TotalActiveWriteback = mode_lib->vba.TotalActiveWriteback + 1; -+ v->TotalActiveWriteback = 0; -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { -+ if (v->WritebackEnable[k] == true) { -+ v->TotalActiveWriteback = v->TotalActiveWriteback + 1; - } - } - -- if (mode_lib->vba.TotalActiveWriteback <= 1) { -- *WritebackUrgentWatermark = WritebackLatency; -+ if (v->TotalActiveWriteback <= 1) { -+ v->WritebackUrgentWatermark = v->WritebackLatency; - } else { -- *WritebackUrgentWatermark = WritebackLatency + WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; -+ v->WritebackUrgentWatermark = v->WritebackLatency + v->WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; - } - -- if (mode_lib->vba.TotalActiveWriteback <= 1) { -- *WritebackDRAMClockChangeWatermark = DRAMClockChangeLatency + WritebackLatency; -+ if (v->TotalActiveWriteback <= 1) { -+ v->WritebackDRAMClockChangeWatermark = v->FinalDRAMClockChangeLatency + v->WritebackLatency; - } else { -- *WritebackDRAMClockChangeWatermark = DRAMClockChangeLatency + WritebackLatency + WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; -+ v->WritebackDRAMClockChangeWatermark = v->FinalDRAMClockChangeLatency + v->WritebackLatency + v->WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; - } - -- for (k = 0; k < NumberOfActivePlanes; ++k) { -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { - -- mode_lib->vba.LBLatencyHidingSourceLinesY = dml_min((double) MaxLineBufferLines, dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(HRatio[k], 1.0)), 1)) - (vtaps[k] - 1); -+ v->LBLatencyHidingSourceLinesY = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1); - -- mode_lib->vba.LBLatencyHidingSourceLinesC = dml_min((double) MaxLineBufferLines, dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(HRatioChroma[k], 1.0)), 1)) - (VTAPsChroma[k] - 1); -+ v->LBLatencyHidingSourceLinesC = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1); - -- EffectiveLBLatencyHidingY = mode_lib->vba.LBLatencyHidingSourceLinesY / VRatio[k] * (HTotal[k] / PixelClock[k]); -+ EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / v->VRatio[k] * (v->HTotal[k] / v->PixelClock[k]); - -- EffectiveLBLatencyHidingC = mode_lib->vba.LBLatencyHidingSourceLinesC / VRatioChroma[k] * (HTotal[k] / PixelClock[k]); -+ EffectiveLBLatencyHidingC = v->LBLatencyHidingSourceLinesC / v->VRatioChroma[k] * (v->HTotal[k] / v->PixelClock[k]); - - LinesInDETY[k] = (double) DETBufferSizeY[k] / BytePerPixelDETY[k] / SwathWidthY[k]; - LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]); -- FullDETBufferingTimeY[k] = LinesInDETYRoundedDownToSwath[k] * (HTotal[k] / PixelClock[k]) / VRatio[k]; -+ FullDETBufferingTimeY[k] = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k]; - if (BytePerPixelDETC[k] > 0) { -- LinesInDETC = mode_lib->vba.DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k]; -+ LinesInDETC = v->DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k]; - LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]); -- FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (HTotal[k] / PixelClock[k]) / VRatioChroma[k]; -+ FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (v->HTotal[k] / v->PixelClock[k]) / v->VRatioChroma[k]; - } else { - LinesInDETC = 0; - FullDETBufferingTimeC = 999999; - } - -- ActiveDRAMClockChangeLatencyMarginY = EffectiveLBLatencyHidingY + FullDETBufferingTimeY[k] - *UrgentWatermark - (HTotal[k] / PixelClock[k]) * (DSTXAfterScaler[k] / HTotal[k] + DSTYAfterScaler[k]) - *DRAMClockChangeWatermark; -+ ActiveDRAMClockChangeLatencyMarginY = EffectiveLBLatencyHidingY + FullDETBufferingTimeY[k] - v->UrgentWatermark - (v->HTotal[k] / v->PixelClock[k]) * (v->DSTXAfterScaler[k] / v->HTotal[k] + v->DSTYAfterScaler[k]) - v->DRAMClockChangeWatermark; - -- if (NumberOfActivePlanes > 1) { -- ActiveDRAMClockChangeLatencyMarginY = ActiveDRAMClockChangeLatencyMarginY - (1 - 1.0 / NumberOfActivePlanes) * SwathHeightY[k] * HTotal[k] / PixelClock[k] / VRatio[k]; -+ if (v->NumberOfActivePlanes > 1) { -+ ActiveDRAMClockChangeLatencyMarginY = ActiveDRAMClockChangeLatencyMarginY - (1 - 1.0 / v->NumberOfActivePlanes) * SwathHeightY[k] * v->HTotal[k] / v->PixelClock[k] / v->VRatio[k]; - } - - if (BytePerPixelDETC[k] > 0) { -- ActiveDRAMClockChangeLatencyMarginC = EffectiveLBLatencyHidingC + FullDETBufferingTimeC - *UrgentWatermark - (HTotal[k] / PixelClock[k]) * (DSTXAfterScaler[k] / HTotal[k] + DSTYAfterScaler[k]) - *DRAMClockChangeWatermark; -+ ActiveDRAMClockChangeLatencyMarginC = EffectiveLBLatencyHidingC + FullDETBufferingTimeC - v->UrgentWatermark - (v->HTotal[k] / v->PixelClock[k]) * (v->DSTXAfterScaler[k] / v->HTotal[k] + v->DSTYAfterScaler[k]) - v->DRAMClockChangeWatermark; - -- if (NumberOfActivePlanes > 1) { -- ActiveDRAMClockChangeLatencyMarginC = ActiveDRAMClockChangeLatencyMarginC - (1 - 1.0 / NumberOfActivePlanes) * SwathHeightC[k] * HTotal[k] / PixelClock[k] / VRatioChroma[k]; -+ if (v->NumberOfActivePlanes > 1) { -+ ActiveDRAMClockChangeLatencyMarginC = ActiveDRAMClockChangeLatencyMarginC - (1 - 1.0 / v->NumberOfActivePlanes) * SwathHeightC[k] * v->HTotal[k] / v->PixelClock[k] / v->VRatioChroma[k]; - } -- mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k] = dml_min(ActiveDRAMClockChangeLatencyMarginY, ActiveDRAMClockChangeLatencyMarginC); -+ v->ActiveDRAMClockChangeLatencyMargin[k] = dml_min(ActiveDRAMClockChangeLatencyMarginY, ActiveDRAMClockChangeLatencyMarginC); - } else { -- mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k] = ActiveDRAMClockChangeLatencyMarginY; -+ v->ActiveDRAMClockChangeLatencyMargin[k] = ActiveDRAMClockChangeLatencyMarginY; - } - -- if (WritebackEnable[k] == true) { -+ if (v->WritebackEnable[k] == true) { - -- WritebackDRAMClockChangeLatencyHiding = WritebackInterfaceBufferSize * 1024 / (WritebackDestinationWidth[k] * WritebackDestinationHeight[k] / (WritebackSourceHeight[k] * HTotal[k] / PixelClock[k]) * 4); -- if (WritebackPixelFormat[k] == dm_444_64) { -+ WritebackDRAMClockChangeLatencyHiding = v->WritebackInterfaceBufferSize * 1024 / (v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k] / (v->WritebackSourceHeight[k] * v->HTotal[k] / v->PixelClock[k]) * 4); -+ if (v->WritebackPixelFormat[k] == dm_444_64) { - WritebackDRAMClockChangeLatencyHiding = WritebackDRAMClockChangeLatencyHiding / 2; - } -- if (mode_lib->vba.WritebackConfiguration == dm_whole_buffer_for_single_stream_interleave) { -+ if (v->WritebackConfiguration == dm_whole_buffer_for_single_stream_interleave) { - WritebackDRAMClockChangeLatencyHiding = WritebackDRAMClockChangeLatencyHiding * 2; - } -- WritebackDRAMClockChangeLatencyMargin = WritebackDRAMClockChangeLatencyHiding - mode_lib->vba.WritebackDRAMClockChangeWatermark; -- mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k] = dml_min(mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k], WritebackDRAMClockChangeLatencyMargin); -+ WritebackDRAMClockChangeLatencyMargin = WritebackDRAMClockChangeLatencyHiding - v->WritebackDRAMClockChangeWatermark; -+ v->ActiveDRAMClockChangeLatencyMargin[k] = dml_min(v->ActiveDRAMClockChangeLatencyMargin[k], WritebackDRAMClockChangeLatencyMargin); - } - } - -- mode_lib->vba.MinActiveDRAMClockChangeMargin = 999999; -+ v->MinActiveDRAMClockChangeMargin = 999999; - PlaneWithMinActiveDRAMClockChangeMargin = 0; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -- if (mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k] < mode_lib->vba.MinActiveDRAMClockChangeMargin) { -- mode_lib->vba.MinActiveDRAMClockChangeMargin = mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k]; -- if (BlendingAndTiming[k] == k) { -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { -+ if (v->ActiveDRAMClockChangeLatencyMargin[k] < v->MinActiveDRAMClockChangeMargin) { -+ v->MinActiveDRAMClockChangeMargin = v->ActiveDRAMClockChangeLatencyMargin[k]; -+ if (v->BlendingAndTiming[k] == k) { - PlaneWithMinActiveDRAMClockChangeMargin = k; - } else { -- for (j = 0; j < NumberOfActivePlanes; ++j) { -- if (BlendingAndTiming[k] == j) { -+ for (j = 0; j < v->NumberOfActivePlanes; ++j) { -+ if (v->BlendingAndTiming[k] == j) { - PlaneWithMinActiveDRAMClockChangeMargin = j; - } - } -@@ -5244,40 +5089,40 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport( - } - } - -- *MinActiveDRAMClockChangeLatencySupported = mode_lib->vba.MinActiveDRAMClockChangeMargin + DRAMClockChangeLatency; -+ v->MinActiveDRAMClockChangeLatencySupported = v->MinActiveDRAMClockChangeMargin + v->FinalDRAMClockChangeLatency; - - SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank = 999999; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -- if (!((k == PlaneWithMinActiveDRAMClockChangeMargin) && (BlendingAndTiming[k] == k)) && !(BlendingAndTiming[k] == PlaneWithMinActiveDRAMClockChangeMargin) && mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k] < SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank) { -- SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank = mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k]; -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { -+ if (!((k == PlaneWithMinActiveDRAMClockChangeMargin) && (v->BlendingAndTiming[k] == k)) && !(v->BlendingAndTiming[k] == PlaneWithMinActiveDRAMClockChangeMargin) && v->ActiveDRAMClockChangeLatencyMargin[k] < SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank) { -+ SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank = v->ActiveDRAMClockChangeLatencyMargin[k]; - } - } - -- mode_lib->vba.TotalNumberOfActiveOTG = 0; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -- if (BlendingAndTiming[k] == k) { -- mode_lib->vba.TotalNumberOfActiveOTG = mode_lib->vba.TotalNumberOfActiveOTG + 1; -+ v->TotalNumberOfActiveOTG = 0; -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { -+ if (v->BlendingAndTiming[k] == k) { -+ v->TotalNumberOfActiveOTG = v->TotalNumberOfActiveOTG + 1; - } - } - -- if (mode_lib->vba.MinActiveDRAMClockChangeMargin > 0) { -+ if (v->MinActiveDRAMClockChangeMargin > 0) { - *DRAMClockChangeSupport = dm_dram_clock_change_vactive; -- } else if (((mode_lib->vba.SynchronizedVBlank == true || mode_lib->vba.TotalNumberOfActiveOTG == 1 || SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank > 0) && PrefetchMode == 0)) { -+ } else if (((v->SynchronizedVBlank == true || v->TotalNumberOfActiveOTG == 1 || SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank > 0) && PrefetchMode == 0)) { - *DRAMClockChangeSupport = dm_dram_clock_change_vblank; - } else { - *DRAMClockChangeSupport = dm_dram_clock_change_unsupported; - } - - FullDETBufferingTimeYStutterCriticalPlane = FullDETBufferingTimeY[0]; -- for (k = 0; k < NumberOfActivePlanes; ++k) { -+ for (k = 0; k < v->NumberOfActivePlanes; ++k) { - if (FullDETBufferingTimeY[k] <= FullDETBufferingTimeYStutterCriticalPlane) { - FullDETBufferingTimeYStutterCriticalPlane = FullDETBufferingTimeY[k]; -- TimeToFinishSwathTransferStutterCriticalPlane = (SwathHeightY[k] - (LinesInDETY[k] - LinesInDETYRoundedDownToSwath[k])) * (HTotal[k] / PixelClock[k]) / VRatio[k]; -+ TimeToFinishSwathTransferStutterCriticalPlane = (SwathHeightY[k] - (LinesInDETY[k] - LinesInDETYRoundedDownToSwath[k])) * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k]; - } - } - -- *StutterExitWatermark = SRExitTime + ExtraLatency + 10 / DCFCLKDeepSleep; -- *StutterEnterPlusExitWatermark = dml_max(SREnterPlusExitTime + ExtraLatency + 10 / DCFCLKDeepSleep, TimeToFinishSwathTransferStutterCriticalPlane); -+ v->StutterExitWatermark = v->SRExitTime + ExtraLatency + 10 / DCFCLKDeepSleep; -+ v->StutterEnterPlusExitWatermark = dml_max(v->SREnterPlusExitTime + ExtraLatency + 10 / DCFCLKDeepSleep, TimeToFinishSwathTransferStutterCriticalPlane); - - } - --- -cgit 1.2.3-korg |
