summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamson Tam <Samson.Tam@amd.com>2022-04-11 22:38:48 +0300
committerAlex Deucher <alexander.deucher@amd.com>2022-07-12 23:50:29 +0300
commit80fb575678b488b920cd9100939b60d480101907 (patch)
tree0fa5875f416ed0294197e67972882733f303bd91
parent59a1e9ed1b406b1ae7cbbc612ce00d459987d028 (diff)
downloadlinux-80fb575678b488b920cd9100939b60d480101907.tar.xz
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.c31
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;
}
}
}