[Intel-gfx] [PATCH 02/18] drm/i915: s/tile_offset/aligned_offset/

Souza, Jose jose.souza at intel.com
Wed Aug 22 21:55:45 UTC 2018


On Thu, 2018-07-19 at 21:21 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Rename some of the tile_offset() functions to aligned_offset() since
> they operate on both linear and tiled functions. And we'll include
> _plane_ in the name of all the variants that take a plane state.
> Should make it more clear which function to use where.
> 

Maybe rename the title as it is not doing only
s/tile_offset/aligned_offset/ as described in the commit message and in
code.

Reviewed-by: José Roberto de Souza <jose.souza at intel.com>


> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 123 ++++++++++++++++++-------
> ----------
>  drivers/gpu/drm/i915/intel_drv.h     |   2 -
>  2 files changed, 63 insertions(+), 62 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index 8efff0c56920..5f8304a11482 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2229,13 +2229,13 @@ void intel_add_fb_offsets(int *x, int *y,
>  	}
>  }
>  
> -static u32 __intel_adjust_tile_offset(int *x, int *y,
> -				      unsigned int tile_width,
> -				      unsigned int tile_height,
> -				      unsigned int tile_size,
> -				      unsigned int pitch_tiles,
> -				      u32 old_offset,
> -				      u32 new_offset)
> +static u32 intel_adjust_tile_offset(int *x, int *y,
> +				    unsigned int tile_width,
> +				    unsigned int tile_height,
> +				    unsigned int tile_size,
> +				    unsigned int pitch_tiles,
> +				    u32 old_offset,
> +				    u32 new_offset)
>  {
>  	unsigned int pitch_pixels = pitch_tiles * tile_width;
>  	unsigned int tiles;
> @@ -2256,12 +2256,12 @@ static u32 __intel_adjust_tile_offset(int *x,
> int *y,
>  	return new_offset;
>  }
>  
> -static u32 _intel_adjust_tile_offset(int *x, int *y,
> -				     const struct drm_framebuffer *fb,
> int plane,
> -				     unsigned int rotation,
> -				     u32 old_offset, u32 new_offset)
> +static u32 intel_adjust_aligned_offset(int *x, int *y,
> +				       const struct drm_framebuffer
> *fb, int plane,
> +				       unsigned int rotation,
> +				       u32 old_offset, u32 new_offset)
>  {
> -	const struct drm_i915_private *dev_priv = to_i915(fb->dev);
> +	struct drm_i915_private *dev_priv = to_i915(fb->dev);
>  	unsigned int cpp = fb->format->cpp[plane];
>  	unsigned int pitch = intel_fb_pitch(fb, plane, rotation);
>  
> @@ -2281,9 +2281,9 @@ static u32 _intel_adjust_tile_offset(int *x,
> int *y,
>  			pitch_tiles = pitch / (tile_width * cpp);
>  		}
>  
> -		__intel_adjust_tile_offset(x, y, tile_width,
> tile_height,
> -					   tile_size, pitch_tiles,
> -					   old_offset, new_offset);
> +		intel_adjust_tile_offset(x, y, tile_width, tile_height,
> +					 tile_size, pitch_tiles,
> +					 old_offset, new_offset);
>  	} else {
>  		old_offset += *y * pitch + *x * cpp;
>  
> @@ -2298,17 +2298,18 @@ static u32 _intel_adjust_tile_offset(int *x,
> int *y,
>   * Adjust the tile offset by moving the difference into
>   * the x/y offsets.
>   */
> -static u32 intel_adjust_tile_offset(int *x, int *y,
> -				    const struct intel_plane_state
> *state, int plane,
> -				    u32 old_offset, u32 new_offset)
> +static u32 intel_plane_adjust_aligned_offset(int *x, int *y,
> +					     const struct
> intel_plane_state *state,
> +					     int plane,
> +					     u32 old_offset, u32
> new_offset)
>  {
> -	return _intel_adjust_tile_offset(x, y, state->base.fb, plane,
> -					 state->base.rotation,
> -					 old_offset, new_offset);
> +	return intel_adjust_aligned_offset(x, y, state->base.fb, plane,
> +					   state->base.rotation,
> +					   old_offset, new_offset);
>  }
>  
>  /*
> - * Computes the linear offset to the base tile and adjusts
> + * Computes the aligned offset to the base tile and adjusts
>   * x, y. bytes per pixel is assumed to be a power-of-two.
>   *
>   * In the 90/270 rotated case, x and y are assumed
> @@ -2321,12 +2322,12 @@ static u32 intel_adjust_tile_offset(int *x,
> int *y,
>   * used. This is why the user has to pass in the pitch since it
>   * is specified in the rotated orientation.
>   */
> -static u32 _intel_compute_tile_offset(const struct drm_i915_private
> *dev_priv,
> -				      int *x, int *y,
> -				      const struct drm_framebuffer *fb,
> int plane,
> -				      unsigned int pitch,
> -				      unsigned int rotation,
> -				      u32 alignment)
> +static u32 intel_compute_aligned_offset(struct drm_i915_private
> *dev_priv,
> +					int *x, int *y,
> +					const struct drm_framebuffer
> *fb, int plane,
> +					unsigned int pitch,
> +					unsigned int rotation,
> +					u32 alignment)
>  {
>  	uint64_t fb_modifier = fb->modifier;
>  	unsigned int cpp = fb->format->cpp[plane];
> @@ -2358,9 +2359,9 @@ static u32 _intel_compute_tile_offset(const
> struct drm_i915_private *dev_priv,
>  		offset = (tile_rows * pitch_tiles + tiles) * tile_size;
>  		offset_aligned = offset & ~alignment;
>  
> -		__intel_adjust_tile_offset(x, y, tile_width,
> tile_height,
> -					   tile_size, pitch_tiles,
> -					   offset, offset_aligned);
> +		intel_adjust_tile_offset(x, y, tile_width, tile_height,
> +					 tile_size, pitch_tiles,
> +					 offset, offset_aligned);
>  	} else {
>  		offset = *y * pitch + *x * cpp;
>  		offset_aligned = offset & ~alignment;
> @@ -2372,9 +2373,9 @@ static u32 _intel_compute_tile_offset(const
> struct drm_i915_private *dev_priv,
>  	return offset_aligned;
>  }
>  
> -u32 intel_compute_tile_offset(int *x, int *y,
> -			      const struct intel_plane_state *state,
> -			      int plane)
> +static u32 intel_plane_compute_aligned_offset(int *x, int *y,
> +					      const struct
> intel_plane_state *state,
> +					      int plane)
>  {
>  	struct intel_plane *intel_plane = to_intel_plane(state-
> >base.plane);
>  	struct drm_i915_private *dev_priv = to_i915(intel_plane-
> >base.dev);
> @@ -2388,8 +2389,8 @@ u32 intel_compute_tile_offset(int *x, int *y,
>  	else
>  		alignment = intel_surf_alignment(fb, plane);
>  
> -	return _intel_compute_tile_offset(dev_priv, x, y, fb, plane,
> pitch,
> -					  rotation, alignment);
> +	return intel_compute_aligned_offset(dev_priv, x, y, fb, plane,
> +					    pitch, rotation,
> alignment);
>  }
>  
>  /* Convert the fb->offset[] into x/y offsets */
> @@ -2405,9 +2406,9 @@ static int intel_fb_offset_to_xy(int *x, int
> *y,
>  	*x = 0;
>  	*y = 0;
>  
> -	_intel_adjust_tile_offset(x, y,
> -				  fb, plane, DRM_MODE_ROTATE_0,
> -				  fb->offsets[plane], 0);
> +	intel_adjust_aligned_offset(x, y,
> +				    fb, plane, DRM_MODE_ROTATE_0,
> +				    fb->offsets[plane], 0);
>  
>  	return 0;
>  }
> @@ -2559,9 +2560,10 @@ intel_fill_fb_info(struct drm_i915_private
> *dev_priv,
>  		intel_fb->normal[i].x = x;
>  		intel_fb->normal[i].y = y;
>  
> -		offset = _intel_compute_tile_offset(dev_priv, &x, &y,
> -						    fb, i, fb-
> >pitches[i],
> -						    DRM_MODE_ROTATE_0,
> tile_size);
> +		offset = intel_compute_aligned_offset(dev_priv, &x, &y,
> fb, i,
> +						      fb->pitches[i],
> +						      DRM_MODE_ROTATE_0
> ,
> +						      tile_size);
>  		offset /= tile_size;
>  
>  		if (fb->modifier != DRM_FORMAT_MOD_LINEAR) {
> @@ -2608,10 +2610,10 @@ intel_fill_fb_info(struct drm_i915_private
> *dev_priv,
>  			 * We only keep the x/y offsets, so push all of
> the
>  			 * gtt offset into the x/y offsets.
>  			 */
> -			__intel_adjust_tile_offset(&x, &y,
> -						   tile_width,
> tile_height,
> -						   tile_size,
> pitch_tiles,
> -						   gtt_offset_rotated *
> tile_size, 0);
> +			intel_adjust_tile_offset(&x, &y,
> +						 tile_width,
> tile_height,
> +						 tile_size,
> pitch_tiles,
> +						 gtt_offset_rotated *
> tile_size, 0);
>  
>  			gtt_offset_rotated += rot_info->plane[i].width
> * rot_info->plane[i].height;
>  
> @@ -2960,8 +2962,8 @@ static bool
> skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state
>  
>  		x = aux_x / hsub;
>  		y = aux_y / vsub;
> -		aux_offset = intel_adjust_tile_offset(&x, &y,
> plane_state, 1,
> -						      aux_offset,
> aux_offset - alignment);
> +		aux_offset = intel_plane_adjust_aligned_offset(&x, &y,
> plane_state, 1,
> +							       aux_offs
> et, aux_offset - alignment);
>  		aux_x = x * hsub + aux_x % hsub;
>  		aux_y = y * vsub + aux_y % vsub;
>  	}
> @@ -3019,7 +3021,7 @@ static int skl_check_main_surface(const struct
> intel_crtc_state *crtc_state,
>  	}
>  
>  	intel_add_fb_offsets(&x, &y, plane_state, 0);
> -	offset = intel_compute_tile_offset(&x, &y, plane_state, 0);
> +	offset = intel_plane_compute_aligned_offset(&x, &y,
> plane_state, 0);
>  	alignment = intel_surf_alignment(fb, 0);
>  
>  	/*
> @@ -3028,8 +3030,8 @@ static int skl_check_main_surface(const struct
> intel_crtc_state *crtc_state,
>  	 * sure that is what we will get.
>  	 */
>  	if (offset > aux_offset)
> -		offset = intel_adjust_tile_offset(&x, &y, plane_state,
> 0,
> -						  offset, aux_offset &
> ~(alignment - 1));
> +		offset = intel_plane_adjust_aligned_offset(&x, &y,
> plane_state, 0,
> +							   offset,
> aux_offset & ~(alignment - 1));
>  
>  	/*
>  	 * When using an X-tiled surface, the plane blows up
> @@ -3046,8 +3048,8 @@ static int skl_check_main_surface(const struct
> intel_crtc_state *crtc_state,
>  				return -EINVAL;
>  			}
>  
> -			offset = intel_adjust_tile_offset(&x, &y,
> plane_state, 0,
> -							  offset,
> offset - alignment);
> +			offset = intel_plane_adjust_aligned_offset(&x,
> &y, plane_state, 0,
> +								   offs
> et, offset - alignment);
>  		}
>  	}
>  
> @@ -3061,8 +3063,8 @@ static int skl_check_main_surface(const struct
> intel_crtc_state *crtc_state,
>  			if (offset == 0)
>  				break;
>  
> -			offset = intel_adjust_tile_offset(&x, &y,
> plane_state, 0,
> -							  offset,
> offset - alignment);
> +			offset = intel_plane_adjust_aligned_offset(&x,
> &y, plane_state, 0,
> +								   offs
> et, offset - alignment);
>  		}
>  
>  		if (x != plane_state->aux.x || y != plane_state->aux.y) 
> {
> @@ -3114,7 +3116,7 @@ static int skl_check_nv12_aux_surface(struct
> intel_plane_state *plane_state)
>  	u32 offset;
>  
>  	intel_add_fb_offsets(&x, &y, plane_state, 1);
> -	offset = intel_compute_tile_offset(&x, &y, plane_state, 1);
> +	offset = intel_plane_compute_aligned_offset(&x, &y,
> plane_state, 1);
>  
>  	/* FIXME not quite sure how/if these apply to the chroma plane
> */
>  	if (w > max_width || h > max_height) {
> @@ -3148,7 +3150,7 @@ static int skl_check_ccs_aux_surface(struct
> intel_plane_state *plane_state)
>  	}
>  
>  	intel_add_fb_offsets(&x, &y, plane_state, 1);
> -	offset = intel_compute_tile_offset(&x, &y, plane_state, 1);
> +	offset = intel_plane_compute_aligned_offset(&x, &y,
> plane_state, 1);
>  
>  	plane_state->aux.offset = offset;
>  	plane_state->aux.x = x * hsub + src_x % hsub;
> @@ -3281,8 +3283,8 @@ int i9xx_check_plane_surface(struct
> intel_plane_state *plane_state)
>  	intel_add_fb_offsets(&src_x, &src_y, plane_state, 0);
>  
>  	if (INTEL_GEN(dev_priv) >= 4)
> -		offset = intel_compute_tile_offset(&src_x, &src_y,
> -						   plane_state, 0);
> +		offset = intel_plane_compute_aligned_offset(&src_x,
> &src_y,
> +							    plane_state
> , 0);
>  	else
>  		offset = 0;
>  
> @@ -9657,7 +9659,8 @@ static int intel_check_cursor(struct
> intel_crtc_state *crtc_state,
>  	src_y = plane_state->base.src_y >> 16;
>  
>  	intel_add_fb_offsets(&src_x, &src_y, plane_state, 0);
> -	offset = intel_compute_tile_offset(&src_x, &src_y, plane_state,
> 0);
> +	offset = intel_plane_compute_aligned_offset(&src_x, &src_y,
> +						    plane_state, 0);
>  
>  	if (src_x != 0 || src_y != 0) {
>  		DRM_DEBUG_KMS("Arbitrary cursor panning not
> supported\n");
> diff --git a/drivers/gpu/drm/i915/intel_drv.h
> b/drivers/gpu/drm/i915/intel_drv.h
> index c275f91244a6..b9f6de3a8f53 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1604,8 +1604,6 @@ void assert_fdi_rx_pll(struct drm_i915_private
> *dev_priv,
>  void assert_pipe(struct drm_i915_private *dev_priv, enum pipe pipe,
> bool state);
>  #define assert_pipe_enabled(d, p) assert_pipe(d, p, true)
>  #define assert_pipe_disabled(d, p) assert_pipe(d, p, false)
> -u32 intel_compute_tile_offset(int *x, int *y,
> -			      const struct intel_plane_state *state,
> int plane);
>  void intel_prepare_reset(struct drm_i915_private *dev_priv);
>  void intel_finish_reset(struct drm_i915_private *dev_priv);
>  void hsw_enable_pc8(struct drm_i915_private *dev_priv);


More information about the Intel-gfx mailing list