Add helpers to get and set the force retrain state in preparation for
moving the state from the DP struct to the link training state.

Signed-off-by: Imre Deak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c       |  2 +-
 .../drm/i915/display/intel_dp_link_training.c | 29 +++++++++++++++----
 .../drm/i915/display/intel_dp_link_training.h |  2 ++
 3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 980659f5ace6e..b6b5586ea0845 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5682,7 +5682,7 @@ static bool
 intel_dp_check_mst_status(struct intel_dp *intel_dp)
 {
        struct intel_display *display = to_intel_display(intel_dp);
-       bool force_retrain = intel_dp->link.force_retrain;
+       bool force_retrain = 
intel_dp_link_training_get_force_retrain(intel_dp->link.training);
        bool reprobe_needed = false;
 
        for (;;) {
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c 
b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index 4ecc00b7c9ff5..831dec86febd1 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -1944,9 +1944,25 @@ intel_dp_read_link_status(struct intel_dp *intel_dp, u8 
link_status[DP_LINK_STAT
        return 0;
 }
 
+bool intel_dp_link_training_get_force_retrain(struct intel_dp_link_training 
*link_training)
+{
+       struct intel_dp *intel_dp = link_training->dp;
+
+       return intel_dp->link.force_retrain;
+}
+
+static void intel_dp_link_training_set_force_retrain(struct 
intel_dp_link_training *link_training,
+                                                    bool forced)
+{
+       struct intel_dp *intel_dp = link_training->dp;
+
+       intel_dp->link.force_retrain = forced;
+}
+
 static bool
 intel_dp_needs_link_retrain(struct intel_dp *intel_dp)
 {
+       struct intel_dp_link_training *link_training = intel_dp->link.training;
        u8 link_status[DP_LINK_STATUS_SIZE];
 
        if (!intel_dp->link.active)
@@ -1963,7 +1979,7 @@ intel_dp_needs_link_retrain(struct intel_dp *intel_dp)
        if (intel_psr_enabled(intel_dp))
                return false;
 
-       if (intel_dp->link.force_retrain)
+       if (intel_dp_link_training_get_force_retrain(link_training))
                return true;
 
        if (intel_dp_read_link_status(intel_dp, link_status) < 0)
@@ -2005,6 +2021,8 @@ static int intel_dp_retrain_link(struct intel_encoder 
*encoder,
 {
        struct intel_display *display = to_intel_display(encoder);
        struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
+       struct intel_dp_link_training *link_training =
+               intel_dp->link.training;
        u8 pipe_mask;
        int ret;
 
@@ -2032,13 +2050,13 @@ static int intel_dp_retrain_link(struct intel_encoder 
*encoder,
        drm_dbg_kms(display->drm,
                    "[ENCODER:%d:%s] retraining link (forced %s)\n",
                    encoder->base.base.id, encoder->base.name,
-                   str_yes_no(intel_dp->link.force_retrain));
+                   
str_yes_no(intel_dp_link_training_get_force_retrain(link_training)));
 
        ret = intel_modeset_commit_pipes(display, pipe_mask, ctx);
        if (ret == -EDEADLK)
                return ret;
 
-       intel_dp->link.force_retrain = false;
+       intel_dp_link_training_set_force_retrain(link_training, false);
 
        if (ret)
                drm_dbg_kms(display->drm,
@@ -2376,7 +2394,6 @@ static int i915_dp_force_link_retrain_show(void *data, 
u64 *val)
        struct intel_connector *connector = to_intel_connector(data);
        struct intel_display *display = to_intel_display(connector);
        struct intel_dp_link_training *link_training = 
connector_to_link_training(connector);
-       struct intel_dp *intel_dp = link_training->dp;
        int err;
 
        err = 
drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex);
@@ -2385,7 +2402,7 @@ static int i915_dp_force_link_retrain_show(void *data, 
u64 *val)
 
        intel_dp_flush_connector_commits(connector);
 
-       *val = intel_dp->link.force_retrain;
+       *val = intel_dp_link_training_get_force_retrain(link_training);
 
        drm_modeset_unlock(&display->drm->mode_config.connection_mutex);
 
@@ -2406,7 +2423,7 @@ static int i915_dp_force_link_retrain_write(void *data, 
u64 val)
 
        intel_dp_flush_connector_commits(connector);
 
-       intel_dp->link.force_retrain = val;
+       intel_dp_link_training_set_force_retrain(link_training, val);
 
        drm_modeset_unlock(&display->drm->mode_config.connection_mutex);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.h 
b/drivers/gpu/drm/i915/display/intel_dp_link_training.h
index 36ba9535fc34f..ef16fcabd6da9 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.h
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.h
@@ -59,6 +59,8 @@ void intel_dp_128b132b_sdp_crc16(struct intel_dp *intel_dp,
 bool intel_dp_link_params_valid(struct intel_dp *intel_dp, int link_rate,
                                u8 lane_count);
 
+bool intel_dp_link_training_get_force_retrain(struct intel_dp_link_training 
*link_training);
+
 void intel_dp_link_check(struct intel_encoder *encoder);
 void intel_dp_check_link_state(struct intel_dp *intel_dp);
 
-- 
2.49.1

Reply via email to