Provide init/release functions for struct ttm_bo_global
Subsystems (14)
Thomas Zimmermann
maintainercover 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
Thomas Zimmermann
maintainerPATCH 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Koenig, Christian
maintainerRe: [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()andttm_bo_global_release()do not receive an argument of type structttm_bo_global. Both take a structdrm_global_referencethat contains points to a structttm_bo_global_ref. Renaming them reflects this.Signed-off-by Thomas Zimmermann <[email protected]>
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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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);
Thomas Zimmermann
maintainerRe: [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()andttm_bo_global_release()do not receive an argument of type structttm_bo_global. Both take a structdrm_global_referencethat contains points to a structttm_bo_global_ref. Renaming them reflects this.Signed-off-by Thomas Zimmermann <[email protected]>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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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
Koenig, Christian
maintainerRe: [PATCH 1/2] drm/ttm: Rename ttm_bo_global_{init,release}() to ttm_bo_global_ref_{,}()
In reply to Thomas ZimmermannAm 16.10.2018 um 10:04 schrieb Thomas Zimmermann:
Quoted 6 lines
The functions
ttm_bo_global_init()andttm_bo_global_release()do not receive an argument of type structttm_bo_global. Both take a structdrm_global_referencethat contains points to a structttm_bo_global_ref. Renaming them reflects this.Signed-off-by Thomas Zimmermann <[email protected]>
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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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
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
Thomas Zimmermann
maintainerPATCH 2/2 drm/ttm: Provide ttm_bo_global_{init/release}() for struct ttm_bo_global
In reply to Thomas ZimmermannSo 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
@@ -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