[PATCH v2 05/10] drm/fb-helper: Return early in dirty worker
Thomas Zimmermann
tzimmermann at suse.de
Fri Nov 20 10:25:40 UTC 2020
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>
---
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
More information about the dri-devel
mailing list