drm/fb-helper: Set damage-clip area in helper
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 15 Nov 2022 11:58:14 +0000 (12:58 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 16 Nov 2022 12:06:58 +0000 (13:06 +0100)
Set the damage area in the new helper drm_fb_helper_add_damage_clip().
It can now be updated without scheduling the damage worker. This change
will help to remove the damage worker entirely. No functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20221115115819.23088-2-tzimmermann@suse.de
drivers/gpu/drm/drm_fb_helper.c

index e0384f9..1786155 100644 (file)
@@ -576,8 +576,8 @@ void drm_fb_helper_fini(struct drm_fb_helper *fb_helper)
 }
 EXPORT_SYMBOL(drm_fb_helper_fini);
 
-static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y,
-                                u32 width, u32 height)
+static void drm_fb_helper_add_damage_clip(struct drm_fb_helper *helper, u32 x, u32 y,
+                                         u32 width, u32 height)
 {
        struct drm_clip_rect *clip = &helper->damage_clip;
        unsigned long flags;
@@ -588,6 +588,12 @@ static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y,
        clip->x2 = max_t(u32, clip->x2, x + width);
        clip->y2 = max_t(u32, clip->y2, y + height);
        spin_unlock_irqrestore(&helper->damage_lock, flags);
+}
+
+static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y,
+                                u32 width, u32 height)
+{
+       drm_fb_helper_add_damage_clip(helper, x, y, width, height);
 
        schedule_work(&helper->damage_work);
 }