Module Name: src Committed By: riastradh Date: Sun Dec 19 01:49:51 UTC 2021
Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c ttm_tt.c Log Message: Fix up ttm. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.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_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.21 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.22 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.21 Sat Dec 18 23:45:44 2021 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Sun Dec 19 01:49:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.21 2021/12/18 23:45:44 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.22 2021/12/19 01:49:50 riastradh Exp $ */ /* SPDX-License-Identifier: GPL-2.0 OR MIT */ /************************************************************************** @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.21 2021/12/18 23:45:44 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.22 2021/12/19 01:49:50 riastradh Exp $"); #include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_placement.h> @@ -568,9 +568,9 @@ static int ttm_buffer_object_transfer(st fbo->base.moving = NULL; #ifdef __NetBSD__ drm_vma_node_init(&fbo->vma_node); - uvm_obj_init(&fbo->uvmobj, bo->bdev->driver->ttm_uvm_ops, true, 1); + uvm_obj_init(&fbo->base.uvmobj, bo->bdev->driver->ttm_uvm_ops, true, 1); rw_obj_hold(bo->uvmobj.vmobjlock); - uvm_obj_setlock(&fbo->uvmobj, bo->uvmobj.vmobjlock); + uvm_obj_setlock(&fbo->base.uvmobj, bo->uvmobj.vmobjlock); #else drm_vma_node_reset(&fbo->base.base.vma_node); #endif Index: src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.13 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.14 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.13 Sat Dec 18 23:45:44 2021 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c Sun Dec 19 01:49:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_tt.c,v 1.13 2021/12/18 23:45:44 riastradh Exp $ */ +/* $NetBSD: ttm_tt.c,v 1.14 2021/12/19 01:49:50 riastradh Exp $ */ /* SPDX-License-Identifier: GPL-2.0 OR MIT */ /************************************************************************** @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ttm_tt.c,v 1.13 2021/12/18 23:45:44 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_tt.c,v 1.14 2021/12/19 01:49:50 riastradh Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -245,11 +245,11 @@ static void ttm_tt_init_fields(struct tt ttm->page_flags = page_flags; ttm->state = tt_unpopulated; #ifdef __NetBSD__ - WARN(size == 0, "zero-size allocation in %s, please file a NetBSD PR", + WARN(bo->num_pages == 0, + "zero-size allocation in %s, please file a NetBSD PR", __func__); /* paranoia -- can't prove in five minutes */ - size = MAX(size, 1); - ttm->swap_storage = uao_create(roundup2(size, PAGE_SIZE), 0); - uao_set_pgfl(ttm->swap_storage, bus_dmamem_pgfl(bdev->dmat)); + ttm->swap_storage = uao_create(MAX(1, bo->num_pages), 0); + uao_set_pgfl(ttm->swap_storage, bus_dmamem_pgfl(ttm->bdev->dmat)); TAILQ_INIT(&ttm->pglist); #else ttm->swap_storage = NULL; @@ -602,6 +602,7 @@ out_err: static void ttm_tt_add_mapping(struct ttm_tt *ttm) { +#ifndef __NetBSD__ pgoff_t i; if (ttm->page_flags & TTM_PAGE_FLAG_SG) @@ -609,6 +610,7 @@ static void ttm_tt_add_mapping(struct tt for (i = 0; i < ttm->num_pages; ++i) ttm->pages[i]->mapping = ttm->bdev->dev_mapping; +#endif } int ttm_tt_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) @@ -621,7 +623,11 @@ int ttm_tt_populate(struct ttm_tt *ttm, if (ttm->bdev->driver->ttm_tt_populate) ret = ttm->bdev->driver->ttm_tt_populate(ttm, ctx); else +#ifdef __NetBSD__ + panic("no ttm population"); +#else ret = ttm_pool_populate(ttm, ctx); +#endif if (!ret) ttm_tt_add_mapping(ttm); return ret; @@ -652,5 +658,9 @@ void ttm_tt_unpopulate(struct ttm_tt *tt if (ttm->bdev->driver->ttm_tt_unpopulate) ttm->bdev->driver->ttm_tt_unpopulate(ttm); else +#ifdef __NetBSD__ + panic("no ttm pool unpopulation"); +#else ttm_pool_unpopulate(ttm); +#endif }