drm/omapdrm: Fix console by implementing fb_dirty
authorTony Lindgren <tony@atomide.com>
Wed, 28 Feb 2024 06:35:31 +0000 (08:35 +0200)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Mon, 18 Mar 2024 11:43:38 +0000 (13:43 +0200)
The framebuffer console stopped updating with commit f231af498c29
("drm/fb-helper: Disconnect damage worker from update logic").

Let's fix the issue by implementing fb_dirty similar to what was done
with commit 039a72ce7e57 ("drm/i915/fbdev: Implement fb_dirty for intel
custom fb helper").

Fixes: f231af498c29 ("drm/fb-helper: Disconnect damage worker from update logic")
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240228063540.4444-2-tony@atomide.com
drivers/gpu/drm/omapdrm/omap_fbdev.c

index 6b08b137af1ad8847cae2f7bb5e4c5651f5c1151..7c5af3de1e7271a7eec97be9569da4fb5890b802 100644 (file)
@@ -238,8 +238,20 @@ fail:
        return ret;
 }
 
+static int omap_fbdev_dirty(struct drm_fb_helper *helper, struct drm_clip_rect *clip)
+{
+       if (!(clip->x1 < clip->x2 && clip->y1 < clip->y2))
+               return 0;
+
+       if (helper->fb->funcs->dirty)
+               return helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, clip, 1);
+
+       return 0;
+}
+
 static const struct drm_fb_helper_funcs omap_fb_helper_funcs = {
        .fb_probe = omap_fbdev_create,
+       .fb_dirty = omap_fbdev_dirty,
 };
 
 static struct drm_fb_helper *get_fb(struct fb_info *fbi)