Module Name: src
Committed By: riastradh
Date: Sun Dec 19 11:39:56 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915/gt: intel_ggtt.c intel_gt.c
intel_gtt.h
src/sys/external/bsd/drm2/i915drm: intel_gtt.c
src/sys/external/bsd/drm2/include/asm: smp.h
src/sys/external/bsd/drm2/include/drm: intel-gtt.h
src/sys/external/bsd/drm2/include/linux: io-mapping.h
Log Message:
i915: ggtt
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h
cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/i915drm/intel_gtt.c
cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/drm2/include/asm/smp.h
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/include/drm/intel-gtt.h
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/include/linux/io-mapping.h
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/i915/gt/intel_ggtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c:1.6 Sun Dec 19 10:28:52 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c Sun Dec 19 11:39:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel_ggtt.c,v 1.6 2021/12/19 10:28:52 riastradh Exp $ */
+/* $NetBSD: intel_ggtt.c,v 1.7 2021/12/19 11:39:55 riastradh Exp $ */
// SPDX-License-Identifier: MIT
/*
@@ -6,7 +6,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_ggtt.c,v 1.6 2021/12/19 10:28:52 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_ggtt.c,v 1.7 2021/12/19 11:39:55 riastradh Exp $");
#include <linux/stop_machine.h>
@@ -24,6 +24,8 @@ __KERNEL_RCSID(0, "$NetBSD: intel_ggtt.c
#include "intel_gtt.h"
+#include <linux/nbsd-namespace.h>
+
static int
i915_get_ggtt_vma_pages(struct i915_vma *vma);
@@ -203,23 +205,6 @@ gen8_set_pte(bus_space_tag_t bst, bus_sp
bus_space_write_4(bst, bsh, 8*i + 4, (uint32_t)(pte >> 32));
#endif
}
-static gen8_pte_t
-gen8_get_pte(bus_space_tag_t bst, bus_space_handle_t bsh, unsigned i)
-{
- CTASSERT(_BYTE_ORDER == _LITTLE_ENDIAN); /* x86 */
- CTASSERT(sizeof(gen8_pte_t) == 8);
-#ifdef _LP64 /* XXX How to detect bus_space_read_8? */
- return bus_space_read_8(bst, bsh, 8*i);
-#else
- /*
- * XXX I'm not sure this case can actually happen in practice:
- * 32-bit gen8 chipsets?
- */
- return bus_space_read_4(bst, bsh, 8*i) |
- ((uint64_t)bus_space_read_4(bst, bsh, 8*i + 4) << 32);
-#endif
-}
-
#else
static void gen8_set_pte(void __iomem *addr, gen8_pte_t pte)
{
@@ -234,10 +219,17 @@ static void gen8_ggtt_insert_page(struct
u32 unused)
{
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
+#ifndef __NetBSD__
gen8_pte_t __iomem *pte =
(gen8_pte_t __iomem *)ggtt->gsm + offset / I915_GTT_PAGE_SIZE;
+#endif
+#ifdef __NetBSD__
+ gen8_set_pte(ggtt->gsmt, ggtt->gsmh, offset / I915_GTT_PAGE_SIZE,
+ gen8_pte_encode(addr, level, 0));
+#else
gen8_set_pte(pte, gen8_pte_encode(addr, level, 0));
+#endif
ggtt->invalidate(ggtt);
}
@@ -249,7 +241,7 @@ static void gen8_ggtt_insert_entries(str
{
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
#ifdef __NetBSD__
- bus_dmamap_t map = vma->pages;
+ bus_dmamap_t map = vma->pages->sgl[0].sg_dmamap;
unsigned seg;
unsigned pgno;
#else
@@ -264,10 +256,27 @@ static void gen8_ggtt_insert_entries(str
* not to allow the user to override access to a read only page.
*/
+#ifdef __NetBSD__
+ pgno = vma->node.start / I915_GTT_PAGE_SIZE;
+ for (seg = 0; seg < map->dm_nsegs; seg++) {
+ addr = map->dm_segs[seg].ds_addr;
+ bus_size_t len = map->dm_segs[seg].ds_len;
+ KASSERT((addr % I915_GTT_PAGE_SIZE) == 0);
+ KASSERT((len % I915_GTT_PAGE_SIZE) == 0);
+ for (;
+ len >= I915_GTT_PAGE_SIZE;
+ addr += I915_GTT_PAGE_SIZE, len -= I915_GTT_PAGE_SIZE) {
+ gen8_set_pte(ggtt->gsmt, ggtt->gsmh, pgno++,
+ pte_encode | addr);
+ }
+ KASSERT(len == 0);
+ }
+#else
gtt_entries = (gen8_pte_t __iomem *)ggtt->gsm;
gtt_entries += vma->node.start / I915_GTT_PAGE_SIZE;
for_each_sgt_daddr(addr, sgt_iter, vma->pages)
gen8_set_pte(gtt_entries++, pte_encode | addr);
+#endif
/*
* We want to flush the TLBs only after we're certain all the PTE
@@ -289,7 +298,7 @@ static void gen6_ggtt_insert_page(struct
#endif
#ifdef __NetBSD__
- bus_space_write_4(ggtt->gsmt, ggtt->gsmh, offset >> PAGE_SHIFT,
+ bus_space_write_4(ggtt->gsmt, ggtt->gsmh, offset / I915_GTT_PAGE_SIZE,
vm->pte_encode(addr, level, flags));
#else
iowrite32(vm->pte_encode(addr, level, flags), pte);
@@ -312,24 +321,26 @@ static void gen6_ggtt_insert_entries(str
{
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
#ifdef __NetBSD__
- bus_dmamap_t map = vma->pages;
+ bus_dmamap_t map = vma->pages->sgl[0].sg_dmamap;
unsigned seg;
unsigned pgno;
#else
gen6_pte_t __iomem *entries = (gen6_pte_t __iomem *)ggtt->gsm;
unsigned int i = vma->node.start / I915_GTT_PAGE_SIZE;
struct sgt_iter iter;
- dma_addr_t addr;
#endif
+ dma_addr_t addr;
#ifdef __NetBSD__
pgno = vma->node.start >> PAGE_SHIFT;
for (seg = 0; seg < map->dm_nsegs; seg++) {
addr = map->dm_segs[seg].ds_addr;
bus_size_t len = map->dm_segs[seg].ds_len;
- KASSERT((addr & (PAGE_SIZE - 1)) == 0);
- KASSERT((len & (PAGE_SIZE - 1)) == 0);
- for (; len >= PAGE_SIZE; addr += PAGE_SIZE, len -= PAGE_SIZE) {
+ KASSERT((addr % I915_GTT_PAGE_SIZE) == 0);
+ KASSERT((len % I915_GTT_PAGE_SIZE) == 0);
+ for (;
+ len >= I915_GTT_PAGE_SIZE;
+ addr += I915_GTT_PAGE_SIZE, len -= I915_GTT_PAGE_SIZE) {
/* XXX KASSERT(pgno < ...)? */
CTASSERT(sizeof(gen6_pte_t) == 4);
bus_space_write_4(ggtt->gsmt, ggtt->gsmh,
@@ -1003,16 +1014,12 @@ static int gen8_gmch_probe(struct i915_g
/* TODO: We're not aware of mappable constraints on gen8 yet */
if (!IS_DGFX(i915)) {
-#ifdef __NetBSD__
- ggtt->gmadr.start = pci_resource_start(pdev, 2);
- ggtt->mappable_end = pci_resource_len(pdev, 2);
-#else
ggtt->gmadr = pci_resource(pdev, 2);
ggtt->mappable_end = resource_size(&ggtt->gmadr);
-#endif
}
#ifdef __NetBSD__
+ __USE(err);
ggtt->max_paddr = DMA_BIT_MASK(39);
#else
err = pci_set_dma_mask(pdev, DMA_BIT_MASK(39));
@@ -1159,13 +1166,8 @@ static int gen6_gmch_probe(struct i915_g
u16 snb_gmch_ctl;
int err;
-#ifdef __NetBSD__
- ggtt->gmadr.start = pci_resource_start(pdev, 2);
- ggtt->mappable_end = pci_resource_len(pdev, 2);
-#else
ggtt->gmadr = pci_resource(pdev, 2);
ggtt->mappable_end = resource_size(&ggtt->gmadr);
-#endif
/*
* 64/512MB is the current min/max we actually know of, but this is
@@ -1177,6 +1179,7 @@ static int gen6_gmch_probe(struct i915_g
}
#ifdef __NetBSD__
+ __USE(err);
ggtt->max_paddr = DMA_BIT_MASK(40);
#else
err = pci_set_dma_mask(pdev, DMA_BIT_MASK(40));
@@ -1237,21 +1240,17 @@ static int i915_gmch_probe(struct i915_g
intel_gtt_get(&ggtt->vm.total, &gmadr_base, &ggtt->mappable_end);
+ ggtt->gmadr =
+ (struct resource)DEFINE_RES_MEM(gmadr_base, ggtt->mappable_end);
+
#ifdef __NetBSD__
- ggtt->gmadr.start = gmadr_base;
/* Based on i915_drv.c, i915_driver_hw_probe. */
- if (INTEL_INFO(dev)->gen <= 2)
+ if (IS_GEN(i915, 2))
ggtt->max_paddr = DMA_BIT_MASK(30);
- else if ((INTEL_INFO(dev)->gen <= 3) ||
- IS_BROADWATER(dev) || IS_CRESTLINE(dev))
+ else if (IS_I965G(i915) || IS_I965GM(i915))
ggtt->max_paddr = DMA_BIT_MASK(32);
- else if (INTEL_INFO(dev)->gen <= 5)
- ggtt->max_paddr = DMA_BIT_MASK(36);
else
ggtt->max_paddr = DMA_BIT_MASK(40);
-#else
- ggtt->gmadr =
- (struct resource)DEFINE_RES_MEM(gmadr_base, ggtt->mappable_end);
#endif
ggtt->do_idle_maps = needs_idle_maps(i915);
@@ -1308,7 +1307,7 @@ static int ggtt_probe_hw(struct i915_ggt
if ((ggtt->vm.total - 1) >> 32) {
DRM_ERROR("We never expected a Global GTT with more than 32bits"
- " of address space! Found %lldM!\n",
+ " of address space! Found %"PRId64"M!\n",
ggtt->vm.total >> 20);
ggtt->vm.total = 1ULL << 32;
ggtt->mappable_end =
@@ -1317,15 +1316,15 @@ static int ggtt_probe_hw(struct i915_ggt
if (ggtt->mappable_end > ggtt->vm.total) {
DRM_ERROR("mappable aperture extends past end of GGTT,"
- " aperture=%pa, total=%llx\n",
+ " aperture=%pa, total=%"PRIx64"\n",
&ggtt->mappable_end, ggtt->vm.total);
ggtt->mappable_end = ggtt->vm.total;
}
/* GMADR is the PCI mmio aperture into the global GTT. */
- DRM_DEBUG_DRIVER("GGTT size = %lluM\n", ggtt->vm.total >> 20);
- DRM_DEBUG_DRIVER("GMADR size = %lluM\n", (u64)ggtt->mappable_end >> 20);
- DRM_DEBUG_DRIVER("DSM size = %lluM\n",
+ DRM_DEBUG_DRIVER("GGTT size = %"PRIx64"M\n", ggtt->vm.total >> 20);
+ DRM_DEBUG_DRIVER("GMADR size = %"PRIx64"M\n", (u64)ggtt->mappable_end >> 20);
+ DRM_DEBUG_DRIVER("DSM size = %"PRIx64"M\n",
(u64)resource_size(&intel_graphics_stolen_res) >> 20);
return 0;
@@ -1432,6 +1431,8 @@ void i915_gem_restore_gtt_mappings(struc
setup_private_pat(ggtt->vm.gt->uncore);
}
+#ifndef __NetBSD__
+
static struct scatterlist *
rotate_pages(struct drm_i915_gem_object *obj, unsigned int offset,
unsigned int width, unsigned int height,
@@ -1639,6 +1640,8 @@ err_st_alloc:
return ERR_PTR(ret);
}
+#endif /* __NetBSD__ */
+
static int
i915_get_ggtt_vma_pages(struct i915_vma *vma)
{
@@ -1660,6 +1663,7 @@ i915_get_ggtt_vma_pages(struct i915_vma
vma->pages = vma->obj->mm.pages;
return 0;
+#ifndef __NetBSD__
case I915_GGTT_VIEW_ROTATED:
vma->pages =
intel_rotate_pages(&vma->ggtt_view.rotated, vma->obj);
@@ -1673,6 +1677,7 @@ i915_get_ggtt_vma_pages(struct i915_vma
case I915_GGTT_VIEW_PARTIAL:
vma->pages = intel_partial_pages(&vma->ggtt_view, vma->obj);
break;
+#endif
}
ret = 0;
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c:1.2 Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt.c Sun Dec 19 11:39:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel_gt.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $ */
+/* $NetBSD: intel_gt.c,v 1.3 2021/12/19 11:39:55 riastradh Exp $ */
// SPDX-License-Identifier: MIT
/*
@@ -6,9 +6,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_gt.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_gt.c,v 1.3 2021/12/19 11:39:55 riastradh Exp $");
+#include <linux/kernel.h>
+
+#if IS_ENABLED(CONFIG_DEBUGFS)
#include "debugfs_gt.h"
+#endif
#include "i915_drv.h"
#include "intel_context.h"
#include "intel_gt.h"
@@ -204,7 +208,7 @@ static void gen6_check_faults(struct int
fault = GEN6_RING_FAULT_REG_READ(engine);
if (fault & RING_FAULT_VALID) {
DRM_DEBUG_DRIVER("Unexpected fault\n"
- "\tAddr: 0x%08lx\n"
+ "\tAddr: 0x%08"PRIx32"\n"
"\tAddress space: %s\n"
"\tSource ID: %d\n"
"\tType: %d\n",
@@ -326,7 +330,9 @@ void intel_gt_driver_register(struct int
{
intel_rps_driver_register(>->rps);
+#if IS_ENABLED(CONFIG_DEBUGFS)
debugfs_gt_register(gt);
+#endif
}
static int intel_gt_init_scratch(struct intel_gt *gt, unsigned int size)
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h:1.11 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h:1.11 Sun Dec 19 11:33:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gtt.h Sun Dec 19 11:39:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel_gtt.h,v 1.11 2021/12/19 11:33:30 riastradh Exp $ */
+/* $NetBSD: intel_gtt.h,v 1.12 2021/12/19 11:39:55 riastradh Exp $ */
/* SPDX-License-Identifier: MIT */
/*
@@ -19,6 +19,7 @@
#define __INTEL_GTT_H__
#include <linux/io-mapping.h>
+#include <linux/ioport.h>
#include <linux/highmem.h>
#include <linux/kref.h>
#include <linux/mm.h>
@@ -346,13 +347,7 @@ struct i915_ggtt {
struct i915_address_space vm;
struct io_mapping iomap; /* Mapping to our CPU mappable region */
-#ifdef __NetBSD__
- struct {
- bus_addr_t start;
- } gmadr;
-#else
struct resource gmadr; /* GMADR resource */
-#endif
resource_size_t mappable_end; /* End offset that we can CPU map */
/** "Graphics Stolen Memory" holds the global PTEs */
Index: src/sys/external/bsd/drm2/i915drm/intel_gtt.c
diff -u src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.12 src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.13
--- src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.12 Sun Dec 19 01:35:10 2021
+++ src/sys/external/bsd/drm2/i915drm/intel_gtt.c Sun Dec 19 11:39:56 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel_gtt.c,v 1.12 2021/12/19 01:35:10 riastradh Exp $ */
+/* $NetBSD: intel_gtt.c,v 1.13 2021/12/19 11:39:56 riastradh Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
/* Intel GTT stubs */
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.12 2021/12/19 01:35:10 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.13 2021/12/19 11:39:56 riastradh Exp $");
#include <sys/types.h>
#include <sys/bus.h>
@@ -185,9 +185,10 @@ intel_gtt_insert_page(bus_addr_t addr, u
}
void
-intel_gtt_insert_sg_entries(bus_dmamap_t dmamap, unsigned va_page,
+intel_gtt_insert_sg_entries(struct sg_table *sg, unsigned va_page,
unsigned flags)
{
+ bus_dmamap_t dmamap = sg->sgl[0].sg_dmamap;
struct agp_i810_softc *const isc = agp_i810_sc->as_chipc;
off_t va = (off_t)va_page << PAGE_SHIFT;
unsigned seg;
Index: src/sys/external/bsd/drm2/include/asm/smp.h
diff -u src/sys/external/bsd/drm2/include/asm/smp.h:1.1 src/sys/external/bsd/drm2/include/asm/smp.h:1.2
--- src/sys/external/bsd/drm2/include/asm/smp.h:1.1 Sun Dec 19 01:53:29 2021
+++ src/sys/external/bsd/drm2/include/asm/smp.h Sun Dec 19 11:39:56 2021
@@ -0,0 +1,53 @@
+/* $NetBSD: smp.h,v 1.2 2021/12/19 11:39:56 riastradh Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _ASM_SMP_H_
+#define _ASM_SMP_H_
+
+#if defined(__i386__) || defined(__amd64__)
+
+#include <sys/null.h>
+#include <sys/xcall.h>
+
+#include <machine/cpufunc.h>
+
+static void
+wbinvd_xc(void *arg0, void *arg1)
+{
+ wbinvd();
+}
+
+static inline void
+wbinvd_on_all_cpus(void)
+{
+ xc_wait(xc_broadcast(0, wbinvd_xc, NULL, NULL));
+}
+
+#endif
+
+#endif /* _ASM_SMP_H_ */
Index: src/sys/external/bsd/drm2/include/drm/intel-gtt.h
diff -u src/sys/external/bsd/drm2/include/drm/intel-gtt.h:1.8 src/sys/external/bsd/drm2/include/drm/intel-gtt.h:1.9
--- src/sys/external/bsd/drm2/include/drm/intel-gtt.h:1.8 Sun Dec 19 01:35:10 2021
+++ src/sys/external/bsd/drm2/include/drm/intel-gtt.h Sun Dec 19 11:39:56 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel-gtt.h,v 1.8 2021/12/19 01:35:10 riastradh Exp $ */
+/* $NetBSD: intel-gtt.h,v 1.9 2021/12/19 11:39:56 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -37,8 +37,9 @@
#include <linux/ioport.h>
-struct pci_dev;
struct agp_bridge_data;
+struct pci_dev;
+struct sg_table;
void intel_gtt_get(uint64_t * /* GPU VA size in bytes */,
bus_addr_t * /* aperture base */,
@@ -49,7 +50,7 @@ void intel_gmch_remove(void);
bool intel_enable_gtt(void);
void intel_gtt_chipset_flush(void);
void intel_gtt_insert_page(bus_addr_t, unsigned, unsigned);
-void intel_gtt_insert_sg_entries(bus_dmamap_t, unsigned, unsigned);
+void intel_gtt_insert_sg_entries(struct sg_table *, unsigned, unsigned);
void intel_gtt_clear_range(unsigned, unsigned);
#define AGP_USER_MEMORY 1
Index: src/sys/external/bsd/drm2/include/linux/io-mapping.h
diff -u src/sys/external/bsd/drm2/include/linux/io-mapping.h:1.7 src/sys/external/bsd/drm2/include/linux/io-mapping.h:1.8
--- src/sys/external/bsd/drm2/include/linux/io-mapping.h:1.7 Sun Dec 19 01:34:30 2021
+++ src/sys/external/bsd/drm2/include/linux/io-mapping.h Sun Dec 19 11:39:56 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: io-mapping.h,v 1.7 2021/12/19 01:34:30 riastradh Exp $ */
+/* $NetBSD: io-mapping.h,v 1.8 2021/12/19 11:39:56 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -43,7 +43,7 @@
struct io_mapping {
bus_space_tag_t diom_bst;
bus_addr_t diom_addr;
- bus_size_t diom_size;
+ bus_size_t size; /* Linux API */
vaddr_t diom_va;
bool diom_mapped;
};
@@ -76,7 +76,7 @@ bus_space_io_mapping_init_wc(bus_space_t
/* Initialize the mapping record. */
mapping->diom_bst = bst;
mapping->diom_addr = addr;
- mapping->diom_size = size;
+ mapping->size = size;
mapping->diom_mapped = false;
/* Allocate kva for one page. */
@@ -128,8 +128,8 @@ io_mapping_map_wc(struct io_mapping *map
KASSERT(size == PAGE_SIZE);
KASSERT(0 == (offset & (PAGE_SIZE - 1)));
- KASSERT(PAGE_SIZE <= mapping->diom_size);
- KASSERT(offset <= (mapping->diom_size - PAGE_SIZE));
+ KASSERT(PAGE_SIZE <= mapping->size);
+ KASSERT(offset <= (mapping->size - PAGE_SIZE));
KASSERT(__type_fit(off_t, offset));
KASSERT(!mapping->diom_mapped);