• Thomas Zimmermann's avatar
    drm/client: Support unmapping of DRM client buffers · d9b42dfa
    Thomas Zimmermann authored
    DRM clients, such as the fbdev emulation, have their buffer objects
    mapped by default. Mapping a buffer implicitly prevents its relocation.
    Hence, the buffer may permanently consume video memory while it's
    allocated. This is a problem for drivers of low-memory devices, such as
    ast, mgag200 or older framebuffer hardware, which will then not have
    enough memory to display other content (e.g., X11).
    
    This patch introduces drm_client_buffer_vmap() and _vunmap(). Internal
    DRM clients can use these functions to unmap and remap buffer objects
    as needed.
    
    There's no reference counting for vmap operations. Callers are expected
    to either keep buffers mapped (as it is now), or call vmap and vunmap
    in pairs around code that accesses the mapped memory.
    
    v2:
    	* remove several duplicated NULL-pointer checks
    v3:
    	* style and typo fixes
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Link: https://patchwork.freedesktop.org/patch/315831/Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    d9b42dfa
drm_client.c 12.1 KB