CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-07-20 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Jul 20 18:02:45 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_fence.c

Log Message:
avoid calling drm_sched_fini() for AMDGPU_RING_TYPE_KIQ rings.

drm_sched_init() is not called for these rings, and we'd panic trying
to mutex_destroy() a mutex that wasn't initialised.

this seems like a general bug, not a bug in netbsd port.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.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_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.10 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.10	Sun Dec 19 12:02:39 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c	Thu Jul 20 18:02:45 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_fence.c,v 1.10 2021/12/19 12:02:39 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_fence.c,v 1.11 2023/07/20 18:02:45 mrg Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_fence.c,v 1.10 2021/12/19 12:02:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_fence.c,v 1.11 2023/07/20 18:02:45 mrg Exp $");
 
 #include 
 #include 
@@ -541,7 +541,9 @@ void amdgpu_fence_driver_fini(struct amd
 		}
 		amdgpu_irq_put(adev, ring->fence_drv.irq_src,
 			   ring->fence_drv.irq_type);
-		drm_sched_fini(>sched);
+		if (ring->funcs->type != AMDGPU_RING_TYPE_KIQ) {
+			drm_sched_fini(>sched);
+		}
 		del_timer_sync(>fence_drv.fallback_timer);
 		for (j = 0; j <= ring->fence_drv.num_fences_mask; ++j)
 			dma_fence_put(ring->fence_drv.fences[j]);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-07-20 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Jul 20 18:02:45 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_fence.c

Log Message:
avoid calling drm_sched_fini() for AMDGPU_RING_TYPE_KIQ rings.

drm_sched_init() is not called for these rings, and we'd panic trying
to mutex_destroy() a mutex that wasn't initialised.

this seems like a general bug, not a bug in netbsd port.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-05-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu May 25 12:07:43 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix mostly harmless merge botch.

Avoids confusing error message that should have been confined to an
error branch.


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-05-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu May 25 12:07:43 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix mostly harmless merge botch.

Avoids confusing error message that should have been confined to an
error branch.


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.18 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.19
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.18	Tue Feb 21 11:39:39 2023
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Thu May 25 12:07:43 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.18 2023/02/21 11:39:39 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.19 2023/05/25 12:07:43 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.18 2023/02/21 11:39:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.19 2023/05/25 12:07:43 riastradh Exp $");
 
 #include 
 #include 
@@ -3085,7 +3085,6 @@ int amdgpu_device_init(struct amdgpu_dev
 	}
 #ifdef __NetBSD__
 	if (i == DEVICE_COUNT_RESOURCE)
-		DRM_ERROR("Unable to find PCI I/O BAR\n");
 #else
 	if (adev->rio_mem == NULL)
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-03-01 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Mar  1 08:14:13 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Fix bogus loop invariant assertions in amdgpu_gart_map.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.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_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.10 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.10	Sat Jul 30 17:12:39 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c	Wed Mar  1 08:14:13 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gart.c,v 1.10 2022/07/30 17:12:39 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gart.c,v 1.11 2023/03/01 08:14:13 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.10 2022/07/30 17:12:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.11 2023/03/01 08:14:13 riastradh Exp $");
 
 #include 
 #include 
@@ -440,8 +440,9 @@ int amdgpu_gart_map(struct amdgpu_device
 	t = gpu_start / AMDGPU_GPU_PAGE_SIZE;
 
 	for (i = 0; npages --> 0;) {
-		KASSERT(i < dmamap->dm_nsegs);
 		for (j = 0; j < AMDGPU_GPU_PAGES_IN_CPU_PAGE; j++) {
+			KASSERT(i < dmamap->dm_nsegs);
+			KASSERT(seg_off < dmamap->dm_segs[i].ds_len);
 			amdgpu_gmc_set_pte_pde(adev, dst, t,
 			dmamap->dm_segs[i].ds_addr + seg_off, flags);
 			seg_off += AMDGPU_GPU_PAGE_SIZE;
@@ -449,7 +450,6 @@ int amdgpu_gart_map(struct amdgpu_device
 i++;
 seg_off = 0;
 			}
-			KASSERT(seg_off < dmamap->dm_segs[i].ds_len);
 		}
 	}
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-03-01 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Mar  1 08:14:13 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Fix bogus loop invariant assertions in amdgpu_gart_map.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-02-21 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Feb 21 11:39:39 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix scale factor for 64-bit doorbell indexing.

The register is 64 bits wide, but the indexing is for 32-bit
quantities (and presumably index must be even here).

Found by Jeff Frasca -- thanks!


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.17 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.18
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.17	Tue Sep 20 23:01:42 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Tue Feb 21 11:39:39 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.17 2022/09/20 23:01:42 mrg Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.18 2023/02/21 11:39:39 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.17 2022/09/20 23:01:42 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.18 2023/02/21 11:39:39 riastradh Exp $");
 
 #include 
 #include 
@@ -483,19 +483,19 @@ u64 amdgpu_mm_rdoorbell64(struct amdgpu_
 #ifdef __NetBSD__
 #ifdef _LP64
 		return bus_space_read_8(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index);
+		4*index);
 #else
 		uint64_t lo, hi;
 #if _BYTE_ORDER == _LITTLE_ENDIAN
 		lo = bus_space_read_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index);
+		4*index);
 		hi = bus_space_read_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index + 4);
+		4*index + 4);
 #else
 		hi = bus_space_read_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index);
+		4*index);
 		lo = bus_space_read_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index + 4);
+		4*index + 4);
 #endif
 		return lo | (hi << 32);
 #endif
@@ -524,21 +524,21 @@ void amdgpu_mm_wdoorbell64(struct amdgpu
 #ifdef __NetBSD__
 #ifdef _LP64
 		bus_space_write_8(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index, v);
+		4*index, v);
 #else
 		/*
 		 * XXX This might not be as atomic as one might hope...
 		 */
 #if _BYTE_ORDER == _LITTLE_ENDIAN
 		bus_space_write_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index, v & 0xU);
+		4*index, v & 0xU);
 		bus_space_write_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index + 4, v >> 32);
+		4*index + 4, v >> 32);
 #else
 		bus_space_write_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index, v >> 32);
+		4*index, v >> 32);
 		bus_space_write_4(adev->doorbell.bst, adev->doorbell.bsh,
-		8*index + 4, v & 0xU);
+		4*index + 4, v & 0xU);
 #endif
 #endif
 #else



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2023-02-21 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Feb 21 11:39:39 UTC 2023

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix scale factor for 64-bit doorbell indexing.

The register is 64 bits wide, but the indexing is for 32-bit
quantities (and presumably index must be even here).

Found by Jeff Frasca -- thanks!


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-10-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Oct  8 19:06:30 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu.h amdgpu_sa.c

Log Message:
amdgpu: Remove an #ifdef __NetBSD__ around drm_waitqueue_t.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-10-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Oct  8 19:06:30 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu.h amdgpu_sa.c

