Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 09:57:17 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c
        src/sys/external/bsd/drm2/ttm: ttm_bo_vm.c

Log Message:
More obvious part of TTM API changes:

- ref/unref to get/put
- some global TTM things are now global
- More indirection to get vma_node

Author: Maya Rashish <m...@netbsd.org>


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c
cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.21 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.22
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.21	Sat Dec 18 23:45:44 2021
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c	Sun Dec 19 09:57:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo.c,v 1.21 2021/12/18 23:45:44 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo.c,v 1.22 2021/12/19 09:57:17 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
 /**************************************************************************
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.21 2021/12/18 23:45:44 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.22 2021/12/19 09:57:17 riastradh Exp $");
 
 #define pr_fmt(fmt) "[TTM] " fmt
 
@@ -681,7 +681,7 @@ static void ttm_bo_release(struct kref *
 #endif
 	drm_vma_offset_remove(bdev->vma_manager, &bo->base.vma_node);
 #ifdef __NetBSD__
-	drm_vma_node_destroy(&bo->vma_node);
+	drm_vma_node_destroy(&bo->base.vma_node);
 #endif
 	ttm_mem_io_lock(man, false);
 	ttm_mem_io_free_vm(bo);
@@ -1357,7 +1357,7 @@ int ttm_bo_init_reserved(struct ttm_bo_d
 		 */
 		dma_resv_init(&bo->base._resv);
 #ifdef __NetBSD__
-		drm_vma_node_init(&bo->vma_node);
+		drm_vma_node_init(&bo->base.vma_node);
 		uvm_obj_init(&bo->uvmobj, bdev->driver->ttm_uvm_ops, true, 1);
 #else
 		drm_vma_node_reset(&bo->base.vma_node);
@@ -1645,7 +1645,7 @@ static void ttm_bo_global_release(void)
 	ttm_mem_unregister_shrink(glob->mem_glob, &glob->shrink);
 	BUG_ON(glob->dummy_read_page != NULL);
 	spin_lock_destroy(&glob->lru_lock);
-	mutex_destroy(&glob->device_list_mutex);
+	mutex_destroy(&ttm_global_mutex);
 	kfree(glob);
 #else
 	kobject_del(&glob->kobj);
@@ -1663,6 +1663,7 @@ static int ttm_bo_global_init(void)
 	int ret = 0;
 	unsigned i;
 
+	mutex_init(&ttm_global_mutex);
 	mutex_lock(&ttm_global_mutex);
 	if (++ttm_bo_glob_use_count > 1)
 		goto out;

Index: src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c
diff -u src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.15 src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.16
--- src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.15	Sun Dec 19 01:47:24 2021
+++ src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c	Sun Dec 19 09:57:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_vm.c,v 1.15 2021/12/19 01:47:24 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo_vm.c,v 1.16 2021/12/19 09:57:17 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo_vm.c,v 1.15 2021/12/19 01:47:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo_vm.c,v 1.16 2021/12/19 09:57:17 riastradh Exp $");
 
 #include <sys/types.h>
 
@@ -55,7 +55,7 @@ ttm_bo_uvm_reference(struct uvm_object *
 	struct ttm_buffer_object *const bo = container_of(uobj,
 	    struct ttm_buffer_object, uvmobj);
 
-	(void)ttm_bo_reference(bo);
+	(void)ttm_bo_get(bo);
 }
 
 void
@@ -64,7 +64,7 @@ ttm_bo_uvm_detach(struct uvm_object *uob
 	struct ttm_buffer_object *bo = container_of(uobj,
 	    struct ttm_buffer_object, uvmobj);
 
-	ttm_bo_unref(&bo);
+	ttm_bo_put(bo);
 	KASSERT(bo == NULL);
 }
 
@@ -249,7 +249,7 @@ ttm_bo_mmap_object(struct ttm_bo_device 
 	ret = ttm_bo_uvm_lookup(bdev, startpage, npages, &bo);
 	if (ret)
 		goto fail0;
-	KASSERT(drm_vma_node_start(&bo->vma_node) <= offset);
+	KASSERT(drm_vma_node_start(&bo->base.vma_node) <= offset);
 	/* XXX Just assert this?  */
 	if (__predict_false(bdev->driver->verify_access == NULL)) {
 		ret = -EPERM;
@@ -262,10 +262,10 @@ ttm_bo_mmap_object(struct ttm_bo_device 
 	/* Success!  */
 	*uobjp = &bo->uvmobj;
 	*uoffsetp = (offset -
-	    (drm_vma_node_start(&bo->vma_node) << PAGE_SHIFT));
+	    (drm_vma_node_start(&bo->base.vma_node) << PAGE_SHIFT));
 	return 0;
 
-fail1:	ttm_bo_unref(&bo);
+fail1:	ttm_bo_put(bo);
 fail0:	KASSERT(ret);
 	return ret;
 }
@@ -277,15 +277,15 @@ ttm_bo_uvm_lookup(struct ttm_bo_device *
 	struct ttm_buffer_object *bo = NULL;
 	struct drm_vma_offset_node *node;
 
-	drm_vma_offset_lock_lookup(&bdev->vma_manager);
-	node = drm_vma_offset_lookup_locked(&bdev->vma_manager, startpage,
+	drm_vma_offset_lock_lookup(bdev->vma_manager);
+	node = drm_vma_offset_lookup_locked(bdev->vma_manager, startpage,
 	    npages);
 	if (node != NULL) {
-		bo = container_of(node, struct ttm_buffer_object, vma_node);
+		bo = container_of(node, struct ttm_buffer_object, base.vma_node);
 		if (!kref_get_unless_zero(&bo->kref))
 			bo = NULL;
 	}
-	drm_vma_offset_unlock_lookup(&bdev->vma_manager);
+	drm_vma_offset_unlock_lookup(bdev->vma_manager);
 
 	if (bo == NULL)
 		return -ENOENT;

Reply via email to