summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorFangzhi Zuo <jerry.zuo@amd.com>2026-07-17 23:46:23 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-08-06 09:58:29 -0400
commitdf94112ceebfb20bc7f6524769c74d5e6e8dcc2d (patch)
tree79fa237c11e21d31277f99b32afc6d8043f7873e /drivers/gpu
parent3df68ac6a75feffedbbf3f24e7914ebb3d79d631 (diff)
downloadlinux-df94112ceebfb20bc7f6524769c74d5e6e8dcc2d.tar.gz
linux-df94112ceebfb20bc7f6524769c74d5e6e8dcc2d.zip
drm/amd/display: Gate HDMI FRL status polling on active FRL link rate
[Why] hdmi_frl_status_polling_work() skipped any link whose connector_signal was not SIGNAL_TYPE_HDMI_FRL. connector_signal is not reliably set to SIGNAL_TYPE_HDMI_FRL while a link is actually running FRL, so links that were operating in FRL mode were skipped and their status flags never got polled, missing link-retrain events. [How] Use frl_link_settings.frl_link_rate to decide whether a link is running FRL. A non-zero rate means FRL is active, so only links with a zero rate are skipped. This ensures every link actually operating in FRL mode is polled for status changes. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Fangzhi Zuo <jerry.zuo@amd.com> Signed-off-by: Roman Li <roman.li@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
index db211884616c..2b0ffa20d98e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
@@ -3068,7 +3068,7 @@ static void hdmi_frl_status_polling_work(struct work_struct *work)
if (!dc_is_hdmi_signal(dc_link->connector_signal))
continue;
- if (dc_link->connector_signal != SIGNAL_TYPE_HDMI_FRL)
+ if (dc_link->frl_link_settings.frl_link_rate == 0)
continue;
link_update = dc_link_frl_poll_status_flag(dc_link);