Given that skl_pfit_enable() mostly enables (or programs) the scaler at the crtc level, it makes sense to change its name to skl_program_crtc_scaler(). Also, the rename and the addition of struct drm_rect * parameter helps if we'd like to use this function to enable the scaler at the crtc level for features other than panel fitting. Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Cc: Matt Roper <matthew.d.roper@xxxxxxxxx> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@xxxxxxxxx> --- drivers/gpu/drm/i915/display/intel_display.c | 14 ++++++++++---- drivers/gpu/drm/i915/display/skl_scaler.c | 7 ++----- drivers/gpu/drm/i915/display/skl_scaler.h | 3 ++- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index c5de4561f458..0ea62c278948 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -1678,10 +1678,14 @@ static void hsw_crtc_enable(struct intel_atomic_state *state, if (psl_clkgate_wa) glk_pipe_scaler_clock_gating_wa(dev_priv, pipe, true); - if (DISPLAY_VER(dev_priv) >= 9) - skl_pfit_enable(new_crtc_state); - else + if (DISPLAY_VER(dev_priv) >= 9) { + const struct drm_rect *dst = &new_crtc_state->pch_pfit.dst; + + if (new_crtc_state->pch_pfit.enabled) + skl_program_crtc_scaler(new_crtc_state, dst); + } else { ilk_pfit_enable(new_crtc_state); + } /* * On ILK+ LUT must be loaded before the pipe is running but with @@ -6560,8 +6564,10 @@ static void intel_pipe_fastset(const struct intel_crtc_state *old_crtc_state, /* on skylake this is done by detaching scalers */ if (DISPLAY_VER(dev_priv) >= 9) { + const struct drm_rect *dst = &new_crtc_state->pch_pfit.dst; + if (new_crtc_state->pch_pfit.enabled) - skl_pfit_enable(new_crtc_state); + skl_program_crtc_scaler(new_crtc_state, dst); } else if (HAS_PCH_SPLIT(dev_priv)) { if (new_crtc_state->pch_pfit.enabled) ilk_pfit_enable(new_crtc_state); diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c index 8a934bada624..67a87cc0411a 100644 --- a/drivers/gpu/drm/i915/display/skl_scaler.c +++ b/drivers/gpu/drm/i915/display/skl_scaler.c @@ -704,13 +704,13 @@ static void skl_scaler_setup_filter(struct drm_i915_private *dev_priv, enum pipe } } -void skl_pfit_enable(const struct intel_crtc_state *crtc_state) +void skl_program_crtc_scaler(const struct intel_crtc_state *crtc_state, + const struct drm_rect *dst) { struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state; - const struct drm_rect *dst = &crtc_state->pch_pfit.dst; u16 uv_rgb_hphase, uv_rgb_vphase; enum pipe pipe = crtc->pipe; int width = drm_rect_width(dst); @@ -722,9 +722,6 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state) int id; u32 ps_ctrl; - if (!crtc_state->pch_pfit.enabled) - return; - if (drm_WARN_ON(&dev_priv->drm, crtc_state->scaler_state.scaler_id < 0)) return; diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h index 63f93ca03c89..45b9ac3ec779 100644 --- a/drivers/gpu/drm/i915/display/skl_scaler.h +++ b/drivers/gpu/drm/i915/display/skl_scaler.h @@ -24,7 +24,8 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv, struct intel_crtc *intel_crtc, struct intel_crtc_state *crtc_state); -void skl_pfit_enable(const struct intel_crtc_state *crtc_state); +void skl_program_crtc_scaler(const struct intel_crtc_state *crtc_state, + const struct drm_rect *dst); void skl_program_plane_scaler(struct intel_plane *plane, const struct intel_crtc_state *crtc_state, -- 2.43.0