On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:
[AMD Official Use Only - General]


Any reason for reverting this instead of looking into "amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply is being enabled?

It causes a regression in amd_psr. Unless there's a quick fix, we should
revert for now. It sounds like this can break existing support for
PSR/PSR SU.

Acked-by: Leo Li <sunpeng...@amd.com>

- Leo


Bhawan
------------------------------------------------------------------------
*From:* LIPSKI, IVAN <ivan.lip...@amd.com>
*Sent:* October 2, 2023 1:47 PM
*To:* amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
*Cc:* Siqueira, Rodrigo <rodrigo.sique...@amd.com>; Mahfooz, Hamza <hamza.mahf...@amd.com>; Wentland, Harry <harry.wentl...@amd.com>; Lakha, Bhawanpreet <bhawanpreet.la...@amd.com>; Deucher, Alexander <alexander.deuc...@amd.com>; Li, Sun peng (Leo) <sunpeng...@amd.com>; Chung, ChiaHsuan (Tom) <chiahsuan.ch...@amd.com>; LIPSKI, IVAN <ivan.lip...@amd.com>; LIPSKI, IVAN <ivan.lip...@amd.com> *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"
From: Ivan Lipski <ivlip...@amd.com>

This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.

V2: Reword commit message

[WHY]
This commit caused regression in which eDP's with PSR support,
but no Replay support (Sink support <= 0x03), failed enabling PSR
and all IGT amd_psr tests.

[HOW]
Reverted the patch.

Signed-off-by: Ivan Lipski <ivlip...@amd.com>
---
  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 -------------------
  .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c    |  9 +-------
  drivers/gpu/drm/amd/include/amd_shared.h      |  2 --
  3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 32156609fbcf..f69b2e9ecd98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -66,7 +66,6 @@
  #include "amdgpu_dm_debugfs.h"
  #endif
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"

  #include "ivsrcid/ivsrcid_vislands30.h"

@@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
          enum dc_connection_type new_connection_type = dc_connection_none;
          const struct dc_plane_cap *plane;
          bool psr_feature_enabled = false;
-       bool replay_feature_enabled = false;
          int max_overlay = dm->dc->caps.max_slave_planes;

          dm->display_indexes_num = dm->dc->caps.max_streams;
@@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
                  }
          }

-       if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
-               switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
-               case IP_VERSION(3, 1, 4):
-               case IP_VERSION(3, 1, 5):
-               case IP_VERSION(3, 1, 6):
-               case IP_VERSION(3, 2, 0):
-               case IP_VERSION(3, 2, 1):
-               case IP_VERSION(3, 5, 0):
-                       replay_feature_enabled = true;
-                       break;
-               default:
-                       replay_feature_enabled = amdgpu_dc_feature_mask & DC_REPLAY_MASK;
-                       break;
-               }
-       }
          /* loops over all connectors on the board */
          for (i = 0; i < link_cnt; i++) {
                  struct dc_link *link = NULL;
@@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) amdgpu_dm_update_connector_after_detect(aconnector);
                                  setup_backlight_device(dm, aconnector);

-                               /*
-                                * Disable psr if replay can be enabled
-                                */
-                               if (replay_feature_enabled && amdgpu_dm_setup_replay(link, aconnector))
-                                       psr_feature_enabled = false;
-
                                  if (psr_feature_enabled)
                                          amdgpu_dm_set_psr_caps(link);

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
index fb51ec4f8d31..440fc0869a34 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -29,7 +29,6 @@
  #include "dc.h"
  #include "amdgpu.h"
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"
  #include "amdgpu_dm_crtc.h"
  #include "amdgpu_dm_plane.h"
  #include "amdgpu_dm_trace.h"
@@ -124,12 +123,7 @@ static void vblank_control_worker(struct work_struct *work)
           * fill_dc_dirty_rects().
           */
          if (vblank_work->stream && vblank_work->stream->link) {
-               /*
-                * Prioritize replay, instead of psr
-                */
-               if (vblank_work->stream->link->replay_settings.replay_feature_enabled)
-                       amdgpu_dm_replay_enable(vblank_work->stream, false);
-               else if (vblank_work->enable) {
+               if (vblank_work->enable) {
                         if (vblank_work->stream->link->psr_settings.psr_version < DC_PSR_VERSION_SU_1 && vblank_work->stream->link->psr_settings.psr_allow_active) amdgpu_dm_psr_disable(vblank_work->stream); @@ -138,7 +132,6 @@ static void vblank_control_worker(struct work_struct *work)
  #ifdef CONFIG_DRM_AMD_SECURE_DISPLAY
!amdgpu_dm_crc_window_is_activated(&vblank_work->acrtc->base) &&
  #endif
- vblank_work->stream->link->panel_config.psr.disallow_replay && vblank_work->acrtc->dm_irq_params.allow_psr_entry) {
                          amdgpu_dm_psr_enable(vblank_work->stream);
                  }
diff --git a/drivers/gpu/drm/amd/include/amd_shared.h b/drivers/gpu/drm/amd/include/amd_shared.h
index 314fd44ec018..ce75351204bb 100644
--- a/drivers/gpu/drm/amd/include/amd_shared.h
+++ b/drivers/gpu/drm/amd/include/amd_shared.h
@@ -244,7 +244,6 @@ enum DC_FEATURE_MASK {
          DC_DISABLE_LTTPR_DP2_0 = (1 << 6), //0x40, disabled by default
          DC_PSR_ALLOW_SMU_OPT = (1 << 7), //0x80, disabled by default
         DC_PSR_ALLOW_MULTI_DISP_OPT = (1 << 8), //0x100, disabled by default -       DC_REPLAY_MASK = (1 << 9), //0x200, disabled by default for dcn < 3.1.4
  };

  enum DC_DEBUG_MASK {
@@ -255,7 +254,6 @@ enum DC_DEBUG_MASK {
          DC_DISABLE_PSR = 0x10,
          DC_FORCE_SUBVP_MCLK_SWITCH = 0x20,
          DC_DISABLE_MPO = 0x40,
-       DC_DISABLE_REPLAY = 0x50,
          DC_ENABLE_DPIA_TRACE = 0x80,
  };

--
2.34.1

Reply via email to