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;