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;
}