[Intel-gfx] [PATCH 04/15] drm/i915: Relocate skl_get_pfit_config()
Jani Nikula
jani.nikula at linux.intel.com
Wed Apr 19 15:17:35 UTC 2023
On Tue, 18 Apr 2023, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Move skl_get_pfit_config() next to the other skl+ scaler code
> and rename it to skl_scaler_get_config() so that it has a consistnet
> namespace.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 49 ++------------------
> drivers/gpu/drm/i915/display/skl_scaler.c | 37 +++++++++++++++
> drivers/gpu/drm/i915/display/skl_scaler.h | 2 +
> 3 files changed, 43 insertions(+), 45 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 1c264c17b6e4..a450d62e431c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3224,49 +3224,6 @@ void intel_cpu_transcoder_get_m2_n2(struct intel_crtc *crtc,
> PIPE_LINK_M2(transcoder), PIPE_LINK_N2(transcoder));
> }
>
> -static void ilk_get_pfit_pos_size(struct intel_crtc_state *crtc_state,
> - u32 pos, u32 size)
> -{
> - drm_rect_init(&crtc_state->pch_pfit.dst,
> - pos >> 16, pos & 0xffff,
> - size >> 16, size & 0xffff);
> -}
> -
> -static void skl_get_pfit_config(struct intel_crtc_state *crtc_state)
> -{
> - struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> - struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> - struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
> - int id = -1;
> - int i;
> -
> - /* find scaler attached to this pipe */
> - for (i = 0; i < crtc->num_scalers; i++) {
> - u32 ctl, pos, size;
> -
> - ctl = intel_de_read(dev_priv, SKL_PS_CTRL(crtc->pipe, i));
> - if ((ctl & (PS_SCALER_EN | PS_PLANE_SEL_MASK)) != PS_SCALER_EN)
> - continue;
> -
> - id = i;
> - crtc_state->pch_pfit.enabled = true;
> -
> - pos = intel_de_read(dev_priv, SKL_PS_WIN_POS(crtc->pipe, i));
> - size = intel_de_read(dev_priv, SKL_PS_WIN_SZ(crtc->pipe, i));
> -
> - ilk_get_pfit_pos_size(crtc_state, pos, size);
> -
> - scaler_state->scalers[i].in_use = true;
> - break;
> - }
> -
> - scaler_state->scaler_id = id;
> - if (id >= 0)
> - scaler_state->scaler_users |= (1 << SKL_CRTC_INDEX);
> - else
> - scaler_state->scaler_users &= ~(1 << SKL_CRTC_INDEX);
> -}
> -
> static void ilk_get_pfit_config(struct intel_crtc_state *crtc_state)
> {
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -3282,7 +3239,9 @@ static void ilk_get_pfit_config(struct intel_crtc_state *crtc_state)
> pos = intel_de_read(dev_priv, PF_WIN_POS(crtc->pipe));
> size = intel_de_read(dev_priv, PF_WIN_SZ(crtc->pipe));
>
> - ilk_get_pfit_pos_size(crtc_state, pos, size);
> + drm_rect_init(&crtc_state->pch_pfit.dst,
> + pos >> 16, pos & 0xffff,
> + size >> 16, size & 0xffff);
>
> /*
> * We currently do not free assignements of panel fitters on
> @@ -3773,7 +3732,7 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
> if (intel_display_power_get_in_set_if_enabled(dev_priv, &crtc->hw_readout_power_domains,
> POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe))) {
> if (DISPLAY_VER(dev_priv) >= 9)
> - skl_get_pfit_config(pipe_config);
> + skl_scaler_get_config(pipe_config);
> else
> ilk_get_pfit_config(pipe_config);
> }
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
> index 62443834f64e..ec930aec21c4 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> @@ -856,3 +856,40 @@ void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state)
> for (i = 0; i < crtc->num_scalers; i++)
> skl_detach_scaler(crtc, i);
> }
> +
> +void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
> +{
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> + struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
> + int id = -1;
> + int i;
> +
> + /* find scaler attached to this pipe */
> + for (i = 0; i < crtc->num_scalers; i++) {
> + u32 ctl, pos, size;
> +
> + ctl = intel_de_read(dev_priv, SKL_PS_CTRL(crtc->pipe, i));
> + if ((ctl & (PS_SCALER_EN | PS_PLANE_SEL_MASK)) != PS_SCALER_EN)
> + continue;
> +
> + id = i;
> + crtc_state->pch_pfit.enabled = true;
> +
> + pos = intel_de_read(dev_priv, SKL_PS_WIN_POS(crtc->pipe, i));
> + size = intel_de_read(dev_priv, SKL_PS_WIN_SZ(crtc->pipe, i));
> +
> + drm_rect_init(&crtc_state->pch_pfit.dst,
> + pos >> 16, pos & 0xffff,
> + size >> 16, size & 0xffff);
> +
> + scaler_state->scalers[i].in_use = true;
> + break;
> + }
> +
> + scaler_state->scaler_id = id;
> + if (id >= 0)
> + scaler_state->scaler_users |= (1 << SKL_CRTC_INDEX);
> + else
> + scaler_state->scaler_users &= ~(1 << SKL_CRTC_INDEX);
> +}
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h
> index f040f6ac061f..63f93ca03c89 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.h
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.h
> @@ -32,4 +32,6 @@ void skl_program_plane_scaler(struct intel_plane *plane,
> void skl_detach_scalers(const struct intel_crtc_state *crtc_state);
> void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state);
>
> +void skl_scaler_get_config(struct intel_crtc_state *crtc_state);
> +
> #endif
--
Jani Nikula, Intel Open Source Graphics Center
More information about the Intel-gfx
mailing list