[AMD Official Use Only - General]
Why not just set replay_feature_enabled = true; to false?
From: Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>
Sent: October 3, 2023 11:20 AM To: Lakha, Bhawanpreet <Bhawanpreet.Lakha@xxxxxxx>; LIPSKI, IVAN <IVAN.LIPSKI@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx <amd-gfx@xxxxxxxxxxxxxxxxxxxxx> Cc: Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx>; Mahfooz, Hamza <Hamza.Mahfooz@xxxxxxx>; Wentland, Harry <Harry.Wentland@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Chung, ChiaHsuan (Tom) <ChiaHsuan.Chung@xxxxxxx> Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases" 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.li@xxxxxxx> - Leo > > Bhawan > ------------------------------------------------------------------------ > *From:* LIPSKI, IVAN <IVAN.LIPSKI@xxxxxxx> > *Sent:* October 2, 2023 1:47 PM > *To:* amd-gfx@xxxxxxxxxxxxxxxxxxxxx <amd-gfx@xxxxxxxxxxxxxxxxxxxxx> > *Cc:* Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx>; Mahfooz, Hamza > <Hamza.Mahfooz@xxxxxxx>; Wentland, Harry <Harry.Wentland@xxxxxxx>; > Lakha, Bhawanpreet <Bhawanpreet.Lakha@xxxxxxx>; Deucher, Alexander > <Alexander.Deucher@xxxxxxx>; Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>; > Chung, ChiaHsuan (Tom) <ChiaHsuan.Chung@xxxxxxx>; LIPSKI, IVAN > <IVAN.LIPSKI@xxxxxxx>; LIPSKI, IVAN <IVAN.LIPSKI@xxxxxxx> > *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static > screen use cases" > From: Ivan Lipski <ivlipski@xxxxxxx> > > 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 <ivlipskI@xxxxxxx> > --- > .../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 > |