drm/i915/pps: add vlv_pps_pipe_reset()
authorJani Nikula <jani.nikula@intel.com>
Wed, 18 Sep 2024 17:47:45 +0000 (20:47 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 19 Sep 2024 07:48:47 +0000 (10:48 +0300)
We need to track PPS also for non-eDP usage on VLV/CHV. Add new
vlv_pps_pipe_reset() for resetting the related parts, hiding the PPS
pipe details inside PPS code.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/e1bae913533baea8e502d8c63c06f6852a1cdb93.1726681620.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/g4x_dp.c
drivers/gpu/drm/i915/display/intel_pps.c
drivers/gpu/drm/i915/display/intel_pps.h

index 1699fbb..edbd654 100644 (file)
@@ -1273,12 +1273,8 @@ static void intel_dp_encoder_reset(struct drm_encoder *encoder)
 
        intel_dp->reset_link_params = true;
 
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
-               intel_wakeref_t wakeref;
-
-               with_intel_pps_lock(intel_dp, wakeref)
-                       intel_dp->pps.vlv_active_pipe = vlv_active_pipe(intel_dp);
-       }
+       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
+               vlv_pps_pipe_reset(intel_dp);
 
        intel_pps_encoder_reset(intel_dp);
 }
index 5957e79..e4b17bd 100644 (file)
@@ -1218,6 +1218,15 @@ void vlv_pps_pipe_init(struct intel_dp *intel_dp)
        intel_dp->pps.vlv_active_pipe = vlv_active_pipe(intel_dp);
 }
 
+/* Call on all DP, not just eDP */
+void vlv_pps_pipe_reset(struct intel_dp *intel_dp)
+{
+       intel_wakeref_t wakeref;
+
+       with_intel_pps_lock(intel_dp, wakeref)
+               intel_dp->pps.vlv_active_pipe = vlv_active_pipe(intel_dp);
+}
+
 void vlv_pps_init(struct intel_encoder *encoder,
                  const struct intel_crtc_state *crtc_state)
 {
index 5686e90..6509768 100644 (file)
@@ -46,6 +46,7 @@ void intel_pps_encoder_reset(struct intel_dp *intel_dp);
 void intel_pps_reset_all(struct intel_display *display);
 
 void vlv_pps_pipe_init(struct intel_dp *intel_dp);
+void vlv_pps_pipe_reset(struct intel_dp *intel_dp);
 void vlv_pps_init(struct intel_encoder *encoder,
                  const struct intel_crtc_state *crtc_state);