OSDN Git Service

drm/fb-helper: Schedule deferred-I/O worker after writing to framebuffer
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 15 Nov 2022 11:58:18 +0000 (12:58 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 16 Nov 2022 12:22:24 +0000 (13:22 +0100)
commit7f5cc4a3e5e4c5a38e5748defc952e45278f7a70
treeeaf671f7b9458b9410caed437e93115b1bd0003a
parent5fc586a058babc71c82a038477581b7bfe1c6e2a
drm/fb-helper: Schedule deferred-I/O worker after writing to framebuffer

Schedule the deferred-I/O worker instead of the damage worker after
writing to the fbdev framebuffer. The deferred-I/O worker then performs
the dirty-fb update. The fbdev emulation will initialize deferred I/O
for all drivers that require damage updates. It is therefore a valid
assumption that the deferred-I/O worker is present.

It would be possible to perform the damage handling directly from within
the write operation. But doing this could increase the overhead of the
write or interfere with a concurrently scheduled deferred-I/O worker.
Instead, scheduling the deferred-I/O worker with its regular delay of
50 ms removes load off the write operation and allows the deferred-I/O
worker to handle multiple write operations that arrived during the delay
time window.

v3:
* remove unused variable (lkp)
v2:
* keep drm_fb_helper_damage() (Daniel)
* use fb_deferred_io_schedule_flush() (Daniel)
* clarify comments (Daniel)

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-6-tzimmermann@suse.de
drivers/gpu/drm/drm_fb_helper.c
drivers/video/fbdev/core/fb_defio.c
include/linux/fb.h