Hi,
I would have liked to get some context on the purpose of GEM TTM helpers. Is is just share-able code?
From my understanding VRAM helpers _are_ GEM TTM helpers. And they where re-named to VRAM helpers, so that the naming is independent from the implementation (and vice versa).
Wrt qxl, would it be possible to convert the driver over to VRAM helpers entirely? I noticed a memory region named PRIV. Could we add this to VRAM helpers?
Best regards Thomas
Am 08.08.19 um 15:44 schrieb Gerd Hoffmann:
Gerd Hoffmann (17): drm/ttm: turn ttm_bo_device.vma_manager into a pointer drm/ttm: add gem_ttm_bo_device_init() drm/vram: switch vram helpers to the new gem_ttm_bo_device_init() drm/qxl: switch qxl to the new gem_ttm_bo_device_init() drm: add mmap() to drm_gem_object_funcs drm/shmem: switch shmem helper to drm_gem_object_funcs->mmap drm/shmem: drop DEFINE_DRM_GEM_SHMEM_FOPS drm/ttm: factor out ttm_bo_mmap_vma_setup drm/ttm: add drm_gem_ttm_mmap() drm/vram: switch vram helper to drm_gem_object_funcs->mmap codepath drm/vram: drop verify_access drm: drop DRM_VRAM_MM_FILE_OPERATIONS drm/qxl: use drm_gem_object_funcs drm/qxl: drop qxl_ttm_fault drm/qxl: switch qxl to drm_gem_object_funcs->mmap codepath drm/qxl: drop verify_access drm/qxl: use DEFINE_DRM_GEM_FOPS()
drivers/gpu/drm/qxl/qxl_drv.h | 5 +- drivers/gpu/drm/qxl/qxl_object.h | 5 -- include/drm/drm_gem.h | 9 +++ include/drm/drm_gem_shmem_helper.h | 28 +-------- include/drm/drm_gem_ttm_helper.h | 32 ++++++++++ include/drm/drm_gem_vram_helper.h | 9 +-- include/drm/drm_vram_mm_helper.h | 27 --------- include/drm/ttm/ttm_bo_api.h | 8 +++ include/drm/ttm/ttm_bo_driver.h | 11 +++- drivers/gpu/drm/ast/ast_drv.c | 5 +- drivers/gpu/drm/bochs/bochs_drv.c | 5 +- drivers/gpu/drm/cirrus/cirrus.c | 2 +- drivers/gpu/drm/drm_gem.c | 6 ++ drivers/gpu/drm/drm_gem_shmem_helper.c | 18 +++--- drivers/gpu/drm/drm_gem_ttm_helper.c | 47 +++++++++++++++ drivers/gpu/drm/drm_gem_vram_helper.c | 53 +---------------- drivers/gpu/drm/drm_vram_mm_helper.c | 44 +------------- .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 6 +- drivers/gpu/drm/mgag200/mgag200_drv.c | 5 +- drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +- drivers/gpu/drm/panfrost/panfrost_gem.c | 1 + drivers/gpu/drm/qxl/qxl_drv.c | 19 +----- drivers/gpu/drm/qxl/qxl_dumb.c | 17 ------ drivers/gpu/drm/qxl/qxl_ioctl.c | 5 +- drivers/gpu/drm/qxl/qxl_object.c | 13 +++++ drivers/gpu/drm/qxl/qxl_ttm.c | 58 ++----------------- drivers/gpu/drm/ttm/ttm_bo.c | 29 +++++++--- drivers/gpu/drm/ttm/ttm_bo_vm.c | 53 +++++++++-------- drivers/gpu/drm/v3d/v3d_bo.c | 1 + drivers/gpu/drm/v3d/v3d_drv.c | 2 +- drivers/gpu/drm/vboxvideo/vbox_drv.c | 5 +- Documentation/gpu/drm-mm.rst | 12 ++++ drivers/gpu/drm/Kconfig | 8 +++ drivers/gpu/drm/Makefile | 3 + drivers/gpu/drm/qxl/Kconfig | 1 + 35 files changed, 231 insertions(+), 323 deletions(-) create mode 100644 include/drm/drm_gem_ttm_helper.h create mode 100644 drivers/gpu/drm/drm_gem_ttm_helper.c