diff options
author | 2022-04-11 15:38:48 -0400 | |
---|---|---|
committer | 2022-07-12 16:50:29 -0400 | |
commit | 80fb575678b488b920cd9100939b60d480101907 (patch) | |
tree | 0fa5875f416ed0294197e67972882733f303bd91 | |
parent | drm/amd/display: Fix black screen when disabling Freesync in OSD (diff) | |
download | linux-dev-80fb575678b488b920cd9100939b60d480101907.tar.xz linux-dev-80fb575678b488b920cd9100939b60d480101907.zip |
drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video
[Why]
When playing NV12 1080p MPO video, it is pipe splitting so
we see two pipes in fullscreen and four pipes in windowed
mode. Pipe split is happening because we are setting
MaximumMPCCombine = 1
[How]
Algorithm for MaximumMPCCombine has extra conditions we do
not need. Use DCN31 algorithm instead
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c index 7d536c2f4477..349e36ae9333 100644 --- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c @@ -3733,35 +3733,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l mode_lib->vba.ModeIsSupported = mode_lib->vba.ModeSupport[i][0] == true || mode_lib->vba.ModeSupport[i][1] == true; - if ((mode_lib->vba.ModeSupport[i][0] == false && mode_lib->vba.ModeSupport[i][1] == true) - || MPCCombineMethodAsPossible - || (MPCCombineMethodAsNeededForPStateChangeAndVoltage - && mode_lib->vba.DRAMClockChangeRequirementFinal - && (((mode_lib->vba.DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vactive - || mode_lib->vba.DRAMClockChangeSupport[i][1] == - dm_dram_clock_change_vactive_w_mall_full_frame - || mode_lib->vba.DRAMClockChangeSupport[i][1] == - dm_dram_clock_change_vactive_w_mall_sub_vp) - && !(mode_lib->vba.DRAMClockChangeSupport[i][0] == dm_dram_clock_change_vactive - || mode_lib->vba.DRAMClockChangeSupport[i][0] == - dm_dram_clock_change_vactive_w_mall_full_frame - || mode_lib->vba.DRAMClockChangeSupport[i][0] == - dm_dram_clock_change_vactive_w_mall_sub_vp)) - || ((mode_lib->vba.DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vblank - || mode_lib->vba.DRAMClockChangeSupport[i][1] == - dm_dram_clock_change_vblank_w_mall_full_frame - || mode_lib->vba.DRAMClockChangeSupport[i][1] == - dm_dram_clock_change_vblank_w_mall_sub_vp) - && mode_lib->vba.DRAMClockChangeSupport[i][0] == dm_dram_clock_change_unsupported))) - || (MPCCombineMethodAsNeededForPStateChangeAndVoltage && - mode_lib->vba.FCLKChangeRequirementFinal - && ((mode_lib->vba.FCLKChangeSupport[i][1] == dm_fclock_change_vactive - && mode_lib->vba.FCLKChangeSupport[i][0] != dm_fclock_change_vactive) - || (mode_lib->vba.FCLKChangeSupport[i][1] == dm_fclock_change_vblank - && mode_lib->vba.FCLKChangeSupport[i][0] == dm_fclock_change_unsupported)))) { - MaximumMPCCombine = 1; - } else { + if (mode_lib->vba.ModeSupport[i][0] == true) { MaximumMPCCombine = 0; + } else { + MaximumMPCCombine = 1; } } } |