[PATCH v2 05/10] drm/fb-helper: Return early in dirty worker

Sam Ravnborg sam at ravnborg.org
Mon Nov 23 19:23:37 UTC 2020


On Fri, Nov 20, 2020 at 11:25:40AM +0100, Thomas Zimmermann wrote:
> Returning early in the dirty worker if no update is required makes the
> code more readable. No functional changes are made.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>

It is a damage worker (both subject and changelog).

Reviewed-by: Sam Ravnborg <sam at ravnborg.org>

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 31 +++++++++++++++----------------
>  1 file changed, 15 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 87d4759de04a..c9018ffff5f9 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -407,24 +407,23 @@ static void drm_fb_helper_damage_work(struct work_struct *work)
>  	clip->x2 = clip->y2 = 0;
>  	spin_unlock_irqrestore(&helper->damage_lock, flags);
>  
> -	/* call dirty callback only when it has been really touched */
> -	if (clip_copy.x1 < clip_copy.x2 && clip_copy.y1 < clip_copy.y2) {
> -
> -		/* Generic fbdev uses a shadow buffer */
> -		if (helper->buffer) {
> -			ret = drm_client_buffer_vmap(helper->buffer, &map);
> -			if (ret)
> -				return;
> -			drm_fb_helper_damage_blit_real(helper, &clip_copy, &map);
> -		}
> -
> -		if (helper->fb->funcs->dirty)
> -			helper->fb->funcs->dirty(helper->fb, NULL, 0, 0,
> -						 &clip_copy, 1);
> +	/* Call damage handlers only if necessary */
> +	if (!(clip_copy.x1 < clip_copy.x2 && clip_copy.y1 < clip_copy.y2))
> +		return;
>  
> -		if (helper->buffer)
> -			drm_client_buffer_vunmap(helper->buffer);
> +	/* Generic fbdev uses a shadow buffer */
> +	if (helper->buffer) {
> +		ret = drm_client_buffer_vmap(helper->buffer, &map);
> +		if (ret)
> +			return;
> +		drm_fb_helper_damage_blit_real(helper, &clip_copy, &map);
>  	}
> +
> +	if (helper->fb->funcs->dirty)
> +		helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, &clip_copy, 1);
> +
> +	if (helper->buffer)
> +		drm_client_buffer_vunmap(helper->buffer);
>  }
>  
>  /**
> -- 
> 2.29.2
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list