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 <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index dcceb0ae2a56d..3838835e7e7eb 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 =
-- 
2.43.0

Reply via email to