Skip to content

Commit b504f99

Browse files
Alvin Leealexdeucher
authored andcommitted
drm/amd/display: Enforce 60us prefetch for 200Mhz DCFCLK modes
[Description] - Due to bandwidth / arbitration issues at 200Mhz DCFCLK, we want to enforce minimum 60us of prefetch to avoid intermittent underflow issues - Since 60us prefetch is already enforced for UCLK DPM0, and many DCFCLK's > 200Mhz are mapped to UCLK DPM1, in theory there should not be any UCLK DPM regressions by enforcing greater prefetch Reviewed-by: Nevenko Stupar <[email protected]> Reviewed-by: Jun Lei <[email protected]> Cc: Mario Limonciello <[email protected]> Cc: Alex Deucher <[email protected]> Cc: [email protected] Acked-by: Alex Hung <[email protected]> Signed-off-by: Alvin Lee <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent f57fa0f commit b504f99

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
810810
v->SwathHeightY[k],
811811
v->SwathHeightC[k],
812812
TWait,
813-
v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ?
813+
(v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ||
814+
v->DCFCLKPerState[mode_lib->vba.VoltageLevel] <= MIN_DCFCLK_FREQ_MHZ) ?
814815
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
815816
/* Output */
816817
&v->DSTXAfterScaler[k],
@@ -3310,7 +3311,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
33103311
v->swath_width_chroma_ub_this_state[k],
33113312
v->SwathHeightYThisState[k],
33123313
v->SwathHeightCThisState[k], v->TWait,
3313-
v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ ?
3314+
(v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ || v->DCFCLKState[i][j] <= MIN_DCFCLK_FREQ_MHZ) ?
33143315
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
33153316

33163317
/* Output */

drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
#define BPP_BLENDED_PIPE 0xffffffff
5454

5555
#define MEM_STROBE_FREQ_MHZ 1600
56+
#define MIN_DCFCLK_FREQ_MHZ 200
5657
#define MEM_STROBE_MAX_DELIVERY_TIME_US 60.0
5758

5859
struct display_mode_lib;

0 commit comments

Comments
 (0)