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(&gt->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);
 

Reply via email to