Module Name: src Committed By: riastradh Date: Sun Dec 19 12:33:19 UTC 2021
Modified Files: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_object.c Log Message: amdgpu: call pmap_pv_track/untrack for the graphics aperture. Author: phone <m...@netbsd.org> Committer: Taylor R Campbell <riastr...@netbsd.org> To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.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/amd/amdgpu/amdgpu_object.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.c:1.6 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.c:1.6 Sun Dec 19 12:21:29 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.c Sun Dec 19 12:33:19 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_object.c,v 1.6 2021/12/19 12:21:29 riastradh Exp $ */ +/* $NetBSD: amdgpu_object.c,v 1.7 2021/12/19 12:33:19 riastradh Exp $ */ /* * Copyright 2009 Jerome Glisse. @@ -32,7 +32,7 @@ * Dave Airlie */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_object.c,v 1.6 2021/12/19 12:21:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_object.c,v 1.7 2021/12/19 12:33:19 riastradh Exp $"); #include <linux/io.h> #include <linux/list.h> @@ -1079,6 +1079,10 @@ int amdgpu_bo_init(struct amdgpu_device /* Add an MTRR for the VRAM */ adev->gmc.vram_mtrr = arch_phys_wc_add(adev->gmc.aper_base, adev->gmc.aper_size); +#ifdef __NetBSD__ + if (adev->gmc.aper_base) + pmap_pv_track(adev->gmc.aper_base, adev->gmc.aper_size); +#endif DRM_INFO("Detected VRAM RAM=%"PRIu64"M, BAR=%lluM\n", adev->gmc.mc_vram_size >> 20, (unsigned long long)adev->gmc.aper_size >> 20); @@ -1113,6 +1117,10 @@ int amdgpu_bo_late_init(struct amdgpu_de void amdgpu_bo_fini(struct amdgpu_device *adev) { amdgpu_ttm_fini(adev); +#ifdef __NetBSD__ + if (adev->gmc.aper_base) + pmap_pv_untrack(adev->gmc.aper_base, adev->gmc.aper_size); +#endif arch_phys_wc_del(adev->gmc.vram_mtrr); arch_io_free_memtype_wc(adev->gmc.aper_base, adev->gmc.aper_size); }