drm/log: Batch vmap/vunmap and flush for record drawing

drm_log_draw_new_line() calls drm_log_clear_line() and
drm_log_draw_line(), which independently call
drm_client_buffer_vmap_local(), drm_client_buffer_vunmap_local(),
and drm_client_buffer_flush(). For each call to
drm_log_draw_new_line(), this results in 2 vmap/vunmap pairs and
2 flush calls, even though vmap_local maps the entire framebuffer
each time.

Refactor drm_log_clear_line() and drm_log_draw_line() to accept a
pre-mapped iosys_map by value, removing the per-line vmap/vunmap/flush
calls. Move the single vmap/vunmap pair and flush up to
drm_log_draw_new_line(), which now maps once before clearing and
drawing, then issues a single flush after unmapping.

Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
Link: https://patch.msgid.link/20260729084823.693723-1-oushixiong1025@163.com
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
This commit is contained in:
Shixiong Ou 2026-07-29 16:48:23 +08:00 • committed by Jocelyn Falempe
commit 0d46312808