]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
drm/fb-helper: Map DRM client buffer only when required
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 3 Jul 2019 07:58:24 +0000 (09:58 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 1 Aug 2019 13:01:29 +0000 (15:01 +0200)
commit87e281f88f3aa4ed401554f793685bcb2463580a
treec50533aa20911efb278962f3026d3c06ce726457
parentd9b42dfab513c9130ee0458f2e6febb75c89d1c8
drm/fb-helper: Map DRM client buffer only when required

This patch changes DRM clients to not map the buffer by default. The
buffer, like any buffer object, should be mapped and unmapped when
needed.

An unmapped buffer object can be evicted to system memory and does
not consume video ram until displayed. This allows to use generic fbdev
emulation with drivers for low-memory devices, such as ast and mgag200.

This change affects the generic framebuffer console. HW-based consoles
map their console buffer once and keep it mapped. Userspace can mmap this
buffer into its address space. The shadow-buffered framebuffer console
only needs the buffer object to be mapped during updates. While not being
updated from the shadow buffer, the buffer object can remain unmapped.
Userspace will always mmap the shadow buffer.

v2:
* change DRM client to not map buffer by default
* manually map client buffer for fbdev with HW framebuffer

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/315830/
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/drm_client.c
drivers/gpu/drm/drm_fb_helper.c