[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