mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
drm/amd/display: Enforce 60us prefetch for 200Mhz DCFCLK modes
commit b504f99cca upstream.
[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 <Nevenko.Stupar@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alvin Lee <Alvin.Lee2@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7a8248317b
commit
348dcdf102
@@ -807,7 +807,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
|||||||
v->SwathHeightY[k],
|
v->SwathHeightY[k],
|
||||||
v->SwathHeightC[k],
|
v->SwathHeightC[k],
|
||||||
TWait,
|
TWait,
|
||||||
v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ?
|
(v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ||
|
||||||
|
v->DCFCLKPerState[mode_lib->vba.VoltageLevel] <= MIN_DCFCLK_FREQ_MHZ) ?
|
||||||
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
|
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
|
||||||
/* Output */
|
/* Output */
|
||||||
&v->DSTXAfterScaler[k],
|
&v->DSTXAfterScaler[k],
|
||||||
@@ -3288,7 +3289,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
|||||||
v->swath_width_chroma_ub_this_state[k],
|
v->swath_width_chroma_ub_this_state[k],
|
||||||
v->SwathHeightYThisState[k],
|
v->SwathHeightYThisState[k],
|
||||||
v->SwathHeightCThisState[k], v->TWait,
|
v->SwathHeightCThisState[k], v->TWait,
|
||||||
v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ ?
|
(v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ || v->DCFCLKState[i][j] <= MIN_DCFCLK_FREQ_MHZ) ?
|
||||||
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
|
mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
|
||||||
|
|
||||||
/* Output */
|
/* Output */
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
#define BPP_BLENDED_PIPE 0xffffffff
|
#define BPP_BLENDED_PIPE 0xffffffff
|
||||||
|
|
||||||
#define MEM_STROBE_FREQ_MHZ 1600
|
#define MEM_STROBE_FREQ_MHZ 1600
|
||||||
|
#define MIN_DCFCLK_FREQ_MHZ 200
|
||||||
#define MEM_STROBE_MAX_DELIVERY_TIME_US 60.0
|
#define MEM_STROBE_MAX_DELIVERY_TIME_US 60.0
|
||||||
|
|
||||||
struct display_mode_lib;
|
struct display_mode_lib;
|
||||||
|
|||||||
Reference in New Issue
Block a user