drm/i915/panelreplay: Move out psr_init_dpcd() from init_connector()
authorAnimesh Manna <animesh.manna@intel.com>
Thu, 29 Feb 2024 04:37:16 +0000 (10:07 +0530)
committerAnimesh Manna <animesh.manna@intel.com>
Fri, 1 Mar 2024 07:34:41 +0000 (13:04 +0530)
Move psr_init_dpcd() from init-connector to connector-detect
function. The dpcd probe for checking panel replay capability
for external dp connector is causing delay during boot which can
be optimized by moving dpcd probe to connector specific detect().

v1: Initial version.
v2: Add details in commit description. [Jani]

Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10284
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Fixes: cceeaa312d39 ("drm/i915/panelreplay: Enable panel replay dpcd initialization for DP")
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240229043716.4065760-1-animesh.manna@intel.com
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_psr.c

index 523a6d68a52c254311b523cdc896c949435e496c..795907a27c1ed2f737d89c7bc715940fb0c70f9d 100644 (file)
@@ -5777,6 +5777,9 @@ intel_dp_detect(struct drm_connector *connector,
        if (ret == 1)
                intel_connector->base.epoch_counter++;
 
+       if (!intel_dp_is_edp(intel_dp))
+               intel_psr_init_dpcd(intel_dp);
+
        intel_dp_detect_dsc_caps(intel_dp, intel_connector);
 
        intel_dp_configure_mst(intel_dp);
index 72cadad09db5f1ecacf87976a7ba6e0e6e18590f..6927785fd6ff2fed2406a6ca1889cdf455f548e7 100644 (file)
@@ -2883,9 +2883,6 @@ void intel_psr_init(struct intel_dp *intel_dp)
        if (!(HAS_PSR(dev_priv) || HAS_DP20(dev_priv)))
                return;
 
-       if (!intel_dp_is_edp(intel_dp))
-               intel_psr_init_dpcd(intel_dp);
-
        /*
         * HSW spec explicitly says PSR is tied to port A.
         * BDW+ platforms have a instance of PSR registers per transcoder but