[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