drm/fb-helper: Call dirty helper after writing to fbdev
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 20 Nov 2020 10:25:36 +0000 (11:25 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 24 Nov 2020 08:19:40 +0000 (09:19 +0100)
If fbdev uses a shadow framebuffer, call the damage handler. Otherwise
the update might not make it to the screen.

v2:
* mark virtual screen as dirty (Ville)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: 222ec45f4c69 ("drm/fb_helper: Support framebuffers in I/O memory")
Acked-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Link: https://patchwork.freedesktop.org/patch/msgid/20201120102545.4047-2-tzimmermann@suse.de
drivers/gpu/drm/drm_fb_helper.c

index 25edf670867c6f79adcd777f75daca684bb577f9..9c673f33d22216c64aabaf5958de055852c81457 100644 (file)
@@ -2189,6 +2189,9 @@ static ssize_t drm_fbdev_fb_write(struct fb_info *info, const char __user *buf,
        if (ret > 0)
                *ppos += ret;
 
+       if (ret > 0)
+               drm_fb_helper_dirty(info, 0, 0, info->var.xres_virtual, info->var.yres_virtual);
+
        return ret ? ret : err;
 }