summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJouni Högander <jouni.hogander@intel.com>2025-12-04 13:47:30 +0300
committerJouni Högander <jouni.hogander@intel.com>2025-12-08 09:16:01 +0300
commita7e427ff20418bbbac367ce78a3e786360988432 (patch)
treecedfcc45293edd73a298b7e272970c1b0ee68978
parent8d251442f81a9c5114f2eee303e4e7305fb0f426 (diff)
downloadlinux-a7e427ff20418bbbac367ce78a3e786360988432.tar.xz
drm/i915/psr: Clear pr_dpcd as well on disconnect
Currently we are leaving pr_dpcd containing Panel Replay capability DPCD registers as it is on disconnect. Clear it as well on disconnect. v2: add FIXME Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Link: https://patch.msgid.link/20251204104733.1106145-6-jouni.hogander@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_dp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index dcceb0ae2a56..3838835e7e7e 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6048,7 +6048,15 @@ intel_dp_detect(struct drm_connector *_connector,
if (status == connector_status_disconnected) {
intel_dp_test_reset(intel_dp);
+ /*
+ * FIXME: Resetting these caps here cause
+ * state computation fail if the connector need to be
+ * modeset after sink disconnect. Move resetting them
+ * to where new sink is connected.
+ */
memset(connector->dp.dsc_dpcd, 0, sizeof(connector->dp.dsc_dpcd));
+ memset(connector->dp.panel_replay_caps.dpcd, 0,
+ sizeof(connector->dp.panel_replay_caps.dpcd));
intel_dp->psr.sink_panel_replay_support = false;
intel_dp->psr.sink_panel_replay_su_support = false;
intel_dp->psr.sink_panel_replay_dsc_support =