Log Message:
amdgpu: Remove an #ifdef __NetBSD__ around drm_waitqueue_t.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.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.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.7	Sun Dec 19 12:02:39 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h	Sat Oct  8 19:06:30 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu.h,v 1.7 2021/12/19 12:02:39 riastradh Exp $	*/
+/*	$NetBSD: amdgpu.h,v 1.8 2022/10/08 19:06:30 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -372,12 +372,8 @@ struct amdgpu_clock {
 #define AMDGPU_SA_NUM_FENCE_LISTS	32
 
 struct amdgpu_sa_manager {
-#ifdef __NetBSD__
 	spinlock_t		wq_lock;
 	drm_waitqueue_t		wq;
-#else
-	wait_queue_head_t	wq;
-#endif
 	struct amdgpu_bo	*bo;
 	struct list_head	*hole;
 	struct list_head	flist[AMDGPU_SA_NUM_FENCE_LISTS];

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_sa.c	Sat Oct  8 19:06:30 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_sa.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_sa.c,v 1.5 2022/10/08 19:06:30 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -45,7 +45,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_sa.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_sa.c,v 1.5 2022/10/08 19:06:30 riastradh Exp $");
 
 #include "amdgpu.h"
 
@@ -58,12 +58,8 @@ int amdgpu_sa_bo_manager_init(struct amd
 {
 	int i, r;
 
-#ifdef __NetBSD__
 	spin_lock_init(_manager->wq_lock);
 	DRM_INIT_WAITQUEUE(_manager->wq, "amdsabom");
-#else
-	init_waitqueue_head(_manager->wq);
-#endif
 	sa_manager->bo = NULL;
 	sa_manager->size = size;
 	sa_manager->domain = domain;
@@ -107,10 +103,8 @@ void amdgpu_sa_bo_manager_fini(struct am
 
 	amdgpu_bo_free_kernel(_manager->bo, _manager->gpu_addr, _manager->cpu_ptr);
 	sa_manager->size = 0;
-#ifdef __NetBSD__
 	DRM_DESTROY_WAITQUEUE(_manager->wq);
 	spin_lock_destroy(_manager->wq_lock);
-#endif
 }
 
 static void amdgpu_sa_bo_remove_locked(struct amdgpu_sa_bo *sa_bo)
@@ -310,11 +304,7 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_ma
 	INIT_LIST_HEAD(&(*sa_bo)->olist);
 	INIT_LIST_HEAD(&(*sa_bo)->flist);
 
-#ifdef __NetBSD__
 	spin_lock(_manager->wq_lock);
-#else
-	spin_lock(_manager->wq.lock);
-#endif
 	do {
 		for (i = 0; i < AMDGPU_SA_NUM_FENCE_LISTS; ++i)
 			tries[i] = 0;
@@ -324,11 +314,7 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_ma
 
 			if (amdgpu_sa_bo_try_alloc(sa_manager, *sa_bo,
 		   size, align)) {
-#ifdef __NetBSD__
 spin_unlock(_manager->wq_lock);
-#else
-spin_unlock(_manager->wq.lock);
-#endif
 return 0;
 			}
 
@@ -340,11 +326,7 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_ma
 fences[count++] = dma_fence_get(fences[i]);
 
 		if (count) {
-#ifdef __NetBSD__
 			spin_unlock(_manager->wq_lock);
-#else
-			spin_unlock(_manager->wq.lock);
-#endif
 			t = dma_fence_wait_any_timeout(fences, count, false,
 		   MAX_SCHEDULE_TIMEOUT,
 		   NULL);
@@ -352,32 +334,17 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_ma
 dma_fence_put(fences[i]);
 
 			r = (t > 0) ? 0 : t;
-#ifdef __NetBSD__
 			spin_lock(_manager->wq_lock);
-#else
-			spin_lock(_manager->wq.lock);
-#endif
 		} else {
 			/* if we have nothing to wait for block */
-#ifdef __NetBSD__
 			DRM_SPIN_WAIT_UNTIL(r, _manager->wq,
 			_manager->wq_lock,
 			amdgpu_sa_event(sa_manager, size, align));
-#else
-			r = wait_event_interruptible_locked(
-sa_manager->wq,
-amdgpu_sa_event(sa_manager, size, align)
-			);
-#endif
 		}
 
 	} while (!r);
 
-#ifdef __NetBSD__
 	spin_unlock(_manager->wq_lock);
-#else
-	spin_unlock(_manager->wq.lock);
-#endif
 	kfree(*sa_bo);
 	*sa_bo = NULL;
 	return r;
@@ -393,11 +360,7 @@ void amdgpu_sa_bo_free(struct amdgpu_dev
 	}
 
 	sa_manager = (*sa_bo)->manager;
-#ifdef __NetBSD__
 	spin_lock(_manager->wq_lock);
