[Intel-gfx] [PATCH v2 13/13] drm/i915: Pass the plane to icl_program_input_csc_coeff()

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Thu Nov 15 12:37:23 UTC 2018


Op 14-11-18 om 22:07 schreef Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> On icl+ the plane state that gets passed to update_slave() is not
> the plane state of the plane we're programming. With NV12 the
> plane state would be coming from the master (UV) plane whereas
> the plane we're programming is the slave (Y) plane. For that reason
> we need to explicitly pass around the slave plane (or we'd have to
> otherwise deduce it by checking whether we were called via
> .update_plane() or .update_slave()).
>
> In the case of icl_program_input_csc_coeff() it's actually OK to
> assume that we are always the master plane because the input CSC
> only exists on HDR planes which can never be a slave plane. But
> for consistency let's pass in the plane explicitly anyway.
>
> While at it drop the "_coeff" from the function name since it's
> kinda redundant, and this makes the name a bit shorter :)
>
> Cc: Uma Shankar <uma.shankar at intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 14 ++++++--------
>  1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 0262159e7084..ee4c37a613f7 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -373,14 +373,12 @@ skl_program_scaler(struct intel_plane *plane,
>  #define  BOFF(x)          (((x) & 0xffff) << 16)
>  
>  static void
> -icl_program_input_csc_coeff(const struct intel_crtc_state *crtc_state,
> -			    const struct intel_plane_state *plane_state)
> +icl_program_input_csc(struct intel_plane *plane,
> +		      const struct intel_crtc_state *crtc_state,
> +		      const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> -	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> -	enum pipe pipe = crtc->pipe;
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> +	enum pipe pipe = plane->pipe;
>  	enum plane_id plane_id = plane->id;
>  
>  	static const u16 input_csc_matrix[][9] = {
> @@ -540,7 +538,7 @@ skl_program_plane(struct intel_plane *plane,
>  			      plane_state->color_ctl);
>  
>  	if (fb->format->is_yuv && icl_is_hdr_plane(plane))
> -		icl_program_input_csc_coeff(crtc_state, plane_state);
> +		icl_program_input_csc(plane, crtc_state, plane_state);
>  
>  	skl_write_plane_wm(plane, crtc_state);
>  

Whole series looks good to me.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>



More information about the Intel-gfx mailing list