[Why & How] The PSR status log was emitted during hardware initialization, before the power module completed PSR setup. This could report a stale PSR status. Move the PSR log after mod_power_notify_mode_change() and add Replay status logging at the same point.
Assisted-by: Cursor:GPT-5.6-Luna Reviewed-by: Tom Chung <[email protected]> Signed-off-by: Ray Wu <[email protected]> --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 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 c4fee73a02f9..3e3b0abcfff3 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -2616,13 +2616,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) if (psr_feature_enabled) { amdgpu_dm_set_psr_caps(link, aconnector); - drm_info(adev_to_drm(adev), "%s: PSR support %d, DC PSR ver %d, sink PSR ver %d DPCD caps 0x%x su_y_granularity %d\n", - aconnector->base.name, - link->psr_settings.psr_feature_enabled, - link->psr_settings.psr_version, - link->dpcd_caps.psr_info.psr_version, - link->dpcd_caps.psr_info.psr_dpcd_caps.raw, - link->dpcd_caps.psr_info.psr2_su_y_granularity_cap); } } } @@ -4547,12 +4540,36 @@ STATIC_IFN_KUNIT void amdgpu_dm_mod_power_setup_streams(struct drm_atomic_commit continue; if (new_crtc_state->active) { + struct amdgpu_dm_connector *aconnector = + (struct amdgpu_dm_connector *) + dm_new_crtc_state->stream->dm_stream_context; + struct dc_link *link = dm_new_crtc_state->stream->link; + amdgpu_dm_link_setup_replay(dm_new_crtc_state->stream, &acrtc->dm_irq_params.vrr_params); mod_power_notify_mode_change(dm->power_module, dm_new_crtc_state->stream, false); + if (link->replay_settings.config.replay_cap_support) { + drm_info(state->dev, + "%s: Replay enabled %d, Allow active %d, Config ver %d\n", + aconnector->base.name, + link->replay_settings.replay_feature_enabled, + link->replay_settings.replay_allow_active, + link->replay_settings.config.replay_version); + } + if (link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) { + drm_info(state->dev, + "%s: PSR support %d, DC PSR ver %d, Sink PSR ver %d, DPCD caps 0x%x, su_y_granularity %d\n", + aconnector->base.name, + link->psr_settings.psr_feature_enabled, + link->psr_settings.psr_version, + link->dpcd_caps.psr_info.psr_version, + link->dpcd_caps.psr_info.psr_dpcd_caps.raw, + link->dpcd_caps.psr_info.psr2_su_y_granularity_cap); + } + /* * Block PSR / Replay on the new stream until display settles post-modeset. * These events will be cleared by amdgpu_dm_enable_self_refresh() once -- 2.43.0
