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 <sys/cdefs.h>
-__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 <linux/dma-mapping.h>
 
@@ -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, &adev->irq.ih.ring_seg, 1, &rseg,
-		    BUS_DMA_WAITOK);
+		r = -bus_dmamem_alloc(adev->ddev->dmat, size, PAGE_SIZE, 0,
+		    &ih->ring_seg, 1, &rseg, 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,
-		    &adev->irq.ih.ring_map);
+		r = -bus_dmamap_create(adev->ddev->dmat, size, 1, PAGE_SIZE, 0,
+		    BUS_DMA_WAITOK, &ih->ring_map);
 		if (r) {
-fail1:			bus_dmamem_free(adev->ddev->dmat,
-			    &adev->irq.ih.ring_seg, 1);
+fail1:			bus_dmamem_free(adev->ddev->dmat, &ih->ring_seg, 1);
 			goto fail0;
 		}
-		r = -bus_dmamem_map(adev->ddev->dmat,
-		    &adev->irq.ih.ring_seg, 1, size, &kva,
-		    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, &ih->ring_seg, 1, size,
+		    &kva, 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,
 					      &dma_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,
-		    &adev->irq.ih.ring_seg, 1);
+		bus_dmamap_destroy(adev->ddev->dmat, ih->ring_map);
+		bus_dmamem_free(adev->ddev->dmat, &ih->ring_seg, 1);
 #else
 		dma_free_coherent(adev->dev, ih->ring_size + 8,
 				  (void *)ih->ring, ih->gpu_addr);

Reply via email to