Skip to contentSkip to conversation

Provide init/release functions for struct ttm_bo_global

PATCH RESEND In review Thomas Zimmermann 2 participants 6 messages Oct 16, 2018

Subsystems (14)
lore
Share & tools
lore

Thomas Zimmermann

author maintainer
#0 lore raw

cover Provide init/release functions for struct ttm_bo_global

TTM uses global memory and BO for backing graphics buffers. These are represented by struct ttm_mem_global and struct ttm_bo_global.

Currently, struct ttm_bo_global can only be initialized and released through struct ttm_bo_global_ref. This is a workaround for passing an instance of ttm_mem_global to the BO global initialization code.

The use of struct ttm_bo_global_ref makes driver code unnecessary hard to understand. At the same time drivers can use any combination of memory and BO for initializing the global instances. This can result in subtle bugs when the order of initializing and releasing drivers changes.

As a first step for resolving these problems, the provided patch set separates initialization and release of struct ttm_bo_global from struct ttm_bo_global_ref.

The first patch only renames ttm_bo_global_{init/release}. Hopefully this change can be applied at once for all drivers.

Future directions: All TTM-based drivers follow the same pattern for setting up the TTM. In a follow-up patch, this code can be moved into a single place and shared among drivers.

Thomas Zimmermann (2):
drm/ttm: Rename ttm_bo_global_{init,release}() to

    ttm_bo_global_ref_{,}()

drm/ttm: Provide ttm_bo_global_{init/release}() for struct
ttm_bo_global

 Documentation/gpu/drm-mm.rst                |  4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     |  4 +-
 drivers/gpu/drm/ast/ast_ttm.c               |  4 +-
 drivers/gpu/drm/bochs/bochs_mm.c            |  4 +-
 drivers/gpu/drm/cirrus/cirrus_ttm.c         |  4 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c |  4 +-
 drivers/gpu/drm/mgag200/mgag200_ttm.c       |  4 +-
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 +-
 drivers/gpu/drm/qxl/qxl_ttm.c               |  4 +-
 drivers/gpu/drm/radeon/radeon_ttm.c         |  4 +-
 drivers/gpu/drm/ttm/ttm_bo.c                | 12 ++---
 drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    |  4 +-
 drivers/staging/vboxvideo/vbox_ttm.c        |  4 +-
 include/drm/ttm/ttm_bo_driver.h             | 53 ++++++++++++++++-----
 15 files changed, 72 insertions(+), 45 deletions(-)

--
2.19.1

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

author maintainer
#1 lore raw

PATCH 1/2 drm/ttm: Rename ttm_bo_global_{init, release}() to ttm_bo_global_ref_{, }()

The functions ttm_bo_global_init() and ttm_bo_global_release() do not receive an argument of type struct ttm_bo_global. Both take a struct drm_global_reference that contains points to a struct ttm_bo_global_ref. Renaming them reflects this.

---
 Documentation/gpu/drm-mm.rst                | 4 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 4 ++--
 drivers/gpu/drm/ast/ast_ttm.c               | 4 ++--
 drivers/gpu/drm/bochs/bochs_mm.c            | 4 ++--
 drivers/gpu/drm/cirrus/cirrus_ttm.c         | 4 ++--
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 4 ++--
 drivers/gpu/drm/mgag200/mgag200_ttm.c       | 4 ++--
 drivers/gpu/drm/nouveau/nouveau_ttm.c       | 4 ++--
 drivers/gpu/drm/qxl/qxl_ttm.c               | 4 ++--
 drivers/gpu/drm/radeon/radeon_ttm.c         | 4 ++--
 drivers/gpu/drm/ttm/ttm_bo.c                | 8 ++++----
 drivers/gpu/drm/virtio/virtgpu_ttm.c        | 4 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 4 ++--
 drivers/staging/vboxvideo/vbox_ttm.c        | 4 ++--
 include/drm/ttm/ttm_bo_driver.h             | 4 ++--
 15 files changed, 32 insertions(+), 32 deletions(-)
Documentation/gpu/drm-mm.rst +2 -2
index e725e8449e72..d0f3c6b03200 100644
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and
 the kernel itself. The type of this object should be
 TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct
 ttm_bo_global). Again, driver-specific init and release functions may
-be provided, likely eventually calling ttm_bo_global_init() and
-ttm_bo_global_release(), respectively. Also, like the previous
+be provided, likely eventually calling ttm_bo_global_ref_init() and
+ttm_bo_global_ref_release(), respectively. Also, like the previous
 object, ttm_global_item_ref() is used to create an initial reference
 count for the TTM, which will call your initialization function.
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +2 -2
index a44fc12ae1f9..3a6802846698 100644
@@ -125,8 +125,8 @@ static int amdgpu_ttm_global_init(struct amdgpu_device *adev)
 	global_ref = &adev->mman.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ast/ast_ttm.c +2 -2
index fe354ebf374d..d21fbd26785a 100644
@@ -70,8 +70,8 @@ static int ast_ttm_global_init(struct ast_private *ast)
 	global_ref = &ast->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/bochs/bochs_mm.c +2 -2
index e6ccf7fa92d4..ff4f41dec228 100644
@@ -48,8 +48,8 @@ static int bochs_ttm_global_init(struct bochs_device *bochs)
 	global_ref = &bochs->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/cirrus/cirrus_ttm.c +2 -2
index f21953243790..2e2141f26c5b 100644
@@ -70,8 +70,8 @@ static int cirrus_ttm_global_init(struct cirrus_device *cirrus)
 	global_ref = &cirrus->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +2 -2
index 2e3e0bdb8932..0454aa43ffc6 100644
@@ -59,8 +59,8 @@ static int hibmc_ttm_global_init(struct hibmc_drm_private *hibmc)
 		hibmc->mem_global_ref.object;
 	hibmc->bo_global_ref.ref.global_type = DRM_GLOBAL_TTM_BO;
 	hibmc->bo_global_ref.ref.size = sizeof(struct ttm_bo_global);
-	hibmc->bo_global_ref.ref.init = &ttm_bo_global_init;
-	hibmc->bo_global_ref.ref.release = &ttm_bo_global_release;
+	hibmc->bo_global_ref.ref.init = &ttm_bo_global_ref_init;
+	hibmc->bo_global_ref.ref.release = &ttm_bo_global_ref_release;
 	ret = drm_global_item_ref(&hibmc->bo_global_ref.ref);
 	if (ret) {
 		DRM_ERROR("failed setting up TTM BO subsystem: %d\n", ret);
drivers/gpu/drm/mgag200/mgag200_ttm.c +2 -2
index 05570f0de4d7..3444b539e7f4 100644
@@ -70,8 +70,8 @@ static int mgag200_ttm_global_init(struct mga_device *ast)
 	global_ref = &ast->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/nouveau/nouveau_ttm.c +2 -2
index 8edb9f2a4269..a293383c8654 100644
@@ -209,8 +209,8 @@ nouveau_ttm_global_init(struct nouveau_drm *drm)
 	global_ref = &drm->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
 	ret = drm_global_item_ref(global_ref);
 	if (unlikely(ret != 0)) {
drivers/gpu/drm/qxl/qxl_ttm.c +2 -2
index 86a1fb32f6db..db2a0036e9c4 100644
@@ -80,8 +80,8 @@ static int qxl_ttm_global_init(struct qxl_device *qdev)
 	global_ref = &qdev->mman.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/radeon/radeon_ttm.c +2 -2
index cbb67e9ffb3a..dac4ec5a120b 100644
@@ -97,8 +97,8 @@ static int radeon_ttm_global_init(struct radeon_device *rdev)
 	global_ref = &rdev->mman.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ttm/ttm_bo.c +4 -4
index 26b889f86670..9c2bb880491e 100644
@@ -1522,16 +1522,16 @@ static void ttm_bo_global_kobj_release(struct kobject *kobj)
 	kfree(glob);
 }
 
-void ttm_bo_global_release(struct drm_global_reference *ref)
+void ttm_bo_global_ref_release(struct drm_global_reference *ref)
 {
 	struct ttm_bo_global *glob = ref->object;
 
 	kobject_del(&glob->kobj);
 	kobject_put(&glob->kobj);
 }
-EXPORT_SYMBOL(ttm_bo_global_release);
+EXPORT_SYMBOL(ttm_bo_global_ref_release);
 
-int ttm_bo_global_init(struct drm_global_reference *ref)
+int ttm_bo_global_ref_init(struct drm_global_reference *ref)
 {
 	struct ttm_bo_global_ref *bo_ref =
 		container_of(ref, struct ttm_bo_global_ref, ref);
@@ -1564,7 +1564,7 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
 	kfree(glob);
 	return ret;
 }
-EXPORT_SYMBOL(ttm_bo_global_init);
+EXPORT_SYMBOL(ttm_bo_global_ref_init);
 
 
 int ttm_bo_device_release(struct ttm_bo_device *bdev)
drivers/gpu/drm/virtio/virtgpu_ttm.c +2 -2
index e3152d45c5f1..526a5e48dc3b 100644
@@ -84,8 +84,8 @@ static int virtio_gpu_ttm_global_init(struct virtio_gpu_device *vgdev)
 	global_ref = &vgdev->mman.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	r = drm_global_item_ref(global_ref);
 	if (r != 0) {
 		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c +2 -2
index 7b1e5a5cbd2c..f3ce43c41978 100644
@@ -76,8 +76,8 @@ int vmw_ttm_global_init(struct vmw_private *dev_priv)
 	global_ref = &dev_priv->bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 	ret = drm_global_item_ref(global_ref);
 
 	if (unlikely(ret != 0)) {
drivers/staging/vboxvideo/vbox_ttm.c +2 -2
index 548edb7c494b..2329a55d4636 100644
@@ -68,8 +68,8 @@ static int vbox_ttm_global_init(struct vbox_private *vbox)
 	global_ref = &vbox->ttm.bo_global_ref.ref;
 	global_ref->global_type = DRM_GLOBAL_TTM_BO;
 	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
 	ret = drm_global_item_ref(global_ref);
 	if (ret) {
include/drm/ttm/ttm_bo_driver.h +2 -2
index e4fee8e02559..c3c0751dec63 100644
@@ -578,8 +578,8 @@ void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem);
 void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
 			   struct ttm_mem_reg *mem);
 
-void ttm_bo_global_release(struct drm_global_reference *ref);
-int ttm_bo_global_init(struct drm_global_reference *ref);
+void ttm_bo_global_ref_release(struct drm_global_reference *ref);
+int ttm_bo_global_ref_init(struct drm_global_reference *ref);
 
 int ttm_bo_device_release(struct ttm_bo_device *bdev);
 
Signature · 6 lines
2.19.1

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
#2 lore raw

Re: [PATCH 1/2] drm/ttm: Rename ttm_bo_global_{init,release}() to ttm_bo_global_ref_{,}()

Am 16.10.2018 um 10:04 schrieb Thomas Zimmermann:

Quoted 6 lines

The functions ttm_bo_global_init() and ttm_bo_global_release() do not receive an argument of type struct ttm_bo_global. Both take a struct drm_global_reference that contains points to a struct ttm_bo_global_ref. Renaming them reflects this.

Reviewed and pushed upstream.

Christian.

Quoted 261 lines
---
  Documentation/gpu/drm-mm.rst                | 4 ++--
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 4 ++--
  drivers/gpu/drm/ast/ast_ttm.c               | 4 ++--
  drivers/gpu/drm/bochs/bochs_mm.c            | 4 ++--
  drivers/gpu/drm/cirrus/cirrus_ttm.c         | 4 ++--
  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 4 ++--
  drivers/gpu/drm/mgag200/mgag200_ttm.c       | 4 ++--
  drivers/gpu/drm/nouveau/nouveau_ttm.c       | 4 ++--
  drivers/gpu/drm/qxl/qxl_ttm.c               | 4 ++--
  drivers/gpu/drm/radeon/radeon_ttm.c         | 4 ++--
  drivers/gpu/drm/ttm/ttm_bo.c                | 8 ++++----
  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 4 ++--
  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 4 ++--
  drivers/staging/vboxvideo/vbox_ttm.c        | 4 ++--
  include/drm/ttm/ttm_bo_driver.h             | 4 ++--
  15 files changed, 32 insertions(+), 32 deletions(-)
Documentation/gpu/drm-mm.rst +2 -2
index e725e8449e72..d0f3c6b03200 100644
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and
  the kernel itself. The type of this object should be
  TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct
  ttm_bo_global). Again, driver-specific init and release functions may
-be provided, likely eventually calling ttm_bo_global_init() and
-ttm_bo_global_release(), respectively. Also, like the previous
+be provided, likely eventually calling ttm_bo_global_ref_init() and
+ttm_bo_global_ref_release(), respectively. Also, like the previous
  object, ttm_global_item_ref() is used to create an initial reference
  count for the TTM, which will call your initialization function.
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +2 -2
index a44fc12ae1f9..3a6802846698 100644
@@ -125,8 +125,8 @@ static int amdgpu_ttm_global_init(struct amdgpu_device *adev)
  	global_ref = &adev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ast/ast_ttm.c +2 -2
index fe354ebf374d..d21fbd26785a 100644
@@ -70,8 +70,8 @@ static int ast_ttm_global_init(struct ast_private *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/bochs/bochs_mm.c +2 -2
index e6ccf7fa92d4..ff4f41dec228 100644
@@ -48,8 +48,8 @@ static int bochs_ttm_global_init(struct bochs_device *bochs)
  	global_ref = &bochs->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/cirrus/cirrus_ttm.c +2 -2
index f21953243790..2e2141f26c5b 100644
@@ -70,8 +70,8 @@ static int cirrus_ttm_global_init(struct cirrus_device *cirrus)
  	global_ref = &cirrus->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +2 -2
index 2e3e0bdb8932..0454aa43ffc6 100644
@@ -59,8 +59,8 @@ static int hibmc_ttm_global_init(struct hibmc_drm_private *hibmc)
  		hibmc->mem_global_ref.object;
  	hibmc->bo_global_ref.ref.global_type = DRM_GLOBAL_TTM_BO;
  	hibmc->bo_global_ref.ref.size = sizeof(struct ttm_bo_global);
-	hibmc->bo_global_ref.ref.init = &ttm_bo_global_init;
-	hibmc->bo_global_ref.ref.release = &ttm_bo_global_release;
+	hibmc->bo_global_ref.ref.init = &ttm_bo_global_ref_init;
+	hibmc->bo_global_ref.ref.release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(&hibmc->bo_global_ref.ref);
  	if (ret) {
  		DRM_ERROR("failed setting up TTM BO subsystem: %d\n", ret);
drivers/gpu/drm/mgag200/mgag200_ttm.c +2 -2
index 05570f0de4d7..3444b539e7f4 100644
@@ -70,8 +70,8 @@ static int mgag200_ttm_global_init(struct mga_device *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/nouveau/nouveau_ttm.c +2 -2
index 8edb9f2a4269..a293383c8654 100644
@@ -209,8 +209,8 @@ nouveau_ttm_global_init(struct nouveau_drm *drm)
  	global_ref = &drm->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (unlikely(ret != 0)) {
drivers/gpu/drm/qxl/qxl_ttm.c +2 -2
index 86a1fb32f6db..db2a0036e9c4 100644
@@ -80,8 +80,8 @@ static int qxl_ttm_global_init(struct qxl_device *qdev)
  	global_ref = &qdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/radeon/radeon_ttm.c +2 -2
index cbb67e9ffb3a..dac4ec5a120b 100644
@@ -97,8 +97,8 @@ static int radeon_ttm_global_init(struct radeon_device *rdev)
  	global_ref = &rdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ttm/ttm_bo.c +4 -4
index 26b889f86670..9c2bb880491e 100644
@@ -1522,16 +1522,16 @@ static void ttm_bo_global_kobj_release(struct kobject *kobj)
  	kfree(glob);
  }
 
-void ttm_bo_global_release(struct drm_global_reference *ref)
+void ttm_bo_global_ref_release(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global *glob = ref->object;
 
  	kobject_del(&glob->kobj);
  	kobject_put(&glob->kobj);
  }
-EXPORT_SYMBOL(ttm_bo_global_release);
+EXPORT_SYMBOL(ttm_bo_global_ref_release);
 
-int ttm_bo_global_init(struct drm_global_reference *ref)
+int ttm_bo_global_ref_init(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global_ref *bo_ref =
  		container_of(ref, struct ttm_bo_global_ref, ref);
@@ -1564,7 +1564,7 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
  	kfree(glob);
  	return ret;
  }
-EXPORT_SYMBOL(ttm_bo_global_init);
+EXPORT_SYMBOL(ttm_bo_global_ref_init);
 
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev)
drivers/gpu/drm/virtio/virtgpu_ttm.c +2 -2
index e3152d45c5f1..526a5e48dc3b 100644
@@ -84,8 +84,8 @@ static int virtio_gpu_ttm_global_init(struct virtio_gpu_device *vgdev)
  	global_ref = &vgdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c +2 -2
index 7b1e5a5cbd2c..f3ce43c41978 100644
@@ -76,8 +76,8 @@ int vmw_ttm_global_init(struct vmw_private *dev_priv)
  	global_ref = &dev_priv->bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(global_ref);
 
  	if (unlikely(ret != 0)) {
drivers/staging/vboxvideo/vbox_ttm.c +2 -2
index 548edb7c494b..2329a55d4636 100644
@@ -68,8 +68,8 @@ static int vbox_ttm_global_init(struct vbox_private *vbox)
  	global_ref = &vbox->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (ret) {
include/drm/ttm/ttm_bo_driver.h +2 -2
index e4fee8e02559..c3c0751dec63 100644
@@ -578,8 +578,8 @@ void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem);
  void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
  			   struct ttm_mem_reg *mem);
 
-void ttm_bo_global_release(struct drm_global_reference *ref);
-int ttm_bo_global_init(struct drm_global_reference *ref);
+void ttm_bo_global_ref_release(struct drm_global_reference *ref);
+int ttm_bo_global_ref_init(struct drm_global_reference *ref);
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev);
 
author maintainer
#3 lore raw

Re: [PATCH 1/2] drm/ttm: Rename ttm_bo_global_{init,release}() to ttm_bo_global_ref_{,}()

Am 16.10.18 um 12:43 schrieb Koenig, Christian:

Quoted 9 lines

Am 16.10.2018 um 10:04 schrieb Thomas Zimmermann:

Quoted 6 lines

The functions ttm_bo_global_init() and ttm_bo_global_release() do not receive an argument of type struct ttm_bo_global. Both take a struct drm_global_reference that contains points to a struct ttm_bo_global_ref. Renaming them reflects this.

Reviewed and pushed upstream.

Thank you!

Quoted 265 lines

Christian.

Quoted 261 lines
---
  Documentation/gpu/drm-mm.rst                | 4 ++--
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 4 ++--
  drivers/gpu/drm/ast/ast_ttm.c               | 4 ++--
  drivers/gpu/drm/bochs/bochs_mm.c            | 4 ++--
  drivers/gpu/drm/cirrus/cirrus_ttm.c         | 4 ++--
  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 4 ++--
  drivers/gpu/drm/mgag200/mgag200_ttm.c       | 4 ++--
  drivers/gpu/drm/nouveau/nouveau_ttm.c       | 4 ++--
  drivers/gpu/drm/qxl/qxl_ttm.c               | 4 ++--
  drivers/gpu/drm/radeon/radeon_ttm.c         | 4 ++--
  drivers/gpu/drm/ttm/ttm_bo.c                | 8 ++++----
  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 4 ++--
  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 4 ++--
  drivers/staging/vboxvideo/vbox_ttm.c        | 4 ++--
  include/drm/ttm/ttm_bo_driver.h             | 4 ++--
  15 files changed, 32 insertions(+), 32 deletions(-)
Documentation/gpu/drm-mm.rst +2 -2
index e725e8449e72..d0f3c6b03200 100644
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and
  the kernel itself. The type of this object should be
  TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct
  ttm_bo_global). Again, driver-specific init and release functions may
-be provided, likely eventually calling ttm_bo_global_init() and
-ttm_bo_global_release(), respectively. Also, like the previous
+be provided, likely eventually calling ttm_bo_global_ref_init() and
+ttm_bo_global_ref_release(), respectively. Also, like the previous
  object, ttm_global_item_ref() is used to create an initial reference
  count for the TTM, which will call your initialization function.
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +2 -2
index a44fc12ae1f9..3a6802846698 100644
@@ -125,8 +125,8 @@ static int amdgpu_ttm_global_init(struct amdgpu_device *adev)
  	global_ref = &adev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ast/ast_ttm.c +2 -2
index fe354ebf374d..d21fbd26785a 100644
@@ -70,8 +70,8 @@ static int ast_ttm_global_init(struct ast_private *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/bochs/bochs_mm.c +2 -2
index e6ccf7fa92d4..ff4f41dec228 100644
@@ -48,8 +48,8 @@ static int bochs_ttm_global_init(struct bochs_device *bochs)
  	global_ref = &bochs->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/cirrus/cirrus_ttm.c +2 -2
index f21953243790..2e2141f26c5b 100644
@@ -70,8 +70,8 @@ static int cirrus_ttm_global_init(struct cirrus_device *cirrus)
  	global_ref = &cirrus->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +2 -2
index 2e3e0bdb8932..0454aa43ffc6 100644
@@ -59,8 +59,8 @@ static int hibmc_ttm_global_init(struct hibmc_drm_private *hibmc)
  		hibmc->mem_global_ref.object;
  	hibmc->bo_global_ref.ref.global_type = DRM_GLOBAL_TTM_BO;
  	hibmc->bo_global_ref.ref.size = sizeof(struct ttm_bo_global);
-	hibmc->bo_global_ref.ref.init = &ttm_bo_global_init;
-	hibmc->bo_global_ref.ref.release = &ttm_bo_global_release;
+	hibmc->bo_global_ref.ref.init = &ttm_bo_global_ref_init;
+	hibmc->bo_global_ref.ref.release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(&hibmc->bo_global_ref.ref);
  	if (ret) {
  		DRM_ERROR("failed setting up TTM BO subsystem: %d\n", ret);
drivers/gpu/drm/mgag200/mgag200_ttm.c +2 -2
index 05570f0de4d7..3444b539e7f4 100644
@@ -70,8 +70,8 @@ static int mgag200_ttm_global_init(struct mga_device *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/nouveau/nouveau_ttm.c +2 -2
index 8edb9f2a4269..a293383c8654 100644
@@ -209,8 +209,8 @@ nouveau_ttm_global_init(struct nouveau_drm *drm)
  	global_ref = &drm->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (unlikely(ret != 0)) {
drivers/gpu/drm/qxl/qxl_ttm.c +2 -2
index 86a1fb32f6db..db2a0036e9c4 100644
@@ -80,8 +80,8 @@ static int qxl_ttm_global_init(struct qxl_device *qdev)
  	global_ref = &qdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/radeon/radeon_ttm.c +2 -2
index cbb67e9ffb3a..dac4ec5a120b 100644
@@ -97,8 +97,8 @@ static int radeon_ttm_global_init(struct radeon_device *rdev)
  	global_ref = &rdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ttm/ttm_bo.c +4 -4
index 26b889f86670..9c2bb880491e 100644
@@ -1522,16 +1522,16 @@ static void ttm_bo_global_kobj_release(struct kobject *kobj)
  	kfree(glob);
  }
 
-void ttm_bo_global_release(struct drm_global_reference *ref)
+void ttm_bo_global_ref_release(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global *glob = ref->object;
 
  	kobject_del(&glob->kobj);
  	kobject_put(&glob->kobj);
  }
-EXPORT_SYMBOL(ttm_bo_global_release);
+EXPORT_SYMBOL(ttm_bo_global_ref_release);
 
-int ttm_bo_global_init(struct drm_global_reference *ref)
+int ttm_bo_global_ref_init(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global_ref *bo_ref =
  		container_of(ref, struct ttm_bo_global_ref, ref);
@@ -1564,7 +1564,7 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
  	kfree(glob);
  	return ret;
  }
-EXPORT_SYMBOL(ttm_bo_global_init);
+EXPORT_SYMBOL(ttm_bo_global_ref_init);
 
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev)
drivers/gpu/drm/virtio/virtgpu_ttm.c +2 -2
index e3152d45c5f1..526a5e48dc3b 100644
@@ -84,8 +84,8 @@ static int virtio_gpu_ttm_global_init(struct virtio_gpu_device *vgdev)
  	global_ref = &vgdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c +2 -2
index 7b1e5a5cbd2c..f3ce43c41978 100644
@@ -76,8 +76,8 @@ int vmw_ttm_global_init(struct vmw_private *dev_priv)
  	global_ref = &dev_priv->bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(global_ref);
 
  	if (unlikely(ret != 0)) {
drivers/staging/vboxvideo/vbox_ttm.c +2 -2
index 548edb7c494b..2329a55d4636 100644
@@ -68,8 +68,8 @@ static int vbox_ttm_global_init(struct vbox_private *vbox)
  	global_ref = &vbox->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (ret) {
include/drm/ttm/ttm_bo_driver.h +2 -2
index e4fee8e02559..c3c0751dec63 100644
@@ -578,8 +578,8 @@ void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem);
  void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
  			   struct ttm_mem_reg *mem);
 
-void ttm_bo_global_release(struct drm_global_reference *ref);
-int ttm_bo_global_init(struct drm_global_reference *ref);
+void ttm_bo_global_ref_release(struct drm_global_reference *ref);
+int ttm_bo_global_ref_init(struct drm_global_reference *ref);
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev);
 
Signature · 6 lines
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nürnberg
Tel: +49-911-74053-0; Fax: +49-911-7417755;  https://www.suse.com/
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard,
Graham Norton, HRB 21284 (AG Nürnberg)

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#4 lore raw

Re: [PATCH 1/2] drm/ttm: Rename ttm_bo_global_{init,release}() to ttm_bo_global_ref_{,}()

In reply to Thomas Zimmermann

Am 16.10.2018 um 10:04 schrieb Thomas Zimmermann:

Quoted 6 lines

The functions ttm_bo_global_init() and ttm_bo_global_release() do not receive an argument of type struct ttm_bo_global. Both take a struct drm_global_reference that contains points to a struct ttm_bo_global_ref. Renaming them reflects this.

Reviewed and pushed upstream.

Christian.

Quoted 251 lines
---
  Documentation/gpu/drm-mm.rst                | 4 ++--
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 4 ++--
  drivers/gpu/drm/ast/ast_ttm.c               | 4 ++--
  drivers/gpu/drm/bochs/bochs_mm.c            | 4 ++--
  drivers/gpu/drm/cirrus/cirrus_ttm.c         | 4 ++--
  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 4 ++--
  drivers/gpu/drm/mgag200/mgag200_ttm.c       | 4 ++--
  drivers/gpu/drm/nouveau/nouveau_ttm.c       | 4 ++--
  drivers/gpu/drm/qxl/qxl_ttm.c               | 4 ++--
  drivers/gpu/drm/radeon/radeon_ttm.c         | 4 ++--
  drivers/gpu/drm/ttm/ttm_bo.c                | 8 ++++----
  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 4 ++--
  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 4 ++--
  drivers/staging/vboxvideo/vbox_ttm.c        | 4 ++--
  include/drm/ttm/ttm_bo_driver.h             | 4 ++--
  15 files changed, 32 insertions(+), 32 deletions(-)
Documentation/gpu/drm-mm.rst +2 -2
index e725e8449e72..d0f3c6b03200 100644
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and
  the kernel itself. The type of this object should be
  TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct
  ttm_bo_global). Again, driver-specific init and release functions may
-be provided, likely eventually calling ttm_bo_global_init() and
-ttm_bo_global_release(), respectively. Also, like the previous
+be provided, likely eventually calling ttm_bo_global_ref_init() and
+ttm_bo_global_ref_release(), respectively. Also, like the previous
  object, ttm_global_item_ref() is used to create an initial reference
  count for the TTM, which will call your initialization function.
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +2 -2
index a44fc12ae1f9..3a6802846698 100644
@@ -125,8 +125,8 @@ static int amdgpu_ttm_global_init(struct amdgpu_device *adev)
  	global_ref = &adev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ast/ast_ttm.c +2 -2
index fe354ebf374d..d21fbd26785a 100644
@@ -70,8 +70,8 @@ static int ast_ttm_global_init(struct ast_private *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/bochs/bochs_mm.c +2 -2
index e6ccf7fa92d4..ff4f41dec228 100644
@@ -48,8 +48,8 @@ static int bochs_ttm_global_init(struct bochs_device *bochs)
  	global_ref = &bochs->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/cirrus/cirrus_ttm.c +2 -2
index f21953243790..2e2141f26c5b 100644
@@ -70,8 +70,8 @@ static int cirrus_ttm_global_init(struct cirrus_device *cirrus)
  	global_ref = &cirrus->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +2 -2
index 2e3e0bdb8932..0454aa43ffc6 100644
@@ -59,8 +59,8 @@ static int hibmc_ttm_global_init(struct hibmc_drm_private *hibmc)
  		hibmc->mem_global_ref.object;
  	hibmc->bo_global_ref.ref.global_type = DRM_GLOBAL_TTM_BO;
  	hibmc->bo_global_ref.ref.size = sizeof(struct ttm_bo_global);
-	hibmc->bo_global_ref.ref.init = &ttm_bo_global_init;
-	hibmc->bo_global_ref.ref.release = &ttm_bo_global_release;
+	hibmc->bo_global_ref.ref.init = &ttm_bo_global_ref_init;
+	hibmc->bo_global_ref.ref.release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(&hibmc->bo_global_ref.ref);
  	if (ret) {
  		DRM_ERROR("failed setting up TTM BO subsystem: %d\n", ret);
drivers/gpu/drm/mgag200/mgag200_ttm.c +2 -2
index 05570f0de4d7..3444b539e7f4 100644
@@ -70,8 +70,8 @@ static int mgag200_ttm_global_init(struct mga_device *ast)
  	global_ref = &ast->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/nouveau/nouveau_ttm.c +2 -2
index 8edb9f2a4269..a293383c8654 100644
@@ -209,8 +209,8 @@ nouveau_ttm_global_init(struct nouveau_drm *drm)
  	global_ref = &drm->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (unlikely(ret != 0)) {
drivers/gpu/drm/qxl/qxl_ttm.c +2 -2
index 86a1fb32f6db..db2a0036e9c4 100644
@@ -80,8 +80,8 @@ static int qxl_ttm_global_init(struct qxl_device *qdev)
  	global_ref = &qdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/radeon/radeon_ttm.c +2 -2
index cbb67e9ffb3a..dac4ec5a120b 100644
@@ -97,8 +97,8 @@ static int radeon_ttm_global_init(struct radeon_device *rdev)
  	global_ref = &rdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/ttm/ttm_bo.c +4 -4
index 26b889f86670..9c2bb880491e 100644
@@ -1522,16 +1522,16 @@ static void ttm_bo_global_kobj_release(struct kobject *kobj)
  	kfree(glob);
  }
 
-void ttm_bo_global_release(struct drm_global_reference *ref)
+void ttm_bo_global_ref_release(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global *glob = ref->object;
 
  	kobject_del(&glob->kobj);
  	kobject_put(&glob->kobj);
  }
-EXPORT_SYMBOL(ttm_bo_global_release);
+EXPORT_SYMBOL(ttm_bo_global_ref_release);
 
-int ttm_bo_global_init(struct drm_global_reference *ref)
+int ttm_bo_global_ref_init(struct drm_global_reference *ref)
  {
  	struct ttm_bo_global_ref *bo_ref =
  		container_of(ref, struct ttm_bo_global_ref, ref);
@@ -1564,7 +1564,7 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
  	kfree(glob);
  	return ret;
  }
-EXPORT_SYMBOL(ttm_bo_global_init);
+EXPORT_SYMBOL(ttm_bo_global_ref_init);
 
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev)
drivers/gpu/drm/virtio/virtgpu_ttm.c +2 -2
index e3152d45c5f1..526a5e48dc3b 100644
@@ -84,8 +84,8 @@ static int virtio_gpu_ttm_global_init(struct virtio_gpu_device *vgdev)
  	global_ref = &vgdev->mman.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	r = drm_global_item_ref(global_ref);
  	if (r != 0) {
  		DRM_ERROR("Failed setting up TTM BO subsystem.\n");
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c +2 -2
index 7b1e5a5cbd2c..f3ce43c41978 100644
@@ -76,8 +76,8 @@ int vmw_ttm_global_init(struct vmw_private *dev_priv)
  	global_ref = &dev_priv->bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
  	ret = drm_global_item_ref(global_ref);
 
  	if (unlikely(ret != 0)) {
drivers/staging/vboxvideo/vbox_ttm.c +2 -2
index 548edb7c494b..2329a55d4636 100644
@@ -68,8 +68,8 @@ static int vbox_ttm_global_init(struct vbox_private *vbox)
  	global_ref = &vbox->ttm.bo_global_ref.ref;
  	global_ref->global_type = DRM_GLOBAL_TTM_BO;
  	global_ref->size = sizeof(struct ttm_bo_global);
-	global_ref->init = &ttm_bo_global_init;
-	global_ref->release = &ttm_bo_global_release;
+	global_ref->init = &ttm_bo_global_ref_init;
+	global_ref->release = &ttm_bo_global_ref_release;
 
  	ret = drm_global_item_ref(global_ref);
  	if (ret) {
include/drm/ttm/ttm_bo_driver.h +0 -0
index e4fee8e02559..c3c0751dec63 100644

include/drm/ttm/ttm_bo_driver.h void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem); · line 585

Quoted 10 lines
include/drm/ttm/ttm_bo_driver.h +2 -2
@@ -578,8 +578,8 @@ void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem);
  void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
  			   struct ttm_mem_reg *mem);
 
-void ttm_bo_global_release(struct drm_global_reference *ref);
-int ttm_bo_global_init(struct drm_global_reference *ref);
+void ttm_bo_global_ref_release(struct drm_global_reference *ref);
+int ttm_bo_global_ref_init(struct drm_global_reference *ref);
 
  int ttm_bo_device_release(struct ttm_bo_device *bdev);
 

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

author maintainer
#5 lore raw

PATCH 2/2 drm/ttm: Provide ttm_bo_global_{init/release}() for struct ttm_bo_global

In reply to Thomas Zimmermann

So far, struct ttm_bo_global_ref was the only way of initializing a struct ttm_bo_global. Providing separate initializer and release functions for struct ttm_bo_global gives drivers the option of implementing their own init and release callbacks for drm_global_references of type DRM_GLOBAL_TTM_BO.

The original functions for initializing and releasing via struct ttm_bo_global_ref are wrappers around the new interfaces.

---
 drivers/gpu/drm/ttm/ttm_bo.c    | 16 ++++------
 include/drm/ttm/ttm_bo_driver.h | 53 ++++++++++++++++++++++++++-------
 2 files changed, 48 insertions(+), 21 deletions(-)
drivers/gpu/drm/ttm/ttm_bo.c +6 -10
index 9c2bb880491e..9edece6510d3 100644
@@ -1522,26 +1522,22 @@ static void ttm_bo_global_kobj_release(struct kobject *kobj)
 	kfree(glob);
 }
 
-void ttm_bo_global_ref_release(struct drm_global_reference *ref)
+void ttm_bo_global_release(struct ttm_bo_global *glob)
 {
-	struct ttm_bo_global *glob = ref->object;
-
 	kobject_del(&glob->kobj);
 	kobject_put(&glob->kobj);
 }
-EXPORT_SYMBOL(ttm_bo_global_ref_release);
+EXPORT_SYMBOL(ttm_bo_global_release);
 
-int ttm_bo_global_ref_init(struct drm_global_reference *ref)
+int ttm_bo_global_init(struct ttm_bo_global *glob,
+		       struct ttm_mem_global *mem_glob)
 {
-	struct ttm_bo_global_ref *bo_ref =
-		container_of(ref, struct ttm_bo_global_ref, ref);
-	struct ttm_bo_global *glob = ref->object;
 	int ret;
 	unsigned i;
 
 	mutex_init(&glob->device_list_mutex);
 	spin_lock_init(&glob->lru_lock);
-	glob->mem_glob = bo_ref->mem_glob;
+	glob->mem_glob = mem_glob;
 	glob->mem_glob->bo_glob = glob;
 	glob->dummy_read_page = alloc_page(__GFP_ZERO | GFP_DMA32);
 
@@ -1564,7 +1560,7 @@ int ttm_bo_global_ref_init(struct drm_global_reference *ref)
 	kfree(glob);
 	return ret;
 }
-EXPORT_SYMBOL(ttm_bo_global_ref_init);
+EXPORT_SYMBOL(ttm_bo_global_init);
 
 
 int ttm_bo_device_release(struct ttm_bo_device *bdev)
include/drm/ttm/ttm_bo_driver.h +42 -11

69 lines not on this page · raw message

Signature · 6 lines
2.19.1

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel