diff options
author | Jun Lei | 2019-05-16 21:23:20 +0200 |
---|---|---|
committer | Alex Deucher | 2019-06-22 16:34:08 +0200 |
commit | 6ba117404e4121ddd043201706f9b4b8dc718036 (patch) | |
tree | 6066de4d0e6563febde476b749f6b9de68a0ecda /drivers/gpu/drm/amd/display/dc/dml | |
parent | drm/amd/display: Add writeback_config to VBA vars (diff) | |
download | kernel-qcow2-linux-6ba117404e4121ddd043201706f9b4b8dc718036.tar.gz kernel-qcow2-linux-6ba117404e4121ddd043201706f9b4b8dc718036.tar.xz kernel-qcow2-linux-6ba117404e4121ddd043201706f9b4b8dc718036.zip |
drm/amd/display: fix pstate allow handling in dcn2
[why]
pstate allow/block is not being handled properly on DCN2
[how]
DML needs to be updated to calculate pstate support at both min and max
mpc combine rather than just min
clock manager needs to update current to new pstate support before
sending to pplib/smu
Signed-off-by: Jun Lei <Jun.Lei@amd.com>
Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dml')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c index b7edb39cd902..21d90c6f3c88 100644 --- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c @@ -2592,8 +2592,9 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer mode_lib->vba.DRAMClockChangeSupport[0][0] = dm_dram_clock_change_unsupported; } } - for (k = 1; k <= mode_lib->vba.soc.num_states; k++) - mode_lib->vba.DRAMClockChangeSupport[k][0] = mode_lib->vba.DRAMClockChangeSupport[0][0]; + for (k = 0; k <= mode_lib->vba.soc.num_states; k++) + for (j = 0; j < 2; j++) + mode_lib->vba.DRAMClockChangeSupport[k][j] = mode_lib->vba.DRAMClockChangeSupport[0][0]; //XFC Parameters: for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) { @@ -5061,12 +5062,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l if (locals->ModeSupport[i][0] == true || locals->ModeSupport[i][1] == true) { mode_lib->vba.VoltageLevel = i; if (locals->ModeSupport[i][1] == true && (locals->ModeSupport[i][0] == false - || mode_lib->vba.WhenToDoMPCCombine == dm_mpc_always_when_possible - || (mode_lib->vba.WhenToDoMPCCombine == dm_mpc_reduce_voltage_and_clocks - && ((locals->DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vactive - && locals->DRAMClockChangeSupport[i][0] != dm_dram_clock_change_vactive) - || (locals->DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vblank - && locals->DRAMClockChangeSupport[i][0] == dm_dram_clock_change_unsupported))))) { + || mode_lib->vba.WhenToDoMPCCombine == dm_mpc_always_when_possible)) { MaximumMPCCombine = 1; } else { MaximumMPCCombine = 0; |