Module Name:    src
Committed By:   skrll
Date:           Tue Dec 21 09:51:22 UTC 2021

Modified Files:
        src/sys/arch/mips/adm5120/dev: ahci.c
        src/sys/dev/usb: ehci.c ohci.c uhci.c usb_mem.c usb_mem.h usbdi.c
            xhci.c
        src/sys/external/bsd/dwc2: dwc2.c
        src/sys/external/bsd/dwc2/dist: dwc2_hcd.c dwc2_hcdddma.c
            dwc2_hcdqueue.c

Log Message:
Change the usb_mem API to take a bus_dma_tag_t in usb_allocmem instead of
a struct usbd_bus *.

This allows an HCD to use more than one tag.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/mips/adm5120/dev/ahci.c
cvs rdiff -u -r1.292 -r1.293 src/sys/dev/usb/ehci.c
cvs rdiff -u -r1.317 -r1.318 src/sys/dev/usb/ohci.c
cvs rdiff -u -r1.307 -r1.308 src/sys/dev/usb/uhci.c
cvs rdiff -u -r1.83 -r1.84 src/sys/dev/usb/usb_mem.c
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/usb/usb_mem.h
cvs rdiff -u -r1.219 -r1.220 src/sys/dev/usb/usbdi.c
cvs rdiff -u -r1.150 -r1.151 src/sys/dev/usb/xhci.c
cvs rdiff -u -r1.76 -r1.77 src/sys/external/bsd/dwc2/dwc2.c
cvs rdiff -u -r1.25 -r1.26 src/sys/external/bsd/dwc2/dist/dwc2_hcd.c
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c
cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.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/arch/mips/adm5120/dev/ahci.c
diff -u src/sys/arch/mips/adm5120/dev/ahci.c:1.27 src/sys/arch/mips/adm5120/dev/ahci.c:1.28
--- src/sys/arch/mips/adm5120/dev/ahci.c:1.27	Tue Dec  7 06:49:15 2021
+++ src/sys/arch/mips/adm5120/dev/ahci.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ahci.c,v 1.27 2021/12/07 06:49:15 skrll Exp $	*/
+/*	$NetBSD: ahci.c,v 1.28 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahci.c,v 1.27 2021/12/07 06:49:15 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahci.c,v 1.28 2021/12/21 09:51:22 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -877,7 +877,7 @@ ahci_device_ctrl_start(struct usbd_xfer 
 		td1 = (struct admhcd_td *)KSEG1ADDR(&td_v[1]);
 		td2 = (struct admhcd_td *)KSEG1ADDR(&td_v[2]);
 		td3 = (struct admhcd_td *)KSEG1ADDR(&td_v[3]);
-		err = usb_allocmem(&sc->sc_bus,
+		err = usb_allocmem(sc->sc_bus.ub_dmatag,
 			sizeof(usb_device_request_t),
 			0, USBMALLOC_COHERENT, &reqdma);
 		if (err)
@@ -990,7 +990,7 @@ ahci_device_ctrl_start(struct usbd_xfer 
 	usb_transfer_complete(xfer);
 	mutex_exit(&sc->sc_lock);
 
-	usb_freemem(&sc->sc_bus, &reqdma);
+	usb_freemem(&reqdma);
 
 	return USBD_NORMAL_COMPLETION;
 }

Index: src/sys/dev/usb/ehci.c
diff -u src/sys/dev/usb/ehci.c:1.292 src/sys/dev/usb/ehci.c:1.293
--- src/sys/dev/usb/ehci.c:1.292	Tue Dec 21 08:49:03 2021
+++ src/sys/dev/usb/ehci.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ehci.c,v 1.292 2021/12/21 08:49:03 skrll Exp $ */
+/*	$NetBSD: ehci.c,v 1.293 2021/12/21 09:51:22 skrll Exp $ */
 
 /*
  * Copyright (c) 2004-2012,2016,2020 The NetBSD Foundation, Inc.
@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.292 2021/12/21 08:49:03 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.293 2021/12/21 09:51:22 skrll Exp $");
 
 #include "ohci.h"
 #include "uhci.h"
@@ -517,7 +517,8 @@ ehci_init(ehci_softc_t *sc)
 	case 2: sc->sc_flsize = 256; break;
 	case 3: return EIO;
 	}
-	err = usb_allocmem(&sc->sc_bus, sc->sc_flsize * sizeof(ehci_link_t),
+	err = usb_allocmem(sc->sc_bus.ub_dmatag,
+	    sc->sc_flsize * sizeof(ehci_link_t),
 	    EHCI_FLALIGN_ALIGN, USBMALLOC_COHERENT, &sc->sc_fldma);
 	if (err)
 		return err;
@@ -654,7 +655,7 @@ ehci_init(ehci_softc_t *sc)
 	ehci_free_sqh(sc, sc->sc_async_head);
 #endif
  bad1:
-	usb_freemem(&sc->sc_bus, &sc->sc_fldma);
+	usb_freemem(&sc->sc_fldma);
 	return err;
 }
 
@@ -1999,7 +2000,7 @@ ehci_open(struct usbd_pipe *pipe)
 
 	switch (xfertype) {
 	case UE_CONTROL:
-		err = usb_allocmem(&sc->sc_bus, sizeof(usb_device_request_t),
+		err = usb_allocmem(sc->sc_bus.ub_dmatag, sizeof(usb_device_request_t),
 		    0, USBMALLOC_COHERENT, &epipe->ctrl.reqdma);
 #ifdef EHCI_DEBUG
 		if (err)
@@ -2796,7 +2797,7 @@ ehci_alloc_sqh(ehci_softc_t *sc)
 		mutex_exit(&sc->sc_lock);
 
 		usb_dma_t dma;
-		int err = usb_allocmem(&sc->sc_bus,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 		    EHCI_SQH_SIZE * EHCI_SQH_CHUNK,
 		    EHCI_PAGE_SIZE, USBMALLOC_COHERENT, &dma);
 
@@ -2852,7 +2853,7 @@ ehci_alloc_sqtd(ehci_softc_t *sc)
 		mutex_exit(&sc->sc_lock);
 
 		usb_dma_t dma;
-		int err = usb_allocmem(&sc->sc_bus,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 		    EHCI_SQTD_SIZE * EHCI_SQTD_CHUNK,
 		    EHCI_PAGE_SIZE, USBMALLOC_COHERENT, &dma);
 
@@ -3112,7 +3113,7 @@ ehci_alloc_itd(ehci_softc_t *sc)
 		mutex_exit(&sc->sc_lock);
 
 		usb_dma_t dma;
-		int err = usb_allocmem(&sc->sc_bus,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 		    EHCI_ITD_SIZE * EHCI_ITD_CHUNK,
 		    EHCI_PAGE_SIZE, USBMALLOC_COHERENT, &dma);
 
@@ -3166,7 +3167,7 @@ ehci_alloc_sitd(ehci_softc_t *sc)
 		mutex_exit(&sc->sc_lock);
 
 		usb_dma_t dma;
-		int err = usb_allocmem(&sc->sc_bus,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 		    EHCI_SITD_SIZE * EHCI_SITD_CHUNK,
 		    EHCI_PAGE_SIZE, USBMALLOC_COHERENT, &dma);
 
@@ -3772,7 +3773,7 @@ ehci_device_ctrl_close(struct usbd_pipe 
 
 	ehci_close_pipe(pipe, sc->sc_async_head);
 
-	usb_freemem(&sc->sc_bus, &epipe->ctrl.reqdma);
+	usb_freemem(&epipe->ctrl.reqdma);
 }
 
 /*

Index: src/sys/dev/usb/ohci.c
diff -u src/sys/dev/usb/ohci.c:1.317 src/sys/dev/usb/ohci.c:1.318
--- src/sys/dev/usb/ohci.c:1.317	Thu Jun 24 23:01:03 2021
+++ src/sys/dev/usb/ohci.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ohci.c,v 1.317 2021/06/24 23:01:03 mrg Exp $	*/
+/*	$NetBSD: ohci.c,v 1.318 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2005, 2012, 2016, 2020 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.317 2021/06/24 23:01:03 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.318 2021/12/21 09:51:22 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -388,7 +388,7 @@ ohci_detach(struct ohci_softc *sc, int f
 	mutex_destroy(&sc->sc_intr_lock);
 
 	if (sc->sc_hcca != NULL)
-		usb_freemem(&sc->sc_bus, &sc->sc_hccadma);
+		usb_freemem(&sc->sc_hccadma);
 	pool_cache_destroy(sc->sc_xferpool);
 	cv_destroy(&sc->sc_abort_cv);
 
@@ -409,7 +409,7 @@ ohci_alloc_sed(ohci_softc_t *sc)
 		DPRINTFN(2, "allocating chunk", 0, 0, 0, 0);
 		mutex_exit(&sc->sc_lock);
 
-		int err = usb_allocmem(&sc->sc_bus, OHCI_SED_SIZE * OHCI_SED_CHUNK,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, OHCI_SED_SIZE * OHCI_SED_CHUNK,
 		    OHCI_ED_ALIGN, 0 /*!USBMALLOC_COHERENT*/, &dma);
 		if (err)
 			return NULL;
@@ -467,7 +467,7 @@ ohci_alloc_std(ohci_softc_t *sc)
 		DPRINTFN(2, "allocating chunk", 0, 0, 0, 0);
 		mutex_exit(&sc->sc_lock);
 
-		int err = usb_allocmem(&sc->sc_bus, OHCI_STD_SIZE * OHCI_STD_CHUNK,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, OHCI_STD_SIZE * OHCI_STD_CHUNK,
 		   OHCI_TD_ALIGN, USBMALLOC_COHERENT, &dma);
 		if (err)
 			return NULL;
@@ -719,7 +719,7 @@ ohci_alloc_sitd(ohci_softc_t *sc)
 		DPRINTFN(2, "allocating chunk", 0, 0, 0, 0);
 		mutex_exit(&sc->sc_lock);
 
-		int err = usb_allocmem(&sc->sc_bus, OHCI_SITD_SIZE * OHCI_SITD_CHUNK,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, OHCI_SITD_SIZE * OHCI_SITD_CHUNK,
 		    OHCI_ITD_ALIGN, USBMALLOC_COHERENT, &dma);
 		if (err)
 			return NULL;
@@ -826,7 +826,7 @@ ohci_init(ohci_softc_t *sc)
 
 	/* XXX determine alignment by R/W */
 	/* Allocate the HCCA area. */
-	err = usb_allocmem(&sc->sc_bus, OHCI_HCCA_SIZE,	OHCI_HCCA_ALIGN,
+	err = usb_allocmem(sc->sc_bus.ub_dmatag, OHCI_HCCA_SIZE,	OHCI_HCCA_ALIGN,
 	    USBMALLOC_COHERENT, &sc->sc_hccadma);
 	if (err) {
 		sc->sc_hcca = NULL;
@@ -1073,7 +1073,7 @@ ohci_init(ohci_softc_t *sc)
  bad2:
 	ohci_free_sed(sc, sc->sc_ctrl_head);
  bad1:
-	usb_freemem(&sc->sc_bus, &sc->sc_hccadma);
+	usb_freemem(&sc->sc_hccadma);
 	sc->sc_hcca = NULL;
 	return err;
 }
@@ -2140,7 +2140,7 @@ ohci_open(struct usbd_pipe *pipe)
 		switch (xfertype) {
 		case UE_CONTROL:
 			pipe->up_methods = &ohci_device_ctrl_methods;
-			int error = usb_allocmem(&sc->sc_bus,
+			int error = usb_allocmem(sc->sc_bus.ub_dmatag,
 			    sizeof(usb_device_request_t), 0,
 			    USBMALLOC_COHERENT, &opipe->ctrl.reqdma);
 			if (error)
@@ -2989,7 +2989,7 @@ ohci_device_ctrl_close(struct usbd_pipe 
 	ohci_close_pipe(pipe, sc->sc_ctrl_head);
 	ohci_free_std_locked(sc, opipe->tail.td);
 
-	usb_freemem(&sc->sc_bus, &opipe->ctrl.reqdma);
+	usb_freemem(&opipe->ctrl.reqdma);
 }
 
 /************************/

Index: src/sys/dev/usb/uhci.c
diff -u src/sys/dev/usb/uhci.c:1.307 src/sys/dev/usb/uhci.c:1.308
--- src/sys/dev/usb/uhci.c:1.307	Mon Oct  4 21:02:39 2021
+++ src/sys/dev/usb/uhci.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhci.c,v 1.307 2021/10/04 21:02:39 andvar Exp $	*/
+/*	$NetBSD: uhci.c,v 1.308 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2011, 2012, 2016, 2020 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.307 2021/10/04 21:02:39 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.308 2021/12/21 09:51:22 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -453,7 +453,7 @@ uhci_init(uhci_softc_t *sc)
 	uhci_reset(sc);
 
 	/* Allocate and initialize real frame array. */
-	int err = usb_allocmem(&sc->sc_bus,
+	int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 	    UHCI_FRAMELIST_COUNT * sizeof(uhci_physaddr_t),
 	    UHCI_FRAMELIST_ALIGN, USBMALLOC_COHERENT, &sc->sc_dma);
 	if (err)
@@ -1844,7 +1844,7 @@ uhci_alloc_std(uhci_softc_t *sc)
 		DPRINTFN(2, "allocating chunk", 0, 0, 0, 0);
 		mutex_exit(&sc->sc_lock);
 
-		int err = usb_allocmem(&sc->sc_bus, UHCI_STD_SIZE * UHCI_STD_CHUNK,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, UHCI_STD_SIZE * UHCI_STD_CHUNK,
 		    UHCI_TD_ALIGN, USBMALLOC_COHERENT, &dma);
 		if (err)
 			return NULL;
@@ -1910,7 +1910,7 @@ uhci_alloc_sqh(uhci_softc_t *sc)
 		DPRINTFN(2, "allocating chunk", 0, 0, 0, 0);
 		mutex_exit(&sc->sc_lock);
 
-		int err = usb_allocmem(&sc->sc_bus, UHCI_SQH_SIZE * UHCI_SQH_CHUNK,
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, UHCI_SQH_SIZE * UHCI_SQH_CHUNK,
 		    UHCI_QH_ALIGN, USBMALLOC_COHERENT, &dma);
 		if (err)
 			return NULL;
@@ -2823,7 +2823,7 @@ uhci_device_ctrl_close(struct usbd_pipe 
 	uhci_free_std_locked(sc, upipe->ctrl.setup);
 	uhci_free_std_locked(sc, upipe->ctrl.stat);
 
-	usb_freemem(&sc->sc_bus, &upipe->ctrl.reqdma);
+	usb_freemem(&upipe->ctrl.reqdma);
 }
 
 /* Abort a device interrupt request. */
@@ -3505,7 +3505,7 @@ uhci_open(struct usbd_pipe *pipe)
 				uhci_free_std(sc, upipe->ctrl.setup);
 				goto bad;
 			}
-			int err = usb_allocmem(&sc->sc_bus,
+			int err = usb_allocmem(sc->sc_bus.ub_dmatag,
 			    sizeof(usb_device_request_t), 0,
 			    USBMALLOC_COHERENT, &upipe->ctrl.reqdma);
 			if (err) {

Index: src/sys/dev/usb/usb_mem.c
diff -u src/sys/dev/usb/usb_mem.c:1.83 src/sys/dev/usb/usb_mem.c:1.84
--- src/sys/dev/usb/usb_mem.c:1.83	Tue Dec 21 09:25:17 2021
+++ src/sys/dev/usb/usb_mem.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: usb_mem.c,v 1.83 2021/12/21 09:25:17 skrll Exp $	*/
+/*	$NetBSD: usb_mem.c,v 1.84 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb_mem.c,v 1.83 2021/12/21 09:25:17 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb_mem.c,v 1.84 2021/12/21 09:51:22 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -262,10 +262,9 @@ usb_block_freemem(usb_dma_block_t *b)
 }
 
 int
-usb_allocmem(struct usbd_bus *bus, size_t size, size_t align, u_int flags,
+usb_allocmem(bus_dma_tag_t tag, size_t size, size_t align, u_int flags,
     usb_dma_t *p)
 {
-	bus_dma_tag_t tag = bus->ub_dmatag;
 	usbd_status err;
 	struct usb_frag_dma *f;
 	usb_dma_block_t *b;
@@ -345,7 +344,7 @@ usb_allocmem(struct usbd_bus *bus, size_
 }
 
 void
-usb_freemem(struct usbd_bus *bus, usb_dma_t *p)
+usb_freemem(usb_dma_t *p)
 {
 	struct usb_frag_dma *f;
 

Index: src/sys/dev/usb/usb_mem.h
diff -u src/sys/dev/usb/usb_mem.h:1.34 src/sys/dev/usb/usb_mem.h:1.35
--- src/sys/dev/usb/usb_mem.h:1.34	Tue Jan  5 18:00:21 2021
+++ src/sys/dev/usb/usb_mem.h	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: usb_mem.h,v 1.34 2021/01/05 18:00:21 skrll Exp $	*/
+/*	$NetBSD: usb_mem.h,v 1.35 2021/12/21 09:51:22 skrll Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/usb_mem.h,v 1.9 1999/11/17 22:33:47 n_hibma Exp $	*/
 
 /*
@@ -51,12 +51,12 @@ typedef struct usb_dma_block {
 #define USBMALLOC_COHERENT	__BIT(1)
 #define USBMALLOC_ZERO		__BIT(2)
 
-int		usb_allocmem(struct usbd_bus *, size_t, size_t, u_int, usb_dma_t *);
-void		usb_freemem(struct usbd_bus *, usb_dma_t *);
+int		usb_allocmem(bus_dma_tag_t, size_t, size_t, u_int, usb_dma_t *);
+void		usb_freemem(usb_dma_t *);
 void		usb_syncmem(usb_dma_t *, bus_addr_t, bus_size_t, int);
 
 bus_addr_t	usb_dmaaddr(usb_dma_t *, unsigned int);
 
-#define DMAADDR(dma, o) usb_dmaaddr((dma), (o))
+#define DMAADDR(dma, o)	usb_dmaaddr((dma), (o))
 #define KERNADDR(dma, o) \
 	((void *)((char *)(dma)->udma_block->kaddr + (dma)->udma_offs + (o)))

Index: src/sys/dev/usb/usbdi.c
diff -u src/sys/dev/usb/usbdi.c:1.219 src/sys/dev/usb/usbdi.c:1.220
--- src/sys/dev/usb/usbdi.c:1.219	Tue Sep  7 10:44:18 2021
+++ src/sys/dev/usb/usbdi.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: usbdi.c,v 1.219 2021/09/07 10:44:18 riastradh Exp $	*/
+/*	$NetBSD: usbdi.c,v 1.220 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * Copyright (c) 1998, 2012, 2015 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.219 2021/09/07 10:44:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.220 2021/12/21 09:51:22 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -503,7 +503,7 @@ usbd_alloc_buffer(struct usbd_xfer *xfer
 		usb_dma_t *dmap = &xfer->ux_dmabuf;
 
 		KASSERT((bus->ub_dmaflags & USBMALLOC_COHERENT) == 0);
-		int err = usb_allocmem(bus, size, 0, bus->ub_dmaflags, dmap);
+		int err = usb_allocmem(bus->ub_dmatag, size, 0, bus->ub_dmaflags, dmap);
 		if (err) {
 			return NULL;
 		}
@@ -537,7 +537,7 @@ usbd_free_buffer(struct usbd_xfer *xfer)
 	if (bus->ub_usedma) {
 		usb_dma_t *dmap = &xfer->ux_dmabuf;
 
-		usb_freemem(bus, dmap);
+		usb_freemem(dmap);
 		return;
 	}
 #endif

Index: src/sys/dev/usb/xhci.c
diff -u src/sys/dev/usb/xhci.c:1.150 src/sys/dev/usb/xhci.c:1.151
--- src/sys/dev/usb/xhci.c:1.150	Sat Oct 23 20:40:23 2021
+++ src/sys/dev/usb/xhci.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: xhci.c,v 1.150 2021/10/23 20:40:23 jakllsch Exp $	*/
+/*	$NetBSD: xhci.c,v 1.151 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.150 2021/10/23 20:40:23 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.151 2021/12/21 09:51:22 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -644,10 +644,10 @@ xhci_detach(struct xhci_softc *sc, int f
 	xhci_rt_write_8(sc, XHCI_ERDP(0), 0 | XHCI_ERDP_BUSY);
 	xhci_ring_free(sc, &sc->sc_er);
 
-	usb_freemem(&sc->sc_bus, &sc->sc_eventst_dma);
+	usb_freemem(&sc->sc_eventst_dma);
 
 	xhci_op_write_8(sc, XHCI_DCBAAP, 0);
-	usb_freemem(&sc->sc_bus, &sc->sc_dcbaa_dma);
+	usb_freemem(&sc->sc_dcbaa_dma);
 
 	kmem_free(sc->sc_slots, sizeof(*sc->sc_slots) * sc->sc_maxslots);
 
@@ -1460,7 +1460,7 @@ xhci_init(struct xhci_softc *sc)
 	sc->sc_maxspbuf = XHCI_HCS2_MAXSPBUF(hcs2);
 	aprint_debug_dev(sc->sc_dev, "sc_maxspbuf %d\n", sc->sc_maxspbuf);
 	if (sc->sc_maxspbuf != 0) {
-		err = usb_allocmem(&sc->sc_bus,
+		err = usb_allocmem(sc->sc_bus.ub_dmatag,
 		    sizeof(uint64_t) * sc->sc_maxspbuf, sizeof(uint64_t),
 		    USBMALLOC_COHERENT | USBMALLOC_ZERO,
 		    &sc->sc_spbufarray_dma);
@@ -1476,7 +1476,7 @@ xhci_init(struct xhci_softc *sc)
 		for (i = 0; i < sc->sc_maxspbuf; i++) {
 			usb_dma_t * const dma = &sc->sc_spbuf_dma[i];
 			/* allocate contexts */
-			err = usb_allocmem(&sc->sc_bus, sc->sc_pgsz,
+			err = usb_allocmem(sc->sc_bus.ub_dmatag, sc->sc_pgsz,
 			    sc->sc_pgsz, USBMALLOC_COHERENT | USBMALLOC_ZERO,
 			    dma);
 			if (err) {
@@ -1526,7 +1526,7 @@ xhci_init(struct xhci_softc *sc)
 	    XHCI_EVENT_RING_SEGMENT_TABLE_ALIGN);
 	KASSERTMSG(size <= (512 * 1024), "eventst size %zu too large", size);
 	align = XHCI_EVENT_RING_SEGMENT_TABLE_ALIGN;
-	err = usb_allocmem(&sc->sc_bus, size, align,
+	err = usb_allocmem(sc->sc_bus.ub_dmatag, size, align,
 	    USBMALLOC_COHERENT | USBMALLOC_ZERO, dma);
 	if (err) {
 		aprint_error_dev(sc->sc_dev, "eventst init fail, err %d\n",
@@ -1544,7 +1544,7 @@ xhci_init(struct xhci_softc *sc)
 	size = (1 + sc->sc_maxslots) * sizeof(uint64_t);
 	KASSERTMSG(size <= 2048, "dcbaa size %zu too large", size);
 	align = XHCI_DEVICE_CONTEXT_BASE_ADDRESS_ARRAY_ALIGN;
-	err = usb_allocmem(&sc->sc_bus, size, align,
+	err = usb_allocmem(sc->sc_bus.ub_dmatag, size, align,
 	    USBMALLOC_COHERENT | USBMALLOC_ZERO, dma);
 	if (err) {
 		aprint_error_dev(sc->sc_dev, "dcbaa init fail, err %d\n", err);
@@ -1626,9 +1626,9 @@ xhci_init(struct xhci_softc *sc)
 		sc->sc_slots = NULL;
 	}
 
-	usb_freemem(&sc->sc_bus, &sc->sc_dcbaa_dma);
+	usb_freemem(&sc->sc_dcbaa_dma);
  bad4:
-	usb_freemem(&sc->sc_bus, &sc->sc_eventst_dma);
+	usb_freemem(&sc->sc_eventst_dma);
  bad3:
 	xhci_ring_free(sc, &sc->sc_er);
  bad2:
@@ -1636,8 +1636,8 @@ xhci_init(struct xhci_softc *sc)
 	i = sc->sc_maxspbuf;
  bad1:
 	for (int j = 0; j < i; j++)
-		usb_freemem(&sc->sc_bus, &sc->sc_spbuf_dma[j]);
-	usb_freemem(&sc->sc_bus, &sc->sc_spbufarray_dma);
+		usb_freemem(&sc->sc_spbuf_dma[j]);
+	usb_freemem(&sc->sc_spbufarray_dma);
 
 	return rv;
 }
@@ -2974,7 +2974,7 @@ xhci_ring_init(struct xhci_softc * const
 	xr = kmem_zalloc(sizeof(struct xhci_ring), KM_SLEEP);
 	DPRINTFN(1, "ring %#jx", (uintptr_t)xr, 0, 0, 0);
 
-	int err = usb_allocmem(&sc->sc_bus, size, align,
+	int err = usb_allocmem(sc->sc_bus.ub_dmatag, size, align,
 	    USBMALLOC_COHERENT | USBMALLOC_ZERO, &xr->xr_dma);
 	if (err) {
 		kmem_free(xr, sizeof(struct xhci_ring));
@@ -2998,7 +2998,7 @@ xhci_ring_free(struct xhci_softc * const
 	if (*xr == NULL)
 		return;
 
-	usb_freemem(&sc->sc_bus, &(*xr)->xr_dma);
+	usb_freemem(&(*xr)->xr_dma);
 	mutex_destroy(&(*xr)->xr_lock);
 	kmem_free((*xr)->xr_cookies,
 	    sizeof(*(*xr)->xr_cookies) * (*xr)->xr_ntrb);
@@ -3413,7 +3413,7 @@ xhci_init_slot(struct usbd_device *dev, 
 	xs = &sc->sc_slots[slot];
 
 	/* allocate contexts */
-	int err = usb_allocmem(&sc->sc_bus, sc->sc_pgsz, sc->sc_pgsz,
+	int err = usb_allocmem(sc->sc_bus.ub_dmatag, sc->sc_pgsz, sc->sc_pgsz,
 	    USBMALLOC_COHERENT | USBMALLOC_ZERO, &xs->xs_dc_dma);
 	if (err) {
 		DPRINTFN(1, "failed to allocmem output device context %jd",
@@ -3421,7 +3421,7 @@ xhci_init_slot(struct usbd_device *dev, 
 		return USBD_NOMEM;
 	}
 
-	err = usb_allocmem(&sc->sc_bus, sc->sc_pgsz, sc->sc_pgsz,
+	err = usb_allocmem(sc->sc_bus.ub_dmatag, sc->sc_pgsz, sc->sc_pgsz,
 	    USBMALLOC_COHERENT | USBMALLOC_ZERO, &xs->xs_ic_dma);
 	if (err) {
 		DPRINTFN(1, "failed to allocmem input device context %jd",
@@ -3435,7 +3435,7 @@ xhci_init_slot(struct usbd_device *dev, 
 	return USBD_NORMAL_COMPLETION;
 
 bad1:
-	usb_freemem(&sc->sc_bus, &xs->xs_dc_dma);
+	usb_freemem(&xs->xs_dc_dma);
 	xs->xs_idx = 0;
 	return USBD_NOMEM;
 }
@@ -3453,8 +3453,8 @@ xhci_free_slot(struct xhci_softc *sc, st
 		if (xs->xs_xr[dci] != NULL)
 			xhci_ring_free(sc, &xs->xs_xr[dci]);
 	}
-	usb_freemem(&sc->sc_bus, &xs->xs_ic_dma);
-	usb_freemem(&sc->sc_bus, &xs->xs_dc_dma);
+	usb_freemem(&xs->xs_ic_dma);
+	usb_freemem(&xs->xs_dc_dma);
 	xs->xs_idx = 0;
 }
 

Index: src/sys/external/bsd/dwc2/dwc2.c
diff -u src/sys/external/bsd/dwc2/dwc2.c:1.76 src/sys/external/bsd/dwc2/dwc2.c:1.77
--- src/sys/external/bsd/dwc2/dwc2.c:1.76	Thu Jan  7 13:25:51 2021
+++ src/sys/external/bsd/dwc2/dwc2.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2.c,v 1.76 2021/01/07 13:25:51 skrll Exp $	*/
+/*	$NetBSD: dwc2.c,v 1.77 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.76 2021/01/07 13:25:51 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.77 2021/12/21 09:51:22 skrll Exp $");
 
 #include "opt_usb.h"
 
@@ -403,7 +403,7 @@ dwc2_open(struct usbd_pipe *pipe)
 	switch (xfertype) {
 	case UE_CONTROL:
 		pipe->up_methods = &dwc2_device_ctrl_methods;
-		int err = usb_allocmem(&sc->sc_bus, sizeof(usb_device_request_t),
+		int err = usb_allocmem(sc->sc_bus.ub_dmatag, sizeof(usb_device_request_t),
 		    0, USBMALLOC_COHERENT, &dpipe->req_dma);
 		if (err)
 			return USBD_NOMEM;
@@ -763,13 +763,12 @@ dwc2_device_ctrl_abort(struct usbd_xfer 
 Static void
 dwc2_device_ctrl_close(struct usbd_pipe *pipe)
 {
-	struct dwc2_softc * const sc = DWC2_PIPE2SC(pipe);
 	struct dwc2_pipe * const dpipe = DWC2_PIPE2DPIPE(pipe);
 
 	DPRINTF("pipe=%p\n", pipe);
 	dwc2_close_pipe(pipe);
 
-	usb_freemem(&sc->sc_bus, &dpipe->req_dma);
+	usb_freemem(&dpipe->req_dma);
 }
 
 Static void

Index: src/sys/external/bsd/dwc2/dist/dwc2_hcd.c
diff -u src/sys/external/bsd/dwc2/dist/dwc2_hcd.c:1.25 src/sys/external/bsd/dwc2/dist/dwc2_hcd.c:1.26
--- src/sys/external/bsd/dwc2/dist/dwc2_hcd.c:1.25	Mon Jan 11 17:00:18 2021
+++ src/sys/external/bsd/dwc2/dist/dwc2_hcd.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2_hcd.c,v 1.25 2021/01/11 17:00:18 skrll Exp $	*/
+/*	$NetBSD: dwc2_hcd.c,v 1.26 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * hcd.c - DesignWare HS OTG Controller host-mode routines
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2_hcd.c,v 1.25 2021/01/11 17:00:18 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2_hcd.c,v 1.26 2021/12/21 09:51:22 skrll Exp $");
 
 #include <sys/types.h>
 #include <sys/kmem.h>
@@ -732,8 +732,8 @@ static int dwc2_hc_setup_align_buf(struc
 
 		qh->dw_align_buf = NULL;
 		qh->dw_align_buf_dma = 0;
-		err = usb_allocmem(&hsotg->hsotg_sc->sc_bus, buf_size, 0,
-		    USBMALLOC_COHERENT, &qh->dw_align_buf_usbdma);
+		err = usb_allocmem(hsotg->hsotg_sc->sc_bus.ub_dmatag,
+		    buf_size, 0, USBMALLOC_COHERENT, &qh->dw_align_buf_usbdma);
 		if (!err) {
 			usb_dma_t *ud = &qh->dw_align_buf_usbdma;
 
@@ -2247,8 +2247,7 @@ static void dwc2_hcd_free(struct dwc2_hs
 
 	if (hsotg->core_params->dma_enable > 0) {
 		if (hsotg->status_buf) {
-			usb_freemem(&hsotg->hsotg_sc->sc_bus,
-				    &hsotg->status_buf_usbdma);
+			usb_freemem(&hsotg->status_buf_usbdma);
 			hsotg->status_buf = NULL;
 		}
 	} else {
@@ -2391,7 +2390,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
 	 */
 	hsotg->status_buf = NULL;
 	if (hsotg->core_params->dma_enable > 0) {
-		int error = usb_allocmem(&hsotg->hsotg_sc->sc_bus,
+		int error = usb_allocmem(hsotg->hsotg_sc->sc_bus.ub_dmatag,
 		    DWC2_HCD_STATUS_BUF_SIZE, 0, USBMALLOC_COHERENT,
 		    &hsotg->status_buf_usbdma);
 		if (!error) {

Index: src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c
diff -u src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c:1.9 src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c:1.10
--- src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c:1.9	Sun Apr  5 20:59:38 2020
+++ src/sys/external/bsd/dwc2/dist/dwc2_hcdddma.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2_hcdddma.c,v 1.9 2020/04/05 20:59:38 skrll Exp $	*/
+/*	$NetBSD: dwc2_hcdddma.c,v 1.10 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * hcd_ddma.c - DesignWare HS OTG Controller descriptor DMA routines
@@ -40,7 +40,7 @@
  * This file contains the Descriptor DMA implementation for Host mode
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2_hcdddma.c,v 1.9 2020/04/05 20:59:38 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2_hcdddma.c,v 1.10 2021/12/21 09:51:22 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -105,8 +105,8 @@ static int dwc2_desc_list_alloc(struct d
 	qh->desc_list_sz = sizeof(struct dwc2_hcd_dma_desc) *
 						dwc2_max_desc_num(qh);
 
-	err = usb_allocmem(&hsotg->hsotg_sc->sc_bus, qh->desc_list_sz, 0,
-	    USBMALLOC_COHERENT, &qh->desc_list_usbdma);
+	err = usb_allocmem(hsotg->hsotg_sc->sc_bus.ub_dmatag,
+	    qh->desc_list_sz, 0,  USBMALLOC_COHERENT, &qh->desc_list_usbdma);
 
 	if (err)
 		return -ENOMEM;
@@ -116,7 +116,7 @@ static int dwc2_desc_list_alloc(struct d
 
 	qh->n_bytes = kmem_zalloc(sizeof(u32) * dwc2_max_desc_num(qh), KM_SLEEP);
 	if (!qh->n_bytes) {
-		usb_freemem(&hsotg->hsotg_sc->sc_bus, &qh->desc_list_usbdma);
+		usb_freemem(&qh->desc_list_usbdma);
 		qh->desc_list = NULL;
 		return -ENOMEM;
 	}
@@ -128,7 +128,7 @@ static void dwc2_desc_list_free(struct d
 {
 
 	if (qh->desc_list) {
-		usb_freemem(&hsotg->hsotg_sc->sc_bus, &qh->desc_list_usbdma);
+		usb_freemem(&qh->desc_list_usbdma);
 		qh->desc_list = NULL;
 	}
 
@@ -146,8 +146,8 @@ static int dwc2_frame_list_alloc(struct 
 	/* XXXNH - pool_cache_t */
 	hsotg->frame_list_sz = 4 * FRLISTEN_64_SIZE;
 	hsotg->frame_list = NULL;
-	err = usb_allocmem(&hsotg->hsotg_sc->sc_bus, hsotg->frame_list_sz,
-	    0, USBMALLOC_COHERENT, &hsotg->frame_list_usbdma);
+	err = usb_allocmem(hsotg->hsotg_sc->sc_bus.ub_dmatag,
+	    hsotg->frame_list_sz, 0, USBMALLOC_COHERENT, &hsotg->frame_list_usbdma);
 
 	if (!err) {
 		hsotg->frame_list = KERNADDR(&hsotg->frame_list_usbdma, 0);
@@ -177,7 +177,7 @@ static void dwc2_frame_list_free(struct 
 
 	spin_unlock_irqrestore(&hsotg->lock, flags);
 
-	usb_freemem(&hsotg->hsotg_sc->sc_bus, &frame_list_usbdma);
+	usb_freemem(&frame_list_usbdma);
 }
 
 static void dwc2_per_sched_enable(struct dwc2_hsotg *hsotg, u32 fr_list_en)

Index: src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c
diff -u src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c:1.15 src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c:1.16
--- src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c:1.15	Wed Aug  8 07:20:44 2018
+++ src/sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c	Tue Dec 21 09:51:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2_hcdqueue.c,v 1.15 2018/08/08 07:20:44 simonb Exp $	*/
+/*	$NetBSD: dwc2_hcdqueue.c,v 1.16 2021/12/21 09:51:22 skrll Exp $	*/
 
 /*
  * hcd_queue.c - DesignWare HS OTG Controller host queuing routines
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2_hcdqueue.c,v 1.15 2018/08/08 07:20:44 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2_hcdqueue.c,v 1.16 2021/12/21 09:51:22 skrll Exp $");
 
 #include <sys/types.h>
 #include <sys/kmem.h>
@@ -272,7 +272,7 @@ void dwc2_hcd_qh_free(struct dwc2_hsotg 
 	if (qh->desc_list) {
 		dwc2_hcd_qh_free_ddma(hsotg, qh);
 	} else if (qh->dw_align_buf) {
-		usb_freemem(&sc->sc_bus, &qh->dw_align_buf_usbdma);
+		usb_freemem(&qh->dw_align_buf_usbdma);
  		qh->dw_align_buf_dma = (dma_addr_t)0;
 	}
 

Reply via email to