drm/udl: Switch to SHMEM

Udl's GEM code and the generic SHMEM are almost identical. Replace
the former with SHMEM. The dmabuf support in udl is being replaced
with generic GEM PRIME functions.

The main difference is in the caching flags for mmap pages. By
default, SHMEM always sets (uncached) write combining. In udl's
memory management code, only imported buffers use write combining.
Memory pages of locally created buffer objects are mmap'ed with
caching enabled. To keep the optimization, udl provides its own
mmap function for GEM objects where it fixes up the mapping flags.

v3:
	- restore udl vmap that enables caching
v2:
	- remove obsolete code in a separate patch

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191107094307.19870-4-tzimmermann@suse.de
This commit is contained in:
Thomas Zimmermann
2019-11-07 10:43:06 +01:00
parent 1d48b9e988
commit 08b22f65b3
5 changed files with 138 additions and 60 deletions

View File

@@ -85,6 +85,7 @@ struct udl_gem_object {
struct udl_framebuffer {
struct drm_framebuffer base;
struct udl_gem_object *obj;
struct drm_gem_shmem_object *shmem;
bool active_16; /* active on the 16-bit channel */
};