[Intel-gfx] [PATCH v5 0/5] drm: Add shmem GEM library
Noralf Trønnes
noralf at tronnes.org
Wed Oct 17 13:04:49 UTC 2018
This patchset adds a library for shmem backed GEM objects and makes use
of it in tinydrm.
Daniel suggested that I make a generic mmap function for GEM PRIME.
I wondered if I could make it the default for drm_driver->gem_prime_mmap
so I looked at all the drivers that don't set that callback:
- armada, i915, omap and udl has their own dmabuf implementations.
- nouveau and radeon use drm_gem_prime_export(), but don't set the
->gem_prime_mmap callback.
Making it default would change the behaviour of those last two so I let
it be.
I'm cc'ing intel-gfx to have the CI look at the core changes I've made.
I can't exercise all the codepaths using vc4 and tinydrm.
Noralf.
Changes since version 4:
- Add drm_gem_prime_mmap() (Daniel Vetter)
- Drop drm_gem_object_funcs->prime_mmap
- drm_gem_shmem_mmap(): Subtract drm_vma_node_start() to get the real
vma->vm_pgoff
- drm_gem_shmem_fault(): Use vmf->pgoff now that vma->vm_pgoff is
correct
Changes since version 3:
- Drop cache modes (Thomas Hellstrom)
- Add a GEM object attached vtable
Changes since version 2:
- Grammar (Sam Ravnborg)
- s/drm_gem_shmem_put_pages_unlocked/drm_gem_shmem_put_pages_locked/
(Sam Ravnborg)
- Add debug ouput in error path (Sam Ravnborg)
Changes since version 1:
- Fix missing argument in docs (kbuild test robot)
- Fix: sparse: expression using sizeof(void) (kbuild test robot)
- Rebasing gave a new checkpatch warning, so I changed to bitfields:
CHECK: Avoid using bool structure members because of possible alignment
issues - see: https://lkml.org/lkml/2017/11/21/384
#834: FILE: include/drm/drm_gem_shmem_helper.h:84:
+ bool pages_mark_dirty_on_put;
#841: FILE: include/drm/drm_gem_shmem_helper.h:91:
+ bool pages_mark_accessed_on_put;
Noralf Trønnes (5):
drm/driver: Add defaults for .gem_prime_export/import callbacks
drm/prime: Add drm_gem_prime_mmap()
drm/gem: Add drm_gem_object_funcs
drm: Add library for shmem backed GEM objects
drm/tinydrm: Switch from CMA to shmem buffers
Documentation/gpu/drm-kms-helpers.rst | 12 +
Documentation/gpu/todo.rst | 7 +
drivers/gpu/drm/Kconfig | 6 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/drm_client.c | 12 +-
drivers/gpu/drm/drm_gem.c | 109 ++++-
drivers/gpu/drm/drm_gem_shmem_helper.c | 551 +++++++++++++++++++++++++
drivers/gpu/drm/drm_prime.c | 79 +++-
drivers/gpu/drm/tinydrm/Kconfig | 2 +-
drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 92 ++---
drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 5 +
drivers/gpu/drm/tinydrm/ili9225.c | 14 +-
drivers/gpu/drm/tinydrm/ili9341.c | 6 +-
drivers/gpu/drm/tinydrm/mi0283qt.c | 6 +-
drivers/gpu/drm/tinydrm/mipi-dbi.c | 38 +-
drivers/gpu/drm/tinydrm/repaper.c | 24 +-
drivers/gpu/drm/tinydrm/st7586.c | 15 +-
drivers/gpu/drm/tinydrm/st7735r.c | 6 +-
include/drm/drm_drv.h | 4 +
include/drm/drm_gem.h | 131 ++++++
include/drm/drm_gem_shmem_helper.h | 153 +++++++
include/drm/drm_prime.h | 1 +
include/drm/tinydrm/tinydrm.h | 36 +-
23 files changed, 1122 insertions(+), 188 deletions(-)
create mode 100644 drivers/gpu/drm/drm_gem_shmem_helper.c
create mode 100644 include/drm/drm_gem_shmem_helper.h
--
2.15.1
More information about the Intel-gfx
mailing list