Commit 80fb5756 authored by Samson Tam's avatar Samson Tam Committed by Alex Deucher

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: default avatarSamson Tam <Samson.Tam@amd.com>
Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 59a1e9ed
...@@ -3733,35 +3733,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l ...@@ -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.ModeIsSupported = mode_lib->vba.ModeSupport[i][0] == true
|| mode_lib->vba.ModeSupport[i][1] == true; || mode_lib->vba.ModeSupport[i][1] == true;
if ((mode_lib->vba.ModeSupport[i][0] == false && mode_lib->vba.ModeSupport[i][1] == true) if (mode_lib->vba.ModeSupport[i][0] == 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 {
MaximumMPCCombine = 0; MaximumMPCCombine = 0;
} else {
MaximumMPCCombine = 1;
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment