[Intel-gfx] [PATCH 02/18] drm/i915: Pass stride to rotate_pages()

Daniel Vetter daniel at ffwll.ch
Mon Jan 25 08:52:02 PST 2016


On Wed, Jan 20, 2016 at 09:05:23PM +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Pass stride in addition to width and height to rotate_pages(). For now
> width and stride are the same, but once framebuffer offsets enter the
> scene that may no longer be the case.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index a3ea6b15c762..d547eecac242 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3333,6 +3333,7 @@ i915_gem_obj_lookup_or_create_ggtt_vma(struct drm_i915_gem_object *obj,
>  static struct scatterlist *
>  rotate_pages(const dma_addr_t *in, unsigned int offset,
>  	     unsigned int width, unsigned int height,
> +	     unsigned int stride,
>  	     struct sg_table *st, struct scatterlist *sg)
>  {
>  	unsigned int column, row;
> @@ -3344,7 +3345,7 @@ rotate_pages(const dma_addr_t *in, unsigned int offset,
>  	}
>  
>  	for (column = 0; column < width; column++) {
> -		src_idx = width * (height - 1) + column;
> +		src_idx = stride * (height - 1) + column;
>  		for (row = 0; row < height; row++) {
>  			st->nents++;
>  			/* We don't need the pages, but need to initialize
> @@ -3355,7 +3356,7 @@ rotate_pages(const dma_addr_t *in, unsigned int offset,
>  			sg_dma_address(sg) = in[offset + src_idx];
>  			sg_dma_len(sg) = PAGE_SIZE;
>  			sg = sg_next(sg);
> -			src_idx -= width;
> +			src_idx -= stride;
>  		}
>  	}
>  
> @@ -3408,6 +3409,7 @@ intel_rotate_fb_obj_pages(struct i915_ggtt_view *ggtt_view,
>  	/* Rotate the pages. */
>  	sg = rotate_pages(page_addr_list, 0,
>  		     rot_info->width_pages, rot_info->height_pages,
> +		     rot_info->width_pages,
>  		     st, NULL);
>  
>  	/* Append the UV plane if NV12. */
> @@ -3423,6 +3425,7 @@ intel_rotate_fb_obj_pages(struct i915_ggtt_view *ggtt_view,
>  		rotate_pages(page_addr_list, uv_start_page,
>  			     rot_info->width_pages_uv,
>  			     rot_info->height_pages_uv,
> +			     rot_info->width_pages_uv,
>  			     st, sg);
>  	}
>  
> -- 
> 2.4.10
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list