linux_dsm_epyc7002/drivers/gpu/drm/amd/display/dc/dcn10
Jun Lei f7f38ffef5 drm/amd/display: fixup DPP programming sequence
[why]
DC does not correct account for the fact that DPP DTO is double buffered while DPP ref is not.
This means that when DPP ref clock is lowered when it's "safe to lower", the DPP blocks that need
an increased divider will temporarily have actual DPP clock drop below minimum while DTO
double buffering takes effect.  This results in temporary underflow.

[how]
To fix this, DPP clock cannot be programmed atomically, but rather be broken up into the DTO and the
ref.  Each has a separate "safe to lower" logic.  When doing "prepare" the ref and dividers may only increase.
When doing "optimize", both may decrease.  It is guaranteed that we won't exceed max DPP clock because
we do not use dividers larger than 1.

Signed-off-by: Jun Lei <Jun.Lei@amd.com>
Reviewed-by: Eric Yang <eric.yang2@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-08-15 10:53:43 -05:00
..
dcn10_cm_common.c drm/amd/display: fix issue where 252-255 values are clipped 2019-08-15 10:53:05 -05:00
dcn10_cm_common.h drm/amd/display: Implement CM dealpha and bias interfaces 2019-05-31 10:39:29 -05:00
dcn10_dpp_cm.c drm/amd/display: Add DCN2 DPP 2019-06-21 18:59:34 -05:00
dcn10_dpp_dscl.c drm/amd/display: Add DCN2 DPP 2019-06-21 18:59:34 -05:00
dcn10_dpp.c drm/amd/display: Add DCN2 DPP 2019-06-21 18:59:34 -05:00
dcn10_dpp.h drm/amd/display: Add DCN2 DPP 2019-06-21 18:59:34 -05:00
dcn10_dwb.c drm/amd/display: Add DCN2 DWB 2019-06-21 18:59:35 -05:00
dcn10_dwb.h drm/amd/display: Add DCN2 DWB 2019-06-21 18:59:35 -05:00
dcn10_hubbub.c drm/amdgpu/display: drop ifdefs around comments 2019-06-25 13:23:17 -05:00
dcn10_hubbub.h drm/amd/display: Refactor program watermark. 2019-05-24 12:20:48 -05:00
dcn10_hubp.c drm/amd/display: add dcc programming for dual plane 2019-07-18 14:27:26 -05:00
dcn10_hubp.h drm/amd/display: add dcc programming for dual plane 2019-07-18 14:27:26 -05:00
dcn10_hw_sequencer_debug.c drm/amd/display: refactor dump_clk_registers 2019-07-18 14:18:09 -05:00
dcn10_hw_sequencer.c drm/amd/display: fixup DPP programming sequence 2019-08-15 10:53:43 -05:00
dcn10_hw_sequencer.h drm/amd/display: Add Underflow Asserts to dc 2019-06-22 09:34:14 -05:00
dcn10_ipp.c Merge branch 'drm-next' into drm-next-5.3 2019-06-25 08:42:25 -05:00
dcn10_ipp.h drm/amd/display: Add DCN2 IPP 2019-06-21 18:59:35 -05:00
dcn10_link_encoder.c Merge branch 'drm-next' into drm-next-5.3 2019-06-25 08:42:25 -05:00
dcn10_link_encoder.h drm/amd/display: Add DCN2 DIO 2019-06-21 18:59:34 -05:00
dcn10_mpc.c drm/amd/display: Fixes for some MPO cases 2019-07-18 14:27:25 -05:00
dcn10_mpc.h drm/amd/display: add mpc to dtn log 2018-04-11 13:07:38 -05:00
dcn10_opp.c Merge branch 'drm-next' into drm-next-5.3 2019-06-25 08:42:25 -05:00
dcn10_opp.h drm/amd/display: Move opp reg access from hwss to opp module. 2018-02-19 14:17:34 -05:00
dcn10_optc.c drm/amd/display: do not need otg lock if otg is not active 2019-06-22 09:34:08 -05:00
dcn10_optc.h drm/amd/display: Fix ODM combine data format 2019-06-22 09:34:10 -05:00
dcn10_resource.c drm/amd/display: Fix a typo - dce_aduio_mask --> dce_audio_mask 2019-08-12 12:47:49 -05:00
dcn10_resource.h drm/amd/display: Use DCN functions instead of DCE 2019-05-24 12:21:00 -05:00
dcn10_stream_encoder.c drm/amd/display: reset hdmi tmds rate and data scramble on pipe reset 2019-08-15 10:52:59 -05:00
dcn10_stream_encoder.h drm/amd/display: reset hdmi tmds rate and data scramble on pipe reset 2019-08-15 10:52:59 -05:00
Makefile drm/amd/display: move clk_mgr files to right place 2019-05-31 10:39:31 -05:00