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)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Wed, 6 Mar 2024 13:41:16 +0000 (15:41 +0200)
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
(cherry picked from commit 1cca19bf296fae0636a637b48d195ac6b4d430c9)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_psr.c

index 38efc8d177d03ce14b8c43f9ed81c60e554bb634..94d2a15d8444ad6a9d88029091cf4aafda60f497 100644 (file)
@@ -5699,6 +5699,9 @@ intel_dp_detect(struct drm_connector *connector,
                goto out;
        }
 
+       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 57bbf3e3af92fbb0325d0c41765f7a0f0d0ac806..4faaf4b3fc53baf048cad365636955c2fce0e921 100644 (file)
@@ -2776,9 +2776,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