]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/psr: Clear pr_dpcd as well on disconnect
authorJouni Högander <jouni.hogander@intel.com>
Thu, 4 Dec 2025 10:47:30 +0000 (12:47 +0200)
committerJouni Högander <jouni.hogander@intel.com>
Mon, 8 Dec 2025 06:16:01 +0000 (08:16 +0200)
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
drivers/gpu/drm/i915/display/intel_dp.c

index dcceb0ae2a56d53342b8708c1af1155f6535a288..3838835e7e7eb6326360a55efd287c54be603387 100644 (file)
@@ -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 =