[Intel-gfx] [PATCH 13/18] drm/i915: Move the NULL sg handling out from rotate_pages()

Daniel Vetter daniel at ffwll.ch
Mon Jan 25 09:40:08 PST 2016


On Wed, Jan 20, 2016 at 09:05:34PM +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> rotate_pages() checks to see if it got called with a NULL sg, and then
> goes to extract it from sg->sgl. It always gets called with a NULL sg
> for the first plane, so moving the initial 'sg=st->sgl' assignment out
> into intel_rotate_fb_obj_pages() seems less special-casey.
> 
> 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 | 18 ++++++++----------
>  1 file changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index f95468cd0470..db80ec08cca4 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3339,11 +3339,6 @@ rotate_pages(const dma_addr_t *in, unsigned int offset,
>  	unsigned int column, row;
>  	unsigned int src_idx;
>  
> -	if (!sg) {
> -		st->nents = 0;
> -		sg = st->sgl;
> -	}
> -
>  	for (column = 0; column < width; column++) {
>  		src_idx = stride * (height - 1) + column;
>  		for (row = 0; row < height; row++) {
> @@ -3405,11 +3400,14 @@ intel_rotate_fb_obj_pages(struct intel_rotation_info *rot_info,
>  		i++;
>  	}
>  
> +	st->nents = 0;
> +	sg = st->sgl;
> +
>  	/* Rotate the pages. */
>  	sg = rotate_pages(page_addr_list, 0,
>  			  rot_info->plane[0].width, rot_info->plane[0].height,
>  			  rot_info->plane[0].width,
> -			  st, NULL);
> +			  st, sg);
>  
>  	/* Append the UV plane if NV12. */
>  	if (rot_info->pixel_format == DRM_FORMAT_NV12) {
> @@ -3421,10 +3419,10 @@ intel_rotate_fb_obj_pages(struct intel_rotation_info *rot_info,
>  
>  		rot_info->uv_start_page = uv_start_page;
>  
> -		rotate_pages(page_addr_list, rot_info->uv_start_page,
> -			     rot_info->plane[1].width, rot_info->plane[1].height,
> -			     rot_info->plane[1].width,
> -			     st, sg);
> +		sg = rotate_pages(page_addr_list, rot_info->uv_start_page,
> +				  rot_info->plane[1].width, rot_info->plane[1].height,
> +				  rot_info->plane[1].width,
> +				  st, sg);
>  	}
>  
>  	DRM_DEBUG_KMS("Created rotated page mapping for object size %zu (%ux%u tiles, %u pages (%u plane 0)).\n",
> -- 
> 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