-#else
-	spin_lock(_manager->wq.lock);
-#endif
 	if (fence && !dma_fence_is_signaled(fence)) {
 		uint32_t idx;
 
@@ -407,13 +370,8 @@ void amdgpu_sa_bo_free(struct amdgpu_dev
 	} else {
 		

CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-30 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 30 17:12:39 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Make sure to bus_dmamap_sync before using zero'd dummy page.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-30 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 30 17:12:39 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Make sure to bus_dmamap_sync before using zero'd dummy page.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.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_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.9 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.9	Sat Jul 30 16:55:00 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c	Sat Jul 30 17:12:39 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gart.c,v 1.9 2022/07/30 16:55:00 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gart.c,v 1.10 2022/07/30 17:12:39 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.9 2022/07/30 16:55:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.10 2022/07/30 17:12:39 riastradh Exp $");
 
 #include 
 #include 
@@ -105,6 +105,9 @@ static int amdgpu_gart_dummy_page_init(s
 	if (error)
 		goto fail2;
 
+	bus_dmamap_sync(adev->ddev->dmat, adev->dummy_page_map, 0, PAGE_SIZE,
+	BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE);
+
 	/* Success!  */
 	adev->dummy_page_addr = adev->dummy_page_map->dm_segs[0].ds_addr;
 	return 0;



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-30 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 30 16:55:00 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Make sure dummy page is zero-filled.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.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_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.8	Fri Dec 24 11:19:55 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c	Sat Jul 30 16:55:00 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gart.c,v 1.8 2021/12/24 11:19:55 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gart.c,v 1.9 2022/07/30 16:55:00 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.8 2021/12/24 11:19:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.9 2022/07/30 16:55:00 riastradh Exp $");
 
 #include 
 #include 
@@ -78,6 +78,7 @@ static int amdgpu_gart_dummy_page_init(s
 {
 #ifdef __NetBSD__
 	int rsegs;
+	void *p;
 	int error;
 
 	/* XXX Can this be called more than once??  */
@@ -89,6 +90,12 @@ static int amdgpu_gart_dummy_page_init(s
 	if (error)
 		goto fail0;
 	KASSERT(rsegs == 1);
+	error = bus_dmamem_map(adev->ddev->dmat, >dummy_page_seg, 1,
+	PAGE_SIZE, , BUS_DMA_WAITOK);
+	if (error)
+		goto fail1;
+	memset(p, 0, PAGE_SIZE);
+	bus_dmamem_unmap(adev->ddev->dmat, p, PAGE_SIZE);
 	error = bus_dmamap_create(adev->ddev->dmat, PAGE_SIZE, 1, PAGE_SIZE, 0,
 	BUS_DMA_WAITOK, >dummy_page_map);
 	if (error)



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-30 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 30 16:55:00 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Make sure dummy page is zero-filled.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Jul 29 12:43:15 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ttm.c

Log Message:
amdgpu: Make amdgpu_ttm_io_mem_pfn return pfn, not paddr.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.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_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.11 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.11	Wed Jul 20 01:11:54 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c	Fri Jul 29 12:43:15 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ttm.c,v 1.11 2022/07/20 01:11:54 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ttm.c,v 1.12 2022/07/29 12:43:15 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -33,7 +33,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ttm.c,v 1.11 2022/07/20 01:11:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ttm.c,v 1.12 2022/07/29 12:43:15 riastradh Exp $");
 
 #include 
 #include 
@@ -777,7 +777,7 @@ static unsigned long amdgpu_ttm_io_mem_p
 	 */
 	const paddr_t cookie = bus_space_mmap(bo->bdev->memt, bo->mem.bus.base,
 	(mm->start + page_offset) << PAGE_SHIFT, /*vm_prot*/0, /*flags*/0);
-	return pmap_phys_address(cookie);
+	return pmap_phys_address(cookie) >> PAGE_SHIFT;
 #else
 	return (bo->mem.bus.base >> PAGE_SHIFT) + mm->start +
 		(offset >> PAGE_SHIFT);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Jul 29 12:43:15 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ttm.c

Log Message:
amdgpu: Make amdgpu_ttm_io_mem_pfn return pfn, not paddr.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 20 01:11:54 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ttm.c

Log Message:
amdgpu: Write amdgpu_ttm_io_mem_pfn in terms of bus_space_mmap.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.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_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.10 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c:1.10	Sun Dec 19 12:31:45 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c	Wed Jul 20 01:11:54 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ttm.c,v 1.10 2021/12/19 12:31:45 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ttm.c,v 1.11 2022/07/20 01:11:54 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -33,7 +33,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ttm.c,v 1.10 2021/12/19 12:31:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ttm.c,v 1.11 2022/07/20 01:11:54 riastradh Exp $");
 
 #include 
 #include 
@@ -764,8 +764,24 @@ static unsigned long amdgpu_ttm_io_mem_p
 	unsigned long offset = (page_offset << PAGE_SHIFT);
 
 	mm = amdgpu_find_mm_node(>mem, );
+#ifdef __NetBSD__
+	/*
+	 * vm_prot and flags are encoded in the pmap cookie, but we
+	 * then discard them; the caller will reapply them as
+	 * appropriate before it gets to pmap_enter.
+	 *
+	 * XXX What if the flags determine not just extra bits in the
+	 * cookie, but the address itself, in case different mapping
+	 * types (like prefetchable) are exposed through different
+	 * ranges instead of different page table entry bit?
+	 */
+	const paddr_t cookie = bus_space_mmap(bo->bdev->memt, bo->mem.bus.base,
+	(mm->start + page_offset) << PAGE_SHIFT, /*vm_prot*/0, /*flags*/0);
+	return pmap_phys_address(cookie);
+#else
 	return (bo->mem.bus.base >> PAGE_SHIFT) + mm->start +
 		(offset >> PAGE_SHIFT);
+#endif
 }
 
 /*



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-07-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 20 01:11:54 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ttm.c

Log Message:
amdgpu: Write amdgpu_ttm_io_mem_pfn in terms of bus_space_mmap.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Feb 27 14:23:24 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_bios.c

Log Message:
amdgpu: Make amdgpu_bios.c ACPI stuff build.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.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_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.5	Sun Dec 19 10:59:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c	Sun Feb 27 14:23:24 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_bios.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_bios.c,v 1.6 2022/02/27 14:23:24 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.c,v 1.6 2022/02/27 14:23:24 riastradh Exp $");
 
 #include "amdgpu.h"
 #include "atom.h"
@@ -39,6 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.
 #include 
 
 #include 
+#include 
 
 /*
  * BIOS.
@@ -327,7 +328,11 @@ static bool amdgpu_atrm_get_bios(struct 
 		return false;
 
 	while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
+#ifdef __NetBSD__
+		dhandle = (pdev->pd_ad ? pdev->pd_ad->ad_handle : NULL);
+#else
 		dhandle = ACPI_HANDLE(>dev);
+#endif
 		if (!dhandle)
 			continue;
 
@@ -340,7 +345,12 @@ static bool amdgpu_atrm_get_bios(struct 
 
 	if (!found) {
 		while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
+#ifdef __NetBSD__
+			dhandle = (pdev->pd_ad ? pdev->pd_ad->ad_handle
+			: NULL);
+#else
 			dhandle = ACPI_HANDLE(>dev);
+#endif
 			if (!dhandle)
 continue;
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2022-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Feb 27 14:23:24 UTC 2022

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_bios.c

Log Message:
amdgpu: Make amdgpu_bios.c ACPI stuff build.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-24 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Dec 24 11:19:55 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Sprinkle __diagused.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-24 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Dec 24 11:19:55 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
amdgpu: Sprinkle __diagused.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.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_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.7	Sun Dec 19 12:21:29 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c	Fri Dec 24 11:19:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gart.c,v 1.7 2021/12/19 12:21:29 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gart.c,v 1.8 2021/12/24 11:19:55 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.7 2021/12/19 12:21:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.8 2021/12/24 11:19:55 riastradh Exp $");
 
 #include 
 #include 
@@ -301,7 +301,7 @@ amdgpu_gart_unbind(struct amdgpu_device 
 	const unsigned gpu_per_cpu = AMDGPU_GPU_PAGES_IN_CPU_PAGE;
 	const unsigned gpu_npages = (npages * gpu_per_cpu);
 	const uint64_t gpu_pgstart = (gpu_start / AMDGPU_GPU_PAGE_SIZE);
-	const uint64_t pgstart = (gpu_pgstart / gpu_per_cpu);
+	const uint64_t pgstart __diagused = (gpu_pgstart / gpu_per_cpu);
 	uint64_t pgno, gpu_pgno;
 	uint32_t flags = AMDGPU_PTE_SYSTEM;
 
@@ -479,7 +479,7 @@ amdgpu_gart_bind(struct amdgpu_device *a
 	const unsigned gpu_per_cpu = AMDGPU_GPU_PAGES_IN_CPU_PAGE;
 	const unsigned gpu_npages = (npages * gpu_per_cpu);
 	const uint64_t gpu_pgstart = (gpu_start / AMDGPU_GPU_PAGE_SIZE);
-	const uint64_t pgstart = (gpu_pgstart / gpu_per_cpu);
+	const uint64_t pgstart __diagused = (gpu_pgstart / gpu_per_cpu);
 	uint64_t pgno, gpu_pgno;
 
 	KASSERT(pgstart == (gpu_start / PAGE_SIZE));



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:41:33 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Don't unmap doorbells if we didn't map them.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.15 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.16
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.15	Sun Dec 19 12:41:23 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 12:41:33 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.15 2021/12/19 12:41:23 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.16 2021/12/19 12:41:33 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.15 2021/12/19 12:41:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.16 2021/12/19 12:41:33 riastradh Exp $");
 
 #include 
 #include 
@@ -816,8 +816,11 @@ static int amdgpu_device_doorbell_init(s
 static void amdgpu_device_doorbell_fini(struct amdgpu_device *adev)
 {
 #ifdef __NetBSD__
-	bus_space_unmap(adev->doorbell.bst, adev->doorbell.bsh,
-	adev->doorbell.num_doorbells * sizeof(u32));
+	if (adev->doorbell.num_doorbells) {
+		bus_space_unmap(adev->doorbell.bst, adev->doorbell.bsh,
+		adev->doorbell.num_doorbells * sizeof(u32));
+		adev->doorbell.num_doorbells = 0;
+	}
 #else
 	iounmap(adev->doorbell.ptr);
 	adev->doorbell.ptr = NULL;



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:41:33 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Don't unmap doorbells if we didn't map them.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:41:23 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix register offsets in amdgpu_mm_rreg8/wreg8.

We already added rmmio_base when mapping rmmioh; let's not add it
again!


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.14 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.14	Sun Dec 19 12:36:59 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 12:41:23 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.14 2021/12/19 12:36:59 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.15 2021/12/19 12:41:23 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.14 2021/12/19 12:36:59 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.15 2021/12/19 12:41:23 riastradh Exp $");
 
 #include 
 #include 
@@ -272,8 +272,7 @@ uint32_t amdgpu_mm_rreg(struct amdgpu_de
 uint8_t amdgpu_mm_rreg8(struct amdgpu_device *adev, uint32_t offset) {
 	if (offset < adev->rmmio_size)
 #ifdef __NetBSD__
-		return bus_space_read_1(adev->rmmiot, adev->rmmioh,
-		adev->rmmio_base + offset);
+		return bus_space_read_1(adev->rmmiot, adev->rmmioh, offset);
 #else
 		return (readb(adev->rmmio + offset));
 #endif
@@ -298,8 +297,7 @@ uint8_t amdgpu_mm_rreg8(struct amdgpu_de
 void amdgpu_mm_wreg8(struct amdgpu_device *adev, uint32_t offset, uint8_t value) {
 	if (offset < adev->rmmio_size)
 #ifdef __NetBSD__
-		bus_space_write_1(adev->rmmiot, adev->rmmioh,
-		adev->rmmio_base + offset, value);
+		bus_space_write_1(adev->rmmiot, adev->rmmioh, offset, value);
 #else
 		writeb(value, adev->rmmio + offset);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:41:23 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix register offsets in amdgpu_mm_rreg8/wreg8.

We already added rmmio_base when mapping rmmioh; let's not add it
again!


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:49 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_irq.c

Log Message:
amdgpu: Try turning on MSI.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.c:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.c:1.8	Sun Dec 19 12:31:45 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.c	Sun Dec 19 12:38:49 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_irq.c,v 1.8 2021/12/19 12:31:45 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_irq.c,v 1.9 2021/12/19 12:38:49 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -45,7 +45,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_irq.c,v 1.8 2021/12/19 12:31:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_irq.c,v 1.9 2021/12/19 12:38:49 riastradh Exp $");
 
 #include 
 #include 
@@ -253,7 +253,14 @@ int amdgpu_irq_init(struct amdgpu_device
 	adev->irq.msi_enabled = false;
 
 	if (amdgpu_msi_ok(adev)) {
-#ifndef __NetBSD__		/* XXX amdgpu msix */
+#ifdef __NetBSD__		/* XXX amdgpu msix */
+		if (pci_enable_msi(adev->pdev) == 0) {
+			adev->irq.msi_enabled = true;
+			dev_dbg(adev->dev, "amdgpu: using MSI/MSI-X.\n");
+		} else {
+			dev_err(adev->dev, "amdgpu: failed to enable MSI\n");
+		}
+#else
 		int nvec = pci_msix_vec_count(adev->pdev);
 		unsigned int flags;
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:49 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_irq.c

Log Message:
amdgpu: Try turning on MSI.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:41 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ctx.c

Log Message:
amdgpu: Read amdgpu_ctx_entity::sequence under the lock.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.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_ctx.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.7	Sun Dec 19 12:31:45 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c	Sun Dec 19 12:38:41 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ctx.c,v 1.7 2021/12/19 12:31:45 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ctx.c,v 1.8 2021/12/19 12:38:41 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ctx.c,v 1.7 2021/12/19 12:31:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ctx.c,v 1.8 2021/12/19 12:38:41 riastradh Exp $");
 
 #include 
 #include "amdgpu.h"
@@ -463,18 +463,18 @@ void amdgpu_ctx_add_fence(struct amdgpu_
 			  struct dma_fence *fence, uint64_t* handle)
 {
 	struct amdgpu_ctx_entity *centity = to_amdgpu_ctx_entity(entity);
-	uint64_t seq = centity->sequence;
+	uint64_t seq;
 	struct dma_fence *other = NULL;
 	unsigned idx = 0;
 
+	spin_lock(>ring_lock);
+	seq = centity->sequence;
 	idx = seq & (amdgpu_sched_jobs - 1);
 	other = centity->fences[idx];
 	if (other)
 		BUG_ON(!dma_fence_is_signaled(other));
 
 	dma_fence_get(fence);
-
-	spin_lock(>ring_lock);
 	centity->fences[idx] = fence;
 	centity->sequence++;
 	spin_unlock(>ring_lock);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:41 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ctx.c

Log Message:
amdgpu: Read amdgpu_ctx_entity::sequence under the lock.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:24 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c

Log Message:
amdgpu: store process and lwp info for netbsd in amdgpu taskinfo.

Author: phone 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_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/amd/amdgpu/amdgpu_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.11 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.11	Sun Dec 19 12:33:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c	Sun Dec 19 12:38:24 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_vm.c,v 1.11 2021/12/19 12:33:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_vm.c,v 1.12 2021/12/19 12:38:24 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.11 2021/12/19 12:33:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.12 2021/12/19 12:38:24 riastradh Exp $");
 
 #include 
 #include 
@@ -3284,7 +3284,6 @@ int amdgpu_vm_ioctl(struct drm_device *d
 void amdgpu_vm_get_task_info(struct amdgpu_device *adev, unsigned int pasid,
 			 struct amdgpu_task_info *task_info)
 {
-#ifndef __NetBSD__		/* XXX amdgpu task info */
 	struct amdgpu_vm *vm;
 	unsigned long flags;
 
@@ -3295,7 +3294,6 @@ void amdgpu_vm_get_task_info(struct amdg
 		*task_info = vm->task_info;
 
 	spin_unlock_irqrestore(>vm_manager.pasid_lock, flags);
-#endif
 }
 
 /**
@@ -3305,10 +3303,18 @@ void amdgpu_vm_get_task_info(struct amdg
  */
 void amdgpu_vm_set_task_info(struct amdgpu_vm *vm)
 {
-#ifndef __NetBSD__		/* XXX amdgpu task info */
 	if (vm->task_info.pid)
 		return;
 
+#ifdef __NetBSD__
+	vm->task_info.pid = curlwp->l_proc->p_pid;
+	vm->task_info.tgid = curlwp->l_lid;
+	strlcpy(vm->task_info.process_name, curlwp->l_proc->p_comm,
+	sizeof vm->task_info.process_name);
+	if (curlwp->l_name)
+		strlcpy(vm->task_info.task_name, curlwp->l_name,
+		sizeof vm->task_info.task_name);
+#else
 	vm->task_info.pid = current->pid;
 	get_task_comm(vm->task_info.task_name, current);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:38:24 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c

Log Message:
amdgpu: store process and lwp info for netbsd in amdgpu taskinfo.

Author: phone 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:36:59 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Add a cautionary comment about non-LP64 branch.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.13 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.13	Sun Dec 19 12:36:50 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 12:36:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.13 2021/12/19 12:36:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.14 2021/12/19 12:36:59 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.13 2021/12/19 12:36:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.14 2021/12/19 12:36:59 riastradh Exp $");
 
 #include 
 #include 
@@ -528,6 +528,9 @@ void amdgpu_mm_wdoorbell64(struct amdgpu
 		bus_space_write_8(adev->doorbell.bst, adev->doorbell.bsh,
 		8*index, v);
 #else
+		/*
+		 * XXX This might not be as atomic as one might hope...
+		 */
 #if _BYTE_ORDER == _LITTLE_ENDIAN
 		bus_space_write_4(adev->doorbell.bst, adev->doorbell.bsh,
 		8*index, v & 0xU);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:36:59 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Add a cautionary comment about non-LP64 branch.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:36:41 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix indexing for 64-bit doorbells.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.11 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.11	Sun Dec 19 12:31:45 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 12:36:41 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.11 2021/12/19 12:31:45 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.12 2021/12/19 12:36:41 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.11 2021/12/19 12:31:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.12 2021/12/19 12:36:41 riastradh Exp $");
 
 #include 
 #include 
@@ -484,7 +484,7 @@ u64 amdgpu_mm_rdoorbell64(struct amdgpu_
 	if (index < adev->doorbell.num_doorbells) {
 #ifdef __NetBSD__
 		return bus_space_read_8(adev->doorbell.bst, adev->doorbell.bsh,
-		4*index);
+		8*index);
 #else
 		return atomic64_read((atomic64_t *)(adev->doorbell.ptr + index));
 #endif
@@ -509,7 +509,7 @@ void amdgpu_mm_wdoorbell64(struct amdgpu
 	if (index < adev->doorbell.num_doorbells) {
 #ifdef __NetBSD__
 		bus_space_write_8(adev->doorbell.bst, adev->doorbell.bsh,
-		4*index, v);
+		8*index, v);
 #else
 		atomic64_set((atomic64_t *)(adev->doorbell.ptr + index), v);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:36:41 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Fix indexing for 64-bit doorbells.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
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 
Committer: Taylor R Campbell 


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 
-__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 
 #include 
@@ -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);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
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 
Committer: Taylor R Campbell 


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.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:31:04 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c

Log Message:
amdgpu: Call idr_preload(_end) around idr_alloc, outside lock.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_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/amd/amdgpu/amdgpu_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.8	Sun Dec 19 12:30:47 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c	Sun Dec 19 12:31:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_vm.c,v 1.8 2021/12/19 12:30:47 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_vm.c,v 1.9 2021/12/19 12:31:04 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.8 2021/12/19 12:30:47 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.9 2021/12/19 12:31:04 riastradh Exp $");
 
 #include 
 #include 
@@ -2900,10 +2900,12 @@ int amdgpu_vm_init(struct amdgpu_device 
 	if (pasid) {
 		unsigned long flags;
 
+		idr_preload(GFP_ATOMIC);
 		spin_lock_irqsave(>vm_manager.pasid_lock, flags);
 		r = idr_alloc(>vm_manager.pasid_idr, vm, pasid, pasid + 1,
 			  GFP_ATOMIC);
 		spin_unlock_irqrestore(>vm_manager.pasid_lock, flags);
+		idr_preload_end();
 		if (r < 0)
 			goto error_free_root;
 
@@ -3007,10 +3009,12 @@ int amdgpu_vm_make_compute(struct amdgpu
 	if (pasid) {
 		unsigned long flags;
 
+		idr_preload(GFP_ATOMIC);
 		spin_lock_irqsave(>vm_manager.pasid_lock, flags);
 		r = idr_alloc(>vm_manager.pasid_idr, vm, pasid, pasid + 1,
 			  GFP_ATOMIC);
 		spin_unlock_irqrestore(>vm_manager.pasid_lock, flags);
+		idr_preload_end();
 
 		if (r == -ENOSPC)
 			goto unreserve_bo;



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:31:04 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c

Log Message:
amdgpu: Call idr_preload(_end) around idr_alloc, outside lock.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:29:33 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
amdgpu: Set a sensible maxsegsz for ih ring DMA map.

We need this to fit in one contiguous segment, so the maxsegsz had
better be at least the size we ask for, not something much smaller!


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.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_ih.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.9 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.9	Sun Dec 19 12:29:25 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c	Sun Dec 19 12:29:33 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ih.c,v 1.9 2021/12/19 12:29:25 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ih.c,v 1.10 2021/12/19 12:29:33 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.9 2021/12/19 12:29:25 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.10 2021/12/19 12:29:33 riastradh Exp $");
 
 #include 
 
@@ -77,7 +77,7 @@ fail0:			KASSERT(r);
 			return r;
 		}
 		KASSERT(rseg == 1);
-		r = -bus_dmamap_create(adev->ddev->dmat, size, 1, PAGE_SIZE, 0,
+		r = -bus_dmamap_create(adev->ddev->dmat, size, 1, size, 0,
 		BUS_DMA_WAITOK, >ring_map);
 		if (r) {
 fail1:			bus_dmamem_free(adev->ddev->dmat, >ring_seg, 1);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:29:33 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
amdgpu: Set a sensible maxsegsz for ih ring DMA map.

We need this to fit in one contiguous segment, so the maxsegsz had
better be at least the size we ask for, not something much smaller!


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:29:25 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
amdgpu: Fix bogus assertion about number of DMA segments.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.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_ih.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.8	Sun Dec 19 12:02:39 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c	Sun Dec 19 12:29:25 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ih.c,v 1.8 2021/12/19 12:02:39 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ih.c,v 1.9 2021/12/19 12:29:25 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.8 2021/12/19 12:02:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.9 2021/12/19 12:29:25 riastradh Exp $");
 
 #include 
 
@@ -76,7 +76,7 @@ int amdgpu_ih_ring_init(struct amdgpu_de
 fail0:			KASSERT(r);
 			return r;
 		}
-		KASSERT(rseg == 0);
+		KASSERT(rseg == 1);
 		r = -bus_dmamap_create(adev->ddev->dmat, size, 1, PAGE_SIZE, 0,
 		BUS_DMA_WAITOK, >ring_map);
 		if (r) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:29:25 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
amdgpu: Fix bogus assertion about number of DMA segments.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:22:37 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c amdgpu_vm.h

Log Message:
amdgpu: Thread bus_dma segments through amdgpu_vm.c.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.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/amd/amdgpu/amdgpu_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.6 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:1.6	Sun Dec 19 12:22:28 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c	Sun Dec 19 12:22:37 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_vm.c,v 1.6 2021/12/19 12:22:28 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_vm.c,v 1.7 2021/12/19 12:22:37 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.6 2021/12/19 12:22:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_vm.c,v 1.7 2021/12/19 12:22:37 riastradh Exp $");
 
 #include 
 #include 
@@ -1218,12 +1218,21 @@ struct amdgpu_bo_va *amdgpu_vm_bo_find(s
  * Returns:
  * The pointer for the page table entry.
  */
+#ifdef __NetBSD__
+uint64_t amdgpu_vm_map_gart(const bus_dma_segment_t *pages_addr, uint64_t addr)
+#else
 uint64_t amdgpu_vm_map_gart(const dma_addr_t *pages_addr, uint64_t addr)
+#endif
 {
 	uint64_t result;
 
 	/* page table offset */
+#ifdef __NetBSD__
+	KASSERT(pages_addr[addr >> PAGE_SHIFT].ds_len == PAGE_SIZE);
+	result = pages_addr[addr >> PAGE_SHIFT].ds_addr;
+#else
 	result = pages_addr[addr >> PAGE_SHIFT];
+#endif
 
 	/* in case cpu page size != gpu page size*/
 	result |= addr & (~PAGE_MASK);
@@ -1574,7 +1583,11 @@ static int amdgpu_vm_bo_update_mapping(s
    struct dma_fence *exclusive,
    uint64_t start, uint64_t last,
    uint64_t flags, uint64_t addr,
+#ifdef __NetBSD__
+   bus_dma_segment_t *pages_addr,
+#else
    dma_addr_t *pages_addr,
+#endif
    struct dma_fence **fence)
 {
 	struct amdgpu_vm_update_params params;
@@ -1633,7 +1646,11 @@ error_unlock:
  */
 static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
   struct dma_fence *exclusive,
+#ifdef __NetBSD__
+  bus_dma_segment_t *pages_addr,
+#else
   dma_addr_t *pages_addr,
+#endif
   struct amdgpu_vm *vm,
   struct amdgpu_bo_va_mapping *mapping,
   uint64_t flags,
@@ -1667,7 +1684,11 @@ static int amdgpu_vm_bo_split_mapping(st
 	}
 
 	do {
+#ifdef __NetBSD__
+		bus_dma_segment_t *dma_addr = NULL;
+#else
 		dma_addr_t *dma_addr = NULL;
+#endif
 		uint64_t max_entries;
 		uint64_t addr, last;
 
@@ -1688,16 +1709,28 @@ static int amdgpu_vm_bo_split_mapping(st
 			 ++count) {
 uint64_t idx = pfn + count;
 
+#ifdef __NetBSD__
+KASSERT(pages_addr[idx].ds_len == PAGE_SIZE);
+if (pages_addr[idx].ds_addr !=
+pages_addr[idx - 1].ds_addr + PAGE_SIZE)
+	break;
+#else
 if (pages_addr[idx] !=
 (pages_addr[idx - 1] + PAGE_SIZE))
 	break;
+#endif
 			}
 
 			if (count < min_linear_pages) {
 addr = pfn << PAGE_SHIFT;
 dma_addr = pages_addr;
 			} else {
+#ifdef __NetBSD__
+KASSERT(pages_addr[pfn].ds_len == PAGE_SIZE);
+addr = pages_addr[pfn].ds_addr;
+#else
 addr = pages_addr[pfn];
+#endif
 max_entries = count *
 	AMDGPU_GPU_PAGES_IN_CPU_PAGE;
 			}
@@ -1744,7 +1777,11 @@ int amdgpu_vm_bo_update(struct amdgpu_de
 	struct amdgpu_bo *bo = bo_va->base.bo;
 	struct amdgpu_vm *vm = bo_va->base.vm;
 	struct amdgpu_bo_va_mapping *mapping;
+#ifdef __NetBSD__
+	bus_dma_segment_t *pages_addr = NULL;
+#else
 	dma_addr_t *pages_addr = NULL;
+#endif
 	struct ttm_mem_reg *mem;
 	struct drm_mm_node *nodes;
 	struct dma_fence *exclusive, **last_update;
@@ -1763,7 +1800,11 @@ int amdgpu_vm_bo_update(struct amdgpu_de
 		nodes = mem->mm_node;
 		if (mem->mem_type == TTM_PL_TT) {
 			ttm = container_of(bo->tbo.ttm, struct ttm_dma_tt, ttm);
+#ifdef __NetBSD__
+			pages_addr = ttm->dma_address->dm_segs;
+#else
 			pages_addr = ttm->dma_address;
+#endif
 		}
 		exclusive = bo->tbo.moving;
 	}

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h	Sun Dec 19 12:22:37 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_vm.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	

CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:22:37 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_vm.c amdgpu_vm.h

Log Message:
amdgpu: Thread bus_dma segments through amdgpu_vm.c.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:01:13 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: amdgpu_device.c


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.9 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.9	Sun Dec 19 11:35:27 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 12:01:12 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.9 2021/12/19 11:35:27 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.10 2021/12/19 12:01:12 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,13 +28,14 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.9 2021/12/19 11:35:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.10 2021/12/19 12:01:12 riastradh Exp $");
 
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -912,7 +913,15 @@ int amdgpu_device_resize_fb_bar(struct a
 	if (amdgpu_sriov_vf(adev))
 		return 0;
 
-#ifndef __NetBSD__		/* XXX amdgpu fb resize */
+#ifdef __NetBSD__		/* XXX amdgpu fb resize */
+	__USE(space_needed);
+	__USE(rbar_size);
+	__USE(root);
+	__USE(res);
+	__USE(i);
+	__USE(cmd);
+	__USE(r);
+#else
 
 	/* Check if the root BUS has 64bit memory resources */
 	root = adev->pdev->bus;
@@ -3049,6 +3058,7 @@ int amdgpu_device_init(struct amdgpu_dev
 		DRM_INFO("PCI I/O BAR is not found.\n");
 
 	/* enable PCIE atomic ops */
+#ifndef __NetBSD__		/* XXX amdgpu pcie atomics */
 	r = pci_enable_atomic_ops_to_root(adev->pdev,
 	  PCI_EXP_DEVCAP2_ATOMIC_COMP32 |
 	  PCI_EXP_DEVCAP2_ATOMIC_COMP64);
@@ -3058,6 +3068,7 @@ int amdgpu_device_init(struct amdgpu_dev
 	} else {
 		adev->have_atomics_support = true;
 	}
+#endif
 
 	amdgpu_device_get_pcie_info(adev);
 
@@ -3374,7 +3385,9 @@ void amdgpu_device_fini(struct amdgpu_de
 	amdgpu_device_doorbell_fini(adev);
 
 	amdgpu_debugfs_regs_cleanup(adev);
+#ifndef __NetBSD__		/* XXX amdgpu sysfs */
 	device_remove_file(adev->dev, _attr_pcie_replay_count);
+#endif
 	if (adev->ucode_sysfs_en)
 		amdgpu_ucode_sysfs_fini(adev);
 	if (IS_ENABLED(CONFIG_PERF_EVENTS))
@@ -4213,14 +4226,14 @@ int amdgpu_device_gpu_recover(struct amd
 	 */
 
 	if (hive && !mutex_trylock(>reset_lock)) {
-		DRM_INFO("Bailing on TDR for s_job:%llx, hive: %llx as another already in progress",
+		DRM_INFO("Bailing on TDR for s_job:%"PRIx64", hive: %"PRIx64" as another already in progress",
 			  job ? job->base.id : -1, hive->hive_id);
 		return 0;
 	}
 
 	/* Start with adev pre asic reset first for soft reset check.*/
 	if (!amdgpu_device_lock_adev(adev, !hive)) {
-		DRM_INFO("Bailing on TDR for s_job:%llx, as another already in progress",
+		DRM_INFO("Bailing on TDR for s_job:%"PRIx64", as another already in progress",
 			  job ? job->base.id : -1);
 		return 0;
 	}
@@ -4400,6 +4413,7 @@ skip_sched_resume:
  */
 static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev)
 {
+#ifndef __NetBSD__		/* XXX amdgpu pcie */
 	struct pci_dev *pdev;
 	enum pci_bus_speed speed_cap, platform_speed_cap;
 	enum pcie_link_width platform_link_width;
@@ -4523,6 +4537,7 @@ static void amdgpu_device_get_pcie_info(
 			}
 		}
 	}
+#endif
 }
 
 int amdgpu_device_baco_enter(struct drm_device *dev)



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 12:01:13 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: amdgpu_device.c


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:59:53 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_df_v3_6.c

Log Message:
amdgpu: 64-bit format string abuse


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.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_df_v3_6.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.4	Sun Dec 19 11:59:45 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c	Sun Dec 19 11:59:53 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_df_v3_6.c,v 1.4 2021/12/19 11:59:45 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_df_v3_6.c,v 1.5 2021/12/19 11:59:53 riastradh Exp $	*/
 
 /*
  * Copyright 2018 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.4 2021/12/19 11:59:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.5 2021/12/19 11:59:53 riastradh Exp $");
 
 #include "amdgpu.h"
 #include "df_v3_6.h"
@@ -696,7 +696,7 @@ static void df_v3_6_pmc_get_count(struct
 		if (*count >= DF_V3_6_PERFMON_OVERFLOW)
 			*count = 0;
 
-		DRM_DEBUG_DRIVER("config=%llx addr=%08x:%08x val=%08x:%08x",
+		DRM_DEBUG_DRIVER("config=%"PRIx64" addr=%08x:%08x val=%08x:%08x",
 			 config, lo_base_addr, hi_base_addr, lo_val, hi_val);
 
 		break;



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:59:53 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_df_v3_6.c

Log Message:
amdgpu: 64-bit format string abuse


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:59:45 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_df_v3_6.c

Log Message:
amdgpu: Fix uninitialized variables.

If df_v3_6_pmc_config_2_cntr(adev, config) < 0 or >= 4, these don't
get set.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.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_df_v3_6.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.3	Sun Dec 19 11:35:07 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c	Sun Dec 19 11:59:45 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_df_v3_6.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_df_v3_6.c,v 1.4 2021/12/19 11:59:45 riastradh Exp $	*/
 
 /*
  * Copyright 2018 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.4 2021/12/19 11:59:45 riastradh Exp $");
 
 #include "amdgpu.h"
 #include "df_v3_6.h"
@@ -579,7 +579,7 @@ static void df_v3_6_pmc_release_cntr(str
 static void df_v3_6_reset_perfmon_cntr(struct amdgpu_device *adev,
 	 uint64_t config)
 {
-	uint32_t lo_base_addr, hi_base_addr;
+	uint32_t lo_base_addr = 0, hi_base_addr = 0;
 
 	df_v3_6_pmc_get_read_settings(adev, config, _base_addr,
   _base_addr);
@@ -665,7 +665,7 @@ static void df_v3_6_pmc_get_count(struct
   uint64_t config,
   uint64_t *count)
 {
-	uint32_t lo_base_addr, hi_base_addr, lo_val = 0, hi_val = 0;
+	uint32_t lo_base_addr = 0, hi_base_addr = 0, lo_val = 0, hi_val = 0;
 	*count = 0;
 
 	switch (adev->asic_type) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:59:45 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_df_v3_6.c

Log Message:
amdgpu: Fix uninitialized variables.

If df_v3_6_pmc_config_2_cntr(adev, config) < 0 or >= 4, these don't
get set.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:35:27 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Small pass.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.8	Sun Dec 19 11:35:07 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Sun Dec 19 11:35:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.8 2021/12/19 11:35:07 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.9 2021/12/19 11:35:27 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.8 2021/12/19 11:35:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.9 2021/12/19 11:35:27 riastradh Exp $");
 
 #include 
 #include 
@@ -580,7 +580,7 @@ static uint64_t amdgpu_invalid_rreg64(st
  */
 static void amdgpu_invalid_wreg64(struct amdgpu_device *adev, uint32_t reg, uint64_t v)
 {
-	DRM_ERROR("Invalid callback to write 64 bit register 0x%04X with 0x%08llX\n",
+	DRM_ERROR("Invalid callback to write 64 bit register 0x%04X with 0x%08"PRIX64"\n",
 		  reg, v);
 	BUG();
 }
@@ -725,7 +725,9 @@ static int amdgpu_device_doorbell_init(s
 		adev->doorbell.base = 0;
 		adev->doorbell.size = 0;
 		adev->doorbell.num_doorbells = 0;
+#ifndef __NetBSD__
 		adev->doorbell.ptr = NULL;
+#endif
 		return 0;
 	}
 
@@ -811,7 +813,7 @@ static void amdgpu_device_wb_fini(struct
 	if (adev->wb.wb_obj) {
 		amdgpu_bo_free_kernel(>wb.wb_obj,
   >wb.gpu_addr,
-  (void **)>wb.wb);
+  (void **)__UNVOLATILE(>wb.wb));
 		adev->wb.wb_obj = NULL;
 	}
 }
@@ -834,7 +836,7 @@ static int amdgpu_device_wb_init(struct 
 		r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * sizeof(uint32_t) * 8,
 	PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT,
 	>wb.wb_obj, >wb.gpu_addr,
-	(void **)>wb.wb);
+	(void **)__UNVOLATILE(>wb.wb));
 		if (r) {
 			dev_warn(adev->dev, "(%d) create WB bo failed\n", r);
 			return r;
@@ -844,7 +846,7 @@ static int amdgpu_device_wb_init(struct 
 		memset(>wb.used, 0, sizeof(adev->wb.used));
 
 		/* clear wb memory */
-		memset((char *)adev->wb.wb, 0, AMDGPU_MAX_WB * sizeof(uint32_t) * 8);
+		memset(__UNVOLATILE(adev->wb.wb), 0, AMDGPU_MAX_WB * sizeof(uint32_t) * 8);
 	}
 
 	return 0;
@@ -910,6 +912,8 @@ int amdgpu_device_resize_fb_bar(struct a
 	if (amdgpu_sriov_vf(adev))
 		return 0;
 
+#ifndef __NetBSD__		/* XXX amdgpu fb resize */
+
 	/* Check if the root BUS has 64bit memory resources */
 	root = adev->pdev->bus;
 	while (root->parent)
@@ -954,6 +958,8 @@ int amdgpu_device_resize_fb_bar(struct a
 
 	pci_write_config_word(adev->pdev, PCI_COMMAND, cmd);
 
+#endif
+
 	return 0;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 11:35:27 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
amdgpu: Small pass.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:24 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_pm.h

Log Message:
Fix up merge.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.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/amd/amdgpu/amdgpu_pm.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.h:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.h:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.h	Sun Dec 19 10:20:24 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_pm.h,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_pm.h,v 1.5 2021/12/19 10:20:24 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -26,6 +26,8 @@
 #ifndef __AMDGPU_PM_H__
 #define __AMDGPU_PM_H__
 
+struct amdgpu_device;
+
 #include 
 struct cg_flag_name
 {
@@ -46,6 +48,4 @@ void amdgpu_dpm_enable_uvd(struct amdgpu
 void amdgpu_dpm_enable_vce(struct amdgpu_device *adev, bool enable);
 void amdgpu_dpm_enable_jpeg(struct amdgpu_device *adev, bool enable);
 
-void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev);
-
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:24 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_pm.h

Log Message:
Fix up merge.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_pm.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:18 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_irq.h

Log Message:
Fix irq handler declaration.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.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/amd/amdgpu/amdgpu_irq.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.h:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.h:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.h	Sun Dec 19 10:20:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_irq.h,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_irq.h,v 1.5 2021/12/19 10:20:17 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -102,7 +102,7 @@ struct amdgpu_irq {
 };
 
 void amdgpu_irq_disable_all(struct amdgpu_device *adev);
-irqreturn_t amdgpu_irq_handler(int irq, void *arg);
+irqreturn_t amdgpu_irq_handler(DRM_IRQ_ARGS);
 
 int amdgpu_irq_init(struct amdgpu_device *adev);
 void amdgpu_irq_fini(struct amdgpu_device *adev);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:18 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_irq.h

Log Message:
Fix irq handler declaration.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_irq.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:10 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
Fix up ring bus dma alloc.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.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_ih.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c:1.5	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c	Sun Dec 19 10:20:10 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ih.c,v 1.5 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ih.c,v 1.6 2021/12/19 10:20:10 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.5 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ih.c,v 1.6 2021/12/19 10:20:10 riastradh Exp $");
 
 #include 
 
@@ -66,45 +66,38 @@ int amdgpu_ih_ring_init(struct amdgpu_de
 		/* add 8 bytes for the rptr/wptr shadows and
 		 * add them to the end of the ring allocation.
 		 */
-#ifdef __NetBSD__ /* XXX post-merge audit */
-		const bus_size_t size = adev->irq.ih.ring_size + 8;
+#ifdef __NetBSD__
+		const bus_size_t size = ih->ring_size + 8;
 		int rseg __diagused;
 		void *kva;
-		r = -bus_dmamem_alloc(adev->ddev->dmat, size,
-		PAGE_SIZE, 0, >irq.ih.ring_seg, 1, ,
-		BUS_DMA_WAITOK);
+		r = -bus_dmamem_alloc(adev->ddev->dmat, size, PAGE_SIZE, 0,
+		>ring_seg, 1, , BUS_DMA_WAITOK);
 		if (r) {
 fail0:			KASSERT(r);
 			return r;
 		}
 		KASSERT(rseg == 0);
-		r = -bus_dmamap_create(adev->ddev->dmat, size, 1,
-		PAGE_SIZE, 0, BUS_DMA_WAITOK,
-		>irq.ih.ring_map);
+		r = -bus_dmamap_create(adev->ddev->dmat, size, 1, PAGE_SIZE, 0,
+		BUS_DMA_WAITOK, >ring_map);
 		if (r) {
-fail1:			bus_dmamem_free(adev->ddev->dmat,
-			>irq.ih.ring_seg, 1);
+fail1:			bus_dmamem_free(adev->ddev->dmat, >ring_seg, 1);
 			goto fail0;
 		}
-		r = -bus_dmamem_map(adev->ddev->dmat,
-		>irq.ih.ring_seg, 1, size, ,
-		BUS_DMA_WAITOK);
-		if (r) {
-fail2:			bus_dmamap_destroy(adev->ddev->dmat,
-			adev->irq.ih.ring_map);
-			adev->irq.ih.ring_map = NULL;
+		r = -bus_dmamem_map(adev->ddev->dmat, >ring_seg, 1, size,
+		, BUS_DMA_WAITOK);
+		if (r) {
+fail2:			bus_dmamap_destroy(adev->ddev->dmat, ih->ring_map);
+			ih->ring_map = NULL;
 			goto fail1;
 		}
-		r = -bus_dmamap_load(adev->ddev->dmat,
-		adev->irq.ih.ring_map, kva, size, NULL,
-		BUS_DMA_WAITOK);
+		r = -bus_dmamap_load(adev->ddev->dmat, ih->ring_map, kva, size,
+		NULL, BUS_DMA_WAITOK);
 		if (r) {
 fail3: __unused		bus_dmamem_unmap(adev->ddev->dmat, kva, size);
 			goto fail2;
 		}
-		adev->irq.ih.ring = kva;
-		adev->irq.ih.rb_dma_addr =
-		adev->irq.ih.ring_map->dm_segs[0].ds_addr;
+		ih->ring = kva;
+		dma_addr = ih->ring_map->dm_segs[0].ds_addr;
 #else
 		ih->ring = dma_alloc_coherent(adev->dev, ih->ring_size + 8,
 	  _addr, GFP_KERNEL);
@@ -166,16 +159,13 @@ void amdgpu_ih_ring_fini(struct amdgpu_d
 		/* add 8 bytes for the rptr/wptr shadows and
 		 * add them to the end of the ring allocation.
 		 */
-#ifdef __NetBSD__ /* XXX post-merge audit */
-		const bus_size_t size = adev->irq.ih.ring_size + 8;
-		void *kva = __UNVOLATILE(adev->irq.ih.ring);
-		bus_dmamap_unload(adev->ddev->dmat,
-		adev->irq.ih.ring_map);
+#ifdef __NetBSD__
+		const bus_size_t size = ih->ring_size + 8;
+		void *kva = __UNVOLATILE(ih->ring);
+		bus_dmamap_unload(adev->ddev->dmat, ih->ring_map);
 		bus_dmamem_unmap(adev->ddev->dmat, kva, size);
-		bus_dmamap_destroy(adev->ddev->dmat,
-		adev->irq.ih.ring_map);
-		bus_dmamem_free(adev->ddev->dmat,
-		>irq.ih.ring_seg, 1);
+		bus_dmamap_destroy(adev->ddev->dmat, ih->ring_map);
+		bus_dmamem_free(adev->ddev->dmat, >ring_seg, 1);
 #else
 		dma_free_coherent(adev->dev, ih->ring_size + 8,
   (void *)ih->ring, ih->gpu_addr);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 10:20:10 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ih.c

Log Message:
Fix up ring bus dma alloc.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ih.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:46 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gfx_v7_0.c

Log Message:
sprintf -> snprintf


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.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_gfx_v7_0.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.c:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.c	Sun Dec 19 09:59:46 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gfx_v7_0.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gfx_v7_0.c,v 1.5 2021/12/19 09:59:46 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gfx_v7_0.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gfx_v7_0.c,v 1.5 2021/12/19 09:59:46 riastradh Exp $");
 
 #include 
 #include 
@@ -4415,7 +4415,7 @@ static int gfx_v7_0_compute_ring_init(st
 	ring->ring_obj = NULL;
 	ring->use_doorbell = true;
 	ring->doorbell_index = adev->doorbell_index.mec_ring0 + ring_id;
-	sprintf(ring->name, "comp_%d.%d.%d", ring->me, ring->pipe, ring->queue);
+	snprintf(ring->name, sizeof ring->name, "comp_%d.%d.%d", ring->me, ring->pipe, ring->queue);
 
 	irq_type = AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP
 		+ ((ring->me - 1) * adev->gfx.mec.num_pipe_per_mec)



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:46 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gfx_v7_0.c

Log Message:
sprintf -> snprintf


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v7_0.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:38 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gem.c

Log Message:
Use dev_dbg like upstream; avoid fake >pdev->dev.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.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_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.7	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c	Sun Dec 19 09:59:38 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gem.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gem.c,v 1.8 2021/12/19 09:59:38 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gem.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gem.c,v 1.8 2021/12/19 09:59:38 riastradh Exp $");
 
 #include 
 #include 
@@ -592,7 +592,7 @@ int amdgpu_gem_va_ioctl(struct drm_devic
 	int r = 0;
 
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
-		dev_dbg(>pdev->dev,
+		dev_dbg(pci_dev_dev(dev->pdev),
 			"va_address 0x%LX is in reserved area 0x%LX\n",
 			args->va_address, AMDGPU_VA_RESERVED_SIZE);
 		return -EINVAL;
@@ -600,7 +600,7 @@ int amdgpu_gem_va_ioctl(struct drm_devic
 
 	if (args->va_address >= AMDGPU_GMC_HOLE_START &&
 	args->va_address < AMDGPU_GMC_HOLE_END) {
-		dev_dbg(>pdev->dev,
+		dev_dbg(pci_dev_dev(dev->pdev),
 			"va_address 0x%LX is in VA hole 0x%LX-0x%LX\n",
 			args->va_address, AMDGPU_GMC_HOLE_START,
 			AMDGPU_GMC_HOLE_END);
@@ -610,7 +610,7 @@ int amdgpu_gem_va_ioctl(struct drm_devic
 	args->va_address &= AMDGPU_GMC_HOLE_MASK;
 
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
-		dev_dbg(>pdev->dev, "invalid flags combination 0x%08X\n",
+		dev_dbg(pci_dev_dev(dev->pdev), "invalid flags combination 0x%08X\n",
 			args->flags);
 		return -EINVAL;
 	}
@@ -622,7 +622,7 @@ int amdgpu_gem_va_ioctl(struct drm_devic
 	case AMDGPU_VA_OP_REPLACE:
 		break;
 	default:
-		dev_err(pci_dev_dev(dev->pdev), "unsupported operation %d\n",
+		dev_dbg(pci_dev_dev(dev->pdev), "unsupported operation %d\n",
 			args->operation);
 		return -EINVAL;
 	}



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:38 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gem.c

Log Message:
Use dev_dbg like upstream; avoid fake >pdev->dev.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:30 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_fence.c

Log Message:
Remove local amdgpu fence locking changes that are no longer needed.

But keep destroying spin locks and timers.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.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_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c:1.7	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c	Sun Dec 19 09:59:30 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_fence.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_fence.c,v 1.8 2021/12/19 09:59:30 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_fence.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_fence.c,v 1.8 2021/12/19 09:59:30 riastradh Exp $");
 
 #include 
 #include 
@@ -290,25 +290,6 @@ bool amdgpu_fence_process(struct amdgpu_
 	return true;
 }
 
-#ifdef __NetBSD__
-static int amdgpu_fence_check_signaled(struct amdgpu_fence *);
-
-static void
-amdgpu_fence_wakeup_locked(struct amdgpu_ring *ring)
-{
-	struct amdgpu_fence *fence, *next;
-
-	BUG_ON(!spin_is_locked(>fence_drv.fence_lock));
-	DRM_SPIN_WAKEUP_ALL(>fence_drv.fence_queue,
-	>fence_drv.fence_lock);
-	TAILQ_FOREACH_SAFE(fence, >fence_drv.fence_check, fence_check,
-	next) {
-		amdgpu_fence_check_signaled(fence);
-	}
-}
-#endif
-
-
 /**
  * amdgpu_fence_fallback - fallback for hardware interrupts
  *
@@ -567,11 +548,8 @@ void amdgpu_fence_driver_fini(struct amd
 		kfree(ring->fence_drv.fences);
 		ring->fence_drv.fences = NULL;
 		ring->fence_drv.initialized = false;
-#ifdef __NetBSD__
-		BUG_ON(!TAILQ_EMPTY(>fence_drv.fence_check));
-		DRM_DESTROY_WAITQUEUE(>fence_drv.fence_queue);
-		spin_lock_destroy(>fence_drv.fence_lock);
-#endif
+		spin_lock_destroy(>fence_drv.lock);
+		timer_teardown(>fence_drv.fallback_timer);
 	}
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2021-12-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Dec 19 09:59:30 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_fence.c

Log Message:
Remove local amdgpu fence locking changes that are no longer needed.

But keep destroying spin locks and timers.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.