Module Name: src
Committed By: skrll
Date: Tue Dec 2 09:00:34 UTC 2014
Modified Files:
src/sys/arch/mips/adm5120/dev [nick-nhusb]: ahci.c
src/sys/conf [nick-nhusb]: files
src/sys/dev/ic [nick-nhusb]: sl811hs.c
src/sys/dev/usb [nick-nhusb]: aubtfwl.c auvitek_dtv.c auvitek_video.c
ehci.c ehcivar.h emdtv_dtv.c files.usb if_athn_usb.c if_atu.c
if_aue.c if_axe.c if_axen.c if_cdce.c if_cue.c if_kue.c if_otus.c
if_rum.c if_run.c if_smsc.c if_udav.c if_upgt.c if_upl.c if_ural.c
if_url.c if_urndis.c if_urtw.c if_urtwn.c if_zyd.c irmce.c motg.c
motgvar.h ohci.c ohcivar.h pseye.c stuirda.c uaudio.c ubt.c ucom.c
udl.c udsir.c ugen.c uhci.c uhcivar.h uhso.c uirda.c ulpt.c umass.c
umidi.c urio.c usb_mem.c usb_mem.h usbdi.c usbdi.h usbdivar.h
usscanner.c ustir.c utoppy.c uvideo.c xhci.c
src/sys/external/bsd/dwc2 [nick-nhusb]: dwc2.c dwc2var.h
src/sys/rump/dev/lib/libugenhc [nick-nhusb]: Makefile ugenhc.c
Removed Files:
src/sys/rump/dev/lib/libugenhc [nick-nhusb]: ugenhc_dma.c
Log Message:
Step #1 of memory allocation re-organisation.
Centralised the buffer allocation routine which now supports DMA
and non-DMA capable host controllers. Remove the
ubm_{alloc,free}m methods from usbd_bus_methods.
The buffer allocation is only allowed in thread context and,
therefore, negates the usefulness of the reserve dma code which
is removed in this change.
USBD_NO_COPY is also no longer required as usbd_transfer and
usbd_transfer_complete now track buffer usage and handle any
copying.
To generate a diff of this commit:
cvs rdiff -u -r1.12.6.3 -r1.12.6.4 src/sys/arch/mips/adm5120/dev/ahci.c
cvs rdiff -u -r1.1121 -r1.1121.2.1 src/sys/conf/files
cvs rdiff -u -r1.47.6.2 -r1.47.6.3 src/sys/dev/ic/sl811hs.c
cvs rdiff -u -r1.5.10.1 -r1.5.10.2 src/sys/dev/usb/aubtfwl.c
cvs rdiff -u -r1.6 -r1.6.14.1 src/sys/dev/usb/auvitek_dtv.c
cvs rdiff -u -r1.6 -r1.6.32.1 src/sys/dev/usb/auvitek_video.c
cvs rdiff -u -r1.234.2.6 -r1.234.2.7 src/sys/dev/usb/ehci.c
cvs rdiff -u -r1.42.14.2 -r1.42.14.3 src/sys/dev/usb/ehcivar.h
cvs rdiff -u -r1.10 -r1.10.14.1 src/sys/dev/usb/emdtv_dtv.c
cvs rdiff -u -r1.135 -r1.135.2.1 src/sys/dev/usb/files.usb
cvs rdiff -u -r1.6 -r1.6.8.1 src/sys/dev/usb/if_athn_usb.c
cvs rdiff -u -r1.50.2.1 -r1.50.2.2 src/sys/dev/usb/if_atu.c
cvs rdiff -u -r1.132.4.1 -r1.132.4.2 src/sys/dev/usb/if_aue.c
cvs rdiff -u -r1.67 -r1.67.4.1 src/sys/dev/usb/if_axe.c
cvs rdiff -u -r1.3 -r1.3.6.1 src/sys/dev/usb/if_axen.c
cvs rdiff -u -r1.38 -r1.38.14.1 src/sys/dev/usb/if_cdce.c
cvs rdiff -u -r1.68.4.1 -r1.68.4.2 src/sys/dev/usb/if_cue.c
cvs rdiff -u -r1.81 -r1.81.4.1 src/sys/dev/usb/if_kue.c
cvs rdiff -u -r1.25 -r1.25.6.1 src/sys/dev/usb/if_otus.c
cvs rdiff -u -r1.48 -r1.48.6.1 src/sys/dev/usb/if_rum.c
cvs rdiff -u -r1.10 -r1.10.6.1 src/sys/dev/usb/if_run.c
cvs rdiff -u -r1.22 -r1.22.2.1 src/sys/dev/usb/if_smsc.c
cvs rdiff -u -r1.43.4.1 -r1.43.4.2 src/sys/dev/usb/if_udav.c
cvs rdiff -u -r1.12.4.1 -r1.12.4.2 src/sys/dev/usb/if_upgt.c
cvs rdiff -u -r1.47.4.1 -r1.47.4.2 src/sys/dev/usb/if_upl.c
cvs rdiff -u -r1.44 -r1.44.14.1 src/sys/dev/usb/if_ural.c
cvs rdiff -u -r1.48.4.1 -r1.48.4.2 src/sys/dev/usb/if_url.c
cvs rdiff -u -r1.9 -r1.9.4.1 src/sys/dev/usb/if_urndis.c
cvs rdiff -u -r1.6 -r1.6.6.1 src/sys/dev/usb/if_urtw.c
cvs rdiff -u -r1.34 -r1.34.4.1 src/sys/dev/usb/if_urtwn.c
cvs rdiff -u -r1.36 -r1.36.14.1 src/sys/dev/usb/if_zyd.c
cvs rdiff -u -r1.1.32.1 -r1.1.32.2 src/sys/dev/usb/irmce.c
cvs rdiff -u -r1.12.2.4 -r1.12.2.5 src/sys/dev/usb/motg.c
cvs rdiff -u -r1.4.2.1 -r1.4.2.2 src/sys/dev/usb/motgvar.h
cvs rdiff -u -r1.254.2.5 -r1.254.2.6 src/sys/dev/usb/ohci.c
cvs rdiff -u -r1.55.6.1 -r1.55.6.2 src/sys/dev/usb/ohcivar.h
cvs rdiff -u -r1.21.34.1 -r1.21.34.2 src/sys/dev/usb/pseye.c
cvs rdiff -u -r1.16.2.2 -r1.16.2.3 src/sys/dev/usb/stuirda.c
cvs rdiff -u -r1.140.2.1 -r1.140.2.2 src/sys/dev/usb/uaudio.c
cvs rdiff -u -r1.51 -r1.51.4.1 src/sys/dev/usb/ubt.c
cvs rdiff -u -r1.108.2.1 -r1.108.2.2 src/sys/dev/usb/ucom.c
cvs rdiff -u -r1.11.6.1 -r1.11.6.2 src/sys/dev/usb/udl.c
cvs rdiff -u -r1.1.14.1 -r1.1.14.2 src/sys/dev/usb/udsir.c
cvs rdiff -u -r1.126.2.2 -r1.126.2.3 src/sys/dev/usb/ugen.c
cvs rdiff -u -r1.264.4.5 -r1.264.4.6 src/sys/dev/usb/uhci.c
cvs rdiff -u -r1.52.14.1 -r1.52.14.2 src/sys/dev/usb/uhcivar.h
cvs rdiff -u -r1.17 -r1.17.2.1 src/sys/dev/usb/uhso.c
cvs rdiff -u -r1.38.6.2 -r1.38.6.3 src/sys/dev/usb/uirda.c \
src/sys/dev/usb/usscanner.c
cvs rdiff -u -r1.95.4.2 -r1.95.4.3 src/sys/dev/usb/ulpt.c
cvs rdiff -u -r1.149.2.1 -r1.149.2.2 src/sys/dev/usb/umass.c
cvs rdiff -u -r1.65.14.2 -r1.65.14.3 src/sys/dev/usb/umidi.c
cvs rdiff -u -r1.42.4.2 -r1.42.4.3 src/sys/dev/usb/urio.c
cvs rdiff -u -r1.65.2.1 -r1.65.2.2 src/sys/dev/usb/usb_mem.c
cvs rdiff -u -r1.30.14.2 -r1.30.14.3 src/sys/dev/usb/usb_mem.h
cvs rdiff -u -r1.162.2.4 -r1.162.2.5 src/sys/dev/usb/usbdi.c
cvs rdiff -u -r1.90.4.1 -r1.90.4.2 src/sys/dev/usb/usbdi.h
cvs rdiff -u -r1.109.2.3 -r1.109.2.4 src/sys/dev/usb/usbdivar.h
cvs rdiff -u -r1.33.10.2 -r1.33.10.3 src/sys/dev/usb/ustir.c
cvs rdiff -u -r1.24.4.1 -r1.24.4.2 src/sys/dev/usb/utoppy.c
cvs rdiff -u -r1.41.2.1 -r1.41.2.2 src/sys/dev/usb/uvideo.c
cvs rdiff -u -r1.28.2.3 -r1.28.2.4 src/sys/dev/usb/xhci.c
cvs rdiff -u -r1.32.2.2 -r1.32.2.3 src/sys/external/bsd/dwc2/dwc2.c
cvs rdiff -u -r1.3 -r1.3.12.1 src/sys/external/bsd/dwc2/dwc2var.h
cvs rdiff -u -r1.8 -r1.8.6.1 src/sys/rump/dev/lib/libugenhc/Makefile
cvs rdiff -u -r1.22.4.2 -r1.22.4.3 src/sys/rump/dev/lib/libugenhc/ugenhc.c
cvs rdiff -u -r1.1.12.1 -r0 src/sys/rump/dev/lib/libugenhc/ugenhc_dma.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.12.6.3 src/sys/arch/mips/adm5120/dev/ahci.c:1.12.6.4
--- src/sys/arch/mips/adm5120/dev/ahci.c:1.12.6.3 Mon Dec 1 12:38:39 2014
+++ src/sys/arch/mips/adm5120/dev/ahci.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ahci.c,v 1.12.6.3 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: ahci.c,v 1.12.6.4 2014/12/02 09:00:33 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.12.6.3 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahci.c,v 1.12.6.4 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -94,8 +94,6 @@ static void ahci_softintr(void *);
static void ahci_poll(struct usbd_bus *);
static void ahci_poll_hub(void *);
static void ahci_poll_device(void *arg);
-static usbd_status ahci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-static void ahci_freem(struct usbd_bus *, usb_dma_t *);
static usbd_xfer_handle ahci_allocx(struct usbd_bus *);
static void ahci_freex(struct usbd_bus *, usbd_xfer_handle);
@@ -176,8 +174,6 @@ struct usbd_bus_methods ahci_bus_methods
.ubm_open = ahci_open,
.ubm_softint = ahci_softintr,
.ubm_dopoll = ahci_poll,
- .ubm_allocm = ahci_allocm,
- .ubm_freem = ahci_freem,
.ubm_allocx = ahci_allocx,
.ubm_freex = ahci_freex,
.ubm_getlock = ahci_get_lock,
@@ -280,6 +276,7 @@ ahci_attach(device_t parent, device_t se
sc->sc_bus.methods = &ahci_bus_methods;
sc->sc_bus.pipe_size = sizeof(struct ahci_pipe);
sc->sc_bus.dmatag = sc->sc_dmat;
+ sc->sc_bus.usedma = true;
/* Map the device. */
if (bus_space_map(sc->sc_st, aa->oba_addr,
@@ -468,24 +465,6 @@ ahci_poll_hub(void *arg)
mutex_exit(&sc->sc_lock);
}
-usbd_status
-ahci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct ahci_softc *sc = (struct ahci_softc *)bus;
-
- DPRINTF(D_MEM, ("SLallocm"));
- return usb_allocmem(&sc->sc_bus, size, 0, dma);
-}
-
-void
-ahci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct ahci_softc *sc = (struct ahci_softc *)bus;
-
- DPRINTF(D_MEM, ("SLfreem"));
- usb_freemem(&sc->sc_bus, dma);
-}
-
usbd_xfer_handle
ahci_allocx(struct usbd_bus *bus)
{
Index: src/sys/conf/files
diff -u src/sys/conf/files:1.1121 src/sys/conf/files:1.1121.2.1
--- src/sys/conf/files:1.1121 Fri Oct 31 07:38:36 2014
+++ src/sys/conf/files Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-# $NetBSD: files,v 1.1121 2014/10/31 07:38:36 uebayasi Exp $
+# $NetBSD: files,v 1.1121.2.1 2014/12/02 09:00:33 skrll Exp $
# @(#)files.newconf 7.5 (Berkeley) 5/10/93
version 20141030
@@ -1206,8 +1206,6 @@ define sdmmcbus { } # SD/MMC attachmen
# use them in an 'attach-with'.
#
-defparam USB_MEM_RESERVE
-
define usbroothub
file dev/usb/usbroothub_subr.c usbroothub
@@ -1235,7 +1233,7 @@ file dev/usb/xhci.c xhci needs-flag
# Mentor graphics OTG IP
defflag opt_motg.h MOTG_ALLWINNER
-device motg: usbus, usbroothub, usb_dma
+device motg: usbus, usbroothub
file dev/usb/motg.c motg needs-flag
# SL811HS/T USB controller
Index: src/sys/dev/ic/sl811hs.c
diff -u src/sys/dev/ic/sl811hs.c:1.47.6.2 src/sys/dev/ic/sl811hs.c:1.47.6.3
--- src/sys/dev/ic/sl811hs.c:1.47.6.2 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/ic/sl811hs.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sl811hs.c,v 1.47.6.2 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: sl811hs.c,v 1.47.6.3 2014/12/02 09:00:33 skrll Exp $ */
/*
* Not (c) 2007 Matthew Orgass
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.47.6.2 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.47.6.3 2014/12/02 09:00:33 skrll Exp $");
#include "opt_slhci.h"
@@ -423,8 +423,6 @@ slhci_dump_cc_times(int n) {
typedef usbd_status (*LockCallFunc)(struct slhci_softc *, struct slhci_pipe
*, struct usbd_xfer *);
-usbd_status slhci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-void slhci_freem(struct usbd_bus *, usb_dma_t *);
struct usbd_xfer * slhci_allocx(struct usbd_bus *);
void slhci_freex(struct usbd_bus *, struct usbd_xfer *);
static void slhci_get_lock(struct usbd_bus *, kmutex_t **);
@@ -683,8 +681,6 @@ const struct usbd_bus_methods slhci_bus_
.ubm_open = slhci_open,
.ubm_softint= slhci_void,
.ubm_dopoll = slhci_poll,
- .ubm_allocm = slhci_allocm,
- .ubm_freem = slhci_freem,
.ubm_allocx = slhci_allocx,
.ubm_freex = slhci_freex,
.ubm_getlock = slhci_get_lock,
@@ -760,55 +756,6 @@ enter_all_pipes(struct slhci_transfers *
/* Start out of lock functions. */
-struct slhci_mem {
- usb_dma_block_t block;
- uint8_t data[];
-};
-
-/*
- * The SL811HS does not do DMA as a host controller, but NetBSD's USB interface
- * assumes DMA is used. So we fake the DMA block.
- */
-usbd_status
-slhci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct slhci_mem *mem;
-
- mem = malloc(sizeof(struct slhci_mem) + size, M_USB, M_NOWAIT|M_ZERO);
-
- DLOG(D_MEM, "allocm %p", mem, 0,0,0);
-
- if (mem == NULL)
- return USBD_NOMEM;
-
- dma->block = &mem->block;
- dma->block->kaddr = mem->data;
-
- /* dma->offs = 0; */
- dma->block->nsegs = 1;
- dma->block->size = size;
- dma->block->align = size;
- dma->block->flags |= USB_DMA_FULLBLOCK;
-
-#ifdef SLHCI_MEM_ACCOUNTING
- slhci_mem_use(bus, 1);
-#endif
-
- return USBD_NORMAL_COMPLETION;
-}
-
-void
-slhci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- DLOG(D_MEM, "freem %p", dma->block, 0,0,0);
-
-#ifdef SLHCI_MEM_ACCOUNTING
- slhci_mem_use(bus, -1);
-#endif
-
- free(dma->block, M_USB);
-}
-
struct usbd_xfer *
slhci_allocx(struct usbd_bus *bus)
{
@@ -935,7 +882,7 @@ slhci_start(struct usbd_xfer *xfer)
spipe->control |= SL11_EPCTRL_DATATOGGLE;
spipe->tregs[LEN] = spipe->newlen[1];
if (spipe->tregs[LEN])
- spipe->buffer = KERNADDR(&xfer->dmabuf, 0);
+ spipe->buffer = xfer->buf;
else
spipe->buffer = NULL;
spipe->lastframe = t->frame;
@@ -1262,6 +1209,7 @@ slhci_attach(struct slhci_softc *sc)
sc->sc_bus.usbrev = USBREV_1_1;
sc->sc_bus.methods = __UNCONST(&slhci_bus_methods);
sc->sc_bus.pipe_size = sizeof(struct slhci_pipe);
+ sc->sc_bus.usedma = false;
if (!sc->sc_enable_power)
t->flags |= F_REALPOWER;
@@ -2126,7 +2074,7 @@ slhci_abdone(struct slhci_softc *sc, int
return);
spipe->tregs[LEN] = spipe->newlen[1];
spipe->bustime = spipe->newbustime[1];
- spipe->buffer = KERNADDR(&xfer->dmabuf, 0);
+ spipe->buffer = xfer->buf;
spipe->ptype = PT_CTRL_DATA;
} else {
status_setup:
@@ -2391,7 +2339,7 @@ slhci_callback(struct slhci_softc *sc)
if (t->rootintr != NULL) {
u_char *p;
- p = KERNADDR(&t->rootintr->dmabuf, 0);
+ p = t->rootintr->buf;
p[0] = 2;
t->rootintr->actlen = 1;
t->rootintr->status = USBD_NORMAL_COMPLETION;
@@ -2502,7 +2450,7 @@ slhci_do_repeat(struct slhci_softc *sc,
xfer->actlen = 0;
spipe->xfer = xfer;
if (spipe->tregs[LEN])
- KASSERT(spipe->buffer == KERNADDR(&xfer->dmabuf, 0));
+ KASSERT(spipe->buffer == xfer->buf);
slhci_queue_timed(sc, spipe);
slhci_dotransfer(sc);
}
@@ -3230,7 +3178,7 @@ slhci_root(struct slhci_softc *sc, struc
type = req->bmRequestType;
if (len)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
SLHCI_DEXEC(D_TRACE, slhci_log_req_hub(req));
@@ -3434,7 +3382,7 @@ slhci_log_buffer(struct usbd_xfer *xfer)
if(xfer->length > 0 &&
UE_GET_DIR(xfer->pipe->endpoint->edesc->bEndpointAddress) ==
UE_DIR_IN) {
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
DDOLOGBUF(buf, xfer->actlen);
DDOLOG("len %d actlen %d short %d", xfer->length,
xfer->actlen, xfer->length - xfer->actlen, 0);
@@ -3588,7 +3536,7 @@ slhci_log_xfer(struct usbd_xfer *xfer)
DDOLOG("xfer: length=%u, actlen=%u, flags=%#x, timeout=%u,",
xfer->length, xfer->actlen, xfer->flags, xfer->timeout);
if (xfer->dmabuf.block)
- DDOLOG("buffer=%p", KERNADDR(&xfer->dmabuf, 0), 0,0,0);
+ DDOLOG("buffer=%p", xfer->buf, 0,0,0);
slhci_log_req_hub(&xfer->request);
}
Index: src/sys/dev/usb/aubtfwl.c
diff -u src/sys/dev/usb/aubtfwl.c:1.5.10.1 src/sys/dev/usb/aubtfwl.c:1.5.10.2
--- src/sys/dev/usb/aubtfwl.c:1.5.10.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/aubtfwl.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: aubtfwl.c,v 1.5.10.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: aubtfwl.c,v 1.5.10.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2011 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aubtfwl.c,v 1.5.10.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aubtfwl.c,v 1.5.10.2 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <dev/usb/usb.h>
@@ -191,7 +191,7 @@ aubtfwl_firmware_load(device_t self, con
break;
}
error = usbd_bulk_transfer(xfer, pipe,
- USBD_NO_COPY, USBD_DEFAULT_TIMEOUT,
+ 0, USBD_DEFAULT_TIMEOUT,
buf, &n);
if (error != USBD_NORMAL_COMPLETION) {
aprint_error_dev(self, "xfer failed, %s\n",
Index: src/sys/dev/usb/auvitek_dtv.c
diff -u src/sys/dev/usb/auvitek_dtv.c:1.6 src/sys/dev/usb/auvitek_dtv.c:1.6.14.1
--- src/sys/dev/usb/auvitek_dtv.c:1.6 Tue Jan 22 12:40:42 2013
+++ src/sys/dev/usb/auvitek_dtv.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: auvitek_dtv.c,v 1.6 2013/01/22 12:40:42 jmcneill Exp $ */
+/* $NetBSD: auvitek_dtv.c,v 1.6.14.1 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <[email protected]>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auvitek_dtv.c,v 1.6 2013/01/22 12:40:42 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auvitek_dtv.c,v 1.6.14.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -350,8 +350,8 @@ auvitek_dtv_bulk_start1(struct auvitek_b
usbd_setup_xfer(bx->bx_xfer, ab->ab_pipe, bx,
bx->bx_buffer, AUVITEK_BULK_BUFLEN,
- //USBD_SHORT_XFER_OK|USBD_NO_COPY, USBD_NO_TIMEOUT,
- USBD_NO_COPY, 100,
+ //USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
+ 0, 100,
auvitek_dtv_bulk_cb);
KERNEL_LOCK(1, curlwp);
Index: src/sys/dev/usb/auvitek_video.c
diff -u src/sys/dev/usb/auvitek_video.c:1.6 src/sys/dev/usb/auvitek_video.c:1.6.32.1
--- src/sys/dev/usb/auvitek_video.c:1.6 Sun Oct 2 19:15:40 2011
+++ src/sys/dev/usb/auvitek_video.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: auvitek_video.c,v 1.6 2011/10/02 19:15:40 jmcneill Exp $ */
+/* $NetBSD: auvitek_video.c,v 1.6.32.1 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2010 Jared D. McNeill <[email protected]>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auvitek_video.c,v 1.6 2011/10/02 19:15:40 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auvitek_video.c,v 1.6.32.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -680,7 +680,7 @@ auvitek_isoc_start1(struct auvitek_isoc
isoc,
isoc->i_frlengths,
ax->ax_nframes,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ USBD_SHORT_XFER_OK,
auvitek_isoc_intr);
err = usbd_transfer(isoc->i_xfer);
Index: src/sys/dev/usb/ehci.c
diff -u src/sys/dev/usb/ehci.c:1.234.2.6 src/sys/dev/usb/ehci.c:1.234.2.7
--- src/sys/dev/usb/ehci.c:1.234.2.6 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/ehci.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ehci.c,v 1.234.2.6 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: ehci.c,v 1.234.2.7 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2004-2012 The NetBSD Foundation, Inc.
@@ -53,7 +53,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.234.2.6 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.234.2.7 2014/12/02 09:00:33 skrll Exp $");
#include "ohci.h"
#include "uhci.h"
@@ -170,9 +170,6 @@ Static void ehci_intrlist_timeout(void
Static void ehci_doorbell(void *);
Static void ehci_pcd(void *);
-Static usbd_status ehci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-Static void ehci_freem(struct usbd_bus *, usb_dma_t *);
-
Static usbd_xfer_handle ehci_allocx(struct usbd_bus *);
Static void ehci_freex(struct usbd_bus *, usbd_xfer_handle);
Static void ehci_get_lock(struct usbd_bus *, kmutex_t **);
@@ -294,8 +291,6 @@ Static const struct usbd_bus_methods ehc
.ubm_open = ehci_open,
.ubm_softint = ehci_softintr,
.ubm_dopoll = ehci_poll,
- .ubm_allocm = ehci_allocm,
- .ubm_freem = ehci_freem,
.ubm_allocx = ehci_allocx,
.ubm_freex = ehci_freex,
.ubm_getlock = ehci_get_lock,
@@ -446,9 +441,8 @@ ehci_init(ehci_softc_t *sc)
}
sc->sc_bus.usbrev = USBREV_2_0;
-
- usb_setup_reserve(sc->sc_dev, &sc->sc_dma_reserve, sc->sc_bus.dmatag,
- USB_MEM_RESERVE);
+ sc->sc_bus.usedma = true;
+ sc->sc_bus.dmaflags = USBMALLOC_MULTISEG;
/* Reset the controller */
USBHIST_LOG(ehcidebug, "resetting", 0, 0, 0, 0);
@@ -761,7 +755,7 @@ ehci_pcd(void *addr)
goto done;
}
- p = KERNADDR(&xfer->dmabuf, 0);
+ p = xfer->buf;
m = min(sc->sc_noport, xfer->length * 8 - 1);
memset(p, 0, xfer->length);
for (i = 1; i <= m; i++) {
@@ -1513,41 +1507,6 @@ ehci_shutdown(device_t self, int flags)
return true;
}
-Static usbd_status
-ehci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct ehci_softc *sc = bus->hci_private;
- usbd_status err;
-
- err = usb_allocmem_flags(&sc->sc_bus, size, 0, dma, USBMALLOC_MULTISEG);
-#ifdef EHCI_DEBUG
- if (err)
- printf("ehci_allocm: usb_allocmem_flags()= %s (%d)\n",
- usbd_errstr(err), err);
-#endif
- if (err == USBD_NOMEM)
- err = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
-#ifdef EHCI_DEBUG
- if (err)
- printf("ehci_allocm: usb_reserve_allocm()= %s (%d)\n",
- usbd_errstr(err), err);
-#endif
- return (err);
-}
-
-Static void
-ehci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct ehci_softc *sc = bus->hci_private;
-
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&sc->sc_dma_reserve,
- dma);
- return;
- }
- usb_freemem(&sc->sc_bus, dma);
-}
-
Static usbd_xfer_handle
ehci_allocx(struct usbd_bus *bus)
{
@@ -2418,7 +2377,7 @@ ehci_root_ctrl_start(usbd_xfer_handle xf
index = UGETW(req->wIndex);
if (len != 0)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
#define C(x,y) ((x) | ((y) << 8))
switch(C(req->bRequest, req->bmRequestType)) {
Index: src/sys/dev/usb/ehcivar.h
diff -u src/sys/dev/usb/ehcivar.h:1.42.14.2 src/sys/dev/usb/ehcivar.h:1.42.14.3
--- src/sys/dev/usb/ehcivar.h:1.42.14.2 Sun Nov 30 13:46:00 2014
+++ src/sys/dev/usb/ehcivar.h Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ehcivar.h,v 1.42.14.2 2014/11/30 13:46:00 skrll Exp $ */
+/* $NetBSD: ehcivar.h,v 1.42.14.3 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -186,7 +186,6 @@ typedef struct ehci_softc {
device_t sc_child; /* /dev/usb# device */
char sc_dying;
- struct usb_dma_reserve sc_dma_reserve;
void (*sc_vendor_init)(struct ehci_softc *);
int (*sc_vendor_port_status)(struct ehci_softc *, uint32_t, int);
Index: src/sys/dev/usb/emdtv_dtv.c
diff -u src/sys/dev/usb/emdtv_dtv.c:1.10 src/sys/dev/usb/emdtv_dtv.c:1.10.14.1
--- src/sys/dev/usb/emdtv_dtv.c:1.10 Tue Jan 22 12:40:42 2013
+++ src/sys/dev/usb/emdtv_dtv.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: emdtv_dtv.c,v 1.10 2013/01/22 12:40:42 jmcneill Exp $ */
+/* $NetBSD: emdtv_dtv.c,v 1.10.14.1 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2008, 2011 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: emdtv_dtv.c,v 1.10 2013/01/22 12:40:42 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: emdtv_dtv.c,v 1.10.14.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -381,7 +381,7 @@ emdtv_dtv_isoc_start(struct emdtv_softc
ix,
ix->ix_frlengths,
EMDTV_NFRAMES,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ USBD_SHORT_XFER_OK,
emdtv_dtv_isoc);
KERNEL_LOCK(1, curlwp);
Index: src/sys/dev/usb/files.usb
diff -u src/sys/dev/usb/files.usb:1.135 src/sys/dev/usb/files.usb:1.135.2.1
--- src/sys/dev/usb/files.usb:1.135 Fri Oct 10 17:31:12 2014
+++ src/sys/dev/usb/files.usb Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-# $NetBSD: files.usb,v 1.135 2014/10/10 17:31:12 uebayasi Exp $
+# $NetBSD: files.usb,v 1.135.2.1 2014/12/02 09:00:33 skrll Exp $
#
# Config file and device description for machine-independent USB code.
# Included by ports that need it. Ports that use it must provide
@@ -106,7 +106,7 @@ file dev/usb/usb_subr.c usb
file dev/usb/usb_quirks.c usb
define usb_dma: usb
-file dev/usb/usb_mem.c usb_dma
+file dev/usb/usb_mem.c usb_dma needs-flag
define usbverbose: usb
file dev/usb/usb_verbose.c usbverbose
Index: src/sys/dev/usb/if_athn_usb.c
diff -u src/sys/dev/usb/if_athn_usb.c:1.6 src/sys/dev/usb/if_athn_usb.c:1.6.8.1
--- src/sys/dev/usb/if_athn_usb.c:1.6 Wed Oct 16 18:23:39 2013
+++ src/sys/dev/usb/if_athn_usb.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_athn_usb.c,v 1.6 2013/10/16 18:23:39 christos Exp $ */
+/* $NetBSD: if_athn_usb.c,v 1.6.8.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_athn_usb.c,v 1.12 2013/01/14 09:50:31 jsing Exp $ */
/*-
@@ -22,7 +22,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.6 2013/10/16 18:23:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.6.8.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -904,7 +904,7 @@ athn_usb_htc_msg(struct athn_usb_softc *
usbd_setup_xfer(data->xfer, usc->usc_tx_intr_pipe, NULL, data->buf,
sizeof(*htc) + sizeof(*msg) + len,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, ATHN_USB_CMD_TIMEOUT, NULL);
+ USBD_SHORT_XFER_OK, ATHN_USB_CMD_TIMEOUT, NULL);
return usbd_sync_transfer(data->xfer);
}
@@ -1090,7 +1090,7 @@ athn_usb_wmi_xcmd(struct athn_usb_softc
usbd_setup_xfer(data->xfer, usc->usc_tx_intr_pipe, usc, data->buf,
sizeof(*htc) + sizeof(*wmi) + ilen,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, ATHN_USB_CMD_TIMEOUT,
+ USBD_SHORT_XFER_OK, ATHN_USB_CMD_TIMEOUT,
athn_usb_wmieof);
s = splusb();
@@ -1821,7 +1821,7 @@ athn_usb_swba(struct athn_usb_softc *usc
usbd_setup_xfer(data->xfer, usc->usc_tx_data_pipe, data, data->buf,
sizeof(*hdr) + sizeof(*htc) + sizeof(*bcn) + m->m_pkthdr.len,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, ATHN_USB_TX_TIMEOUT,
+ USBD_SHORT_XFER_OK, ATHN_USB_TX_TIMEOUT,
athn_usb_bcneof);
m_freem(m);
@@ -2207,7 +2207,7 @@ athn_usb_rxeof(usbd_xfer_handle xfer, us
resubmit:
/* Setup a new transfer. */
usbd_setup_xfer(xfer, usc->usc_rx_data_pipe, data, data->buf,
- ATHN_USB_RXBUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ ATHN_USB_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, athn_usb_rxeof);
(void)usbd_transfer(xfer);
}
@@ -2358,7 +2358,7 @@ athn_usb_tx(struct athn_softc *sc, struc
s = splnet();
usbd_setup_xfer(data->xfer, usc->usc_tx_data_pipe, data, data->buf,
- xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY, ATHN_USB_TX_TIMEOUT,
+ xferlen, USBD_FORCE_SHORT_XFER, ATHN_USB_TX_TIMEOUT,
athn_usb_txeof);
error = usbd_transfer(data->xfer);
if (__predict_false(error != USBD_IN_PROGRESS && error != 0)) {
@@ -2689,7 +2689,7 @@ athn_usb_init(struct ifnet *ifp)
data = &usc->usc_rx_data[i];
usbd_setup_xfer(data->xfer, usc->usc_rx_data_pipe, data, data->buf,
- ATHN_USB_RXBUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ ATHN_USB_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, athn_usb_rxeof);
error = usbd_transfer(data->xfer);
if (error != 0 && error != USBD_IN_PROGRESS)
Index: src/sys/dev/usb/if_atu.c
diff -u src/sys/dev/usb/if_atu.c:1.50.2.1 src/sys/dev/usb/if_atu.c:1.50.2.2
--- src/sys/dev/usb/if_atu.c:1.50.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_atu.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_atu.c,v 1.50.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_atu.c,v 1.50.2.2 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_atu.c,v 1.48 2004/12/30 01:53:21 dlg Exp $ */
/*
* Copyright (c) 2003, 2004
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_atu.c,v 1.50.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_atu.c,v 1.50.2.2 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -1722,7 +1722,7 @@ done1:
done:
/* Setup new transfer. */
usbd_setup_xfer(c->atu_xfer, sc->atu_ep[ATU_ENDPT_RX], c, c->atu_buf,
- ATU_RX_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ ATU_RX_BUFSZ, USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
atu_rxeof);
usbd_transfer(c->atu_xfer);
}
@@ -1829,7 +1829,7 @@ atu_tx_start(struct atu_softc *sc, struc
c->atu_mbuf = m;
usbd_setup_xfer(c->atu_xfer, sc->atu_ep[ATU_ENDPT_TX],
- c, c->atu_buf, c->atu_length, USBD_NO_COPY, ATU_TX_TIMEOUT,
+ c, c->atu_buf, c->atu_length, 0, ATU_TX_TIMEOUT,
atu_txeof);
/* Let's get this thing into the air! */
@@ -2017,7 +2017,7 @@ atu_init(struct ifnet *ifp)
c = &sc->atu_cdata.atu_rx_chain[i];
usbd_setup_xfer(c->atu_xfer, sc->atu_ep[ATU_ENDPT_RX], c,
- c->atu_buf, ATU_RX_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ c->atu_buf, ATU_RX_BUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, atu_rxeof);
usbd_transfer(c->atu_xfer);
}
Index: src/sys/dev/usb/if_aue.c
diff -u src/sys/dev/usb/if_aue.c:1.132.4.1 src/sys/dev/usb/if_aue.c:1.132.4.2
--- src/sys/dev/usb/if_aue.c:1.132.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_aue.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_aue.c,v 1.132.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_aue.c,v 1.132.4.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -78,7 +78,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_aue.c,v 1.132.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_aue.c,v 1.132.4.2 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1182,7 +1182,7 @@ aue_rxeof(usbd_xfer_handle xfer, usbd_pr
/* Setup new transfer. */
usbd_setup_xfer(xfer, sc->aue_ep[AUE_ENDPT_RX],
c, c->aue_buf, AUE_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, aue_rxeof);
usbd_transfer(xfer);
@@ -1324,7 +1324,7 @@ aue_send(struct aue_softc *sc, struct mb
total_len = m->m_pkthdr.len + 2;
usbd_setup_xfer(c->aue_xfer, sc->aue_ep[AUE_ENDPT_TX],
- c, c->aue_buf, total_len, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ c, c->aue_buf, total_len, USBD_FORCE_SHORT_XFER,
AUE_TX_TIMEOUT, aue_txeof);
/* Transmit */
@@ -1498,7 +1498,7 @@ aue_openpipes(struct aue_softc *sc)
c = &sc->aue_cdata.aue_rx_chain[i];
usbd_setup_xfer(c->aue_xfer, sc->aue_ep[AUE_ENDPT_RX],
c, c->aue_buf, AUE_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
aue_rxeof);
(void)usbd_transfer(c->aue_xfer); /* XXX */
DPRINTFN(5,("%s: %s: start read\n", device_xname(sc->aue_dev),
Index: src/sys/dev/usb/if_axe.c
diff -u src/sys/dev/usb/if_axe.c:1.67 src/sys/dev/usb/if_axe.c:1.67.4.1
--- src/sys/dev/usb/if_axe.c:1.67 Sun Aug 10 16:44:36 2014
+++ src/sys/dev/usb/if_axe.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_axe.c,v 1.67 2014/08/10 16:44:36 tls Exp $ */
+/* $NetBSD: if_axe.c,v 1.67.4.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_axe.c,v 1.96 2010/01/09 05:33:08 jsg Exp $ */
/*
@@ -89,7 +89,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.67 2014/08/10 16:44:36 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.67.4.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1101,7 +1101,7 @@ axe_rxeof(usbd_xfer_handle xfer, usbd_pr
/* Setup new transfer. */
usbd_setup_xfer(xfer, sc->axe_ep[AXE_ENDPT_RX],
c, c->axe_buf, sc->axe_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, axe_rxeof);
usbd_transfer(xfer);
@@ -1250,7 +1250,7 @@ axe_encap(struct axe_softc *sc, struct m
}
usbd_setup_xfer(c->axe_xfer, sc->axe_ep[AXE_ENDPT_TX],
- c, c->axe_buf, length, USBD_FORCE_SHORT_XFER | USBD_NO_COPY, 10000,
+ c, c->axe_buf, length, USBD_FORCE_SHORT_XFER, 10000,
axe_txeof);
/* Transmit */
@@ -1411,7 +1411,7 @@ axe_init(struct ifnet *ifp)
c = &sc->axe_cdata.axe_rx_chain[i];
usbd_setup_xfer(c->axe_xfer, sc->axe_ep[AXE_ENDPT_RX],
c, c->axe_buf, sc->axe_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
axe_rxeof);
usbd_transfer(c->axe_xfer);
}
Index: src/sys/dev/usb/if_axen.c
diff -u src/sys/dev/usb/if_axen.c:1.3 src/sys/dev/usb/if_axen.c:1.3.6.1
--- src/sys/dev/usb/if_axen.c:1.3 Sun Aug 10 16:44:36 2014
+++ src/sys/dev/usb/if_axen.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_axen.c,v 1.3 2014/08/10 16:44:36 tls Exp $ */
+/* $NetBSD: if_axen.c,v 1.3.6.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_axen.c,v 1.3 2013/10/21 10:10:22 yuo Exp $ */
/*
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.3 2014/08/10 16:44:36 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.3.6.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1121,7 +1121,7 @@ done:
/* Setup new transfer. */
usbd_setup_xfer(xfer, sc->axen_ep[AXEN_ENDPT_RX],
c, c->axen_buf, sc->axen_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, axen_rxeof);
usbd_transfer(xfer);
@@ -1255,7 +1255,7 @@ axen_encap(struct axen_softc *sc, struct
}
usbd_setup_xfer(c->axen_xfer, sc->axen_ep[AXEN_ENDPT_TX],
- c, c->axen_buf, length, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ c, c->axen_buf, length, USBD_FORCE_SHORT_XFER,
10000, axen_txeof);
/* Transmit */
@@ -1388,7 +1388,7 @@ axen_init(struct ifnet *ifp)
c = &sc->axen_cdata.axen_rx_chain[i];
usbd_setup_xfer(c->axen_xfer, sc->axen_ep[AXEN_ENDPT_RX],
c, c->axen_buf, sc->axen_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, axen_rxeof);
usbd_transfer(c->axen_xfer);
}
Index: src/sys/dev/usb/if_cdce.c
diff -u src/sys/dev/usb/if_cdce.c:1.38 src/sys/dev/usb/if_cdce.c:1.38.14.1
--- src/sys/dev/usb/if_cdce.c:1.38 Sat Jan 5 01:30:15 2013
+++ src/sys/dev/usb/if_cdce.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_cdce.c,v 1.38 2013/01/05 01:30:15 christos Exp $ */
+/* $NetBSD: if_cdce.c,v 1.38.14.1 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000-2003 Bill Paul <[email protected]>
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.38 2013/01/05 01:30:15 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.38.14.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -379,7 +379,7 @@ cdce_encap(struct cdce_softc *sc, struct
c->cdce_mbuf = m;
usbd_setup_xfer(c->cdce_xfer, sc->cdce_bulkout_pipe, c, c->cdce_buf,
- m->m_pkthdr.len + extra, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ m->m_pkthdr.len + extra, USBD_FORCE_SHORT_XFER,
10000, cdce_txeof);
err = usbd_transfer(c->cdce_xfer);
if (err != USBD_IN_PROGRESS) {
@@ -575,7 +575,7 @@ cdce_init(void *xsc)
for (i = 0; i < CDCE_RX_LIST_CNT; i++) {
c = &sc->cdce_cdata.cdce_rx_chain[i];
usbd_setup_xfer(c->cdce_xfer, sc->cdce_bulkin_pipe, c,
- c->cdce_buf, CDCE_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ c->cdce_buf, CDCE_BUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, cdce_rxeof);
usbd_transfer(c->cdce_xfer);
}
@@ -732,7 +732,7 @@ done1:
done:
/* Setup new transfer. */
usbd_setup_xfer(c->cdce_xfer, sc->cdce_bulkin_pipe, c, c->cdce_buf,
- CDCE_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ CDCE_BUFSZ, USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
cdce_rxeof);
usbd_transfer(c->cdce_xfer);
}
Index: src/sys/dev/usb/if_cue.c
diff -u src/sys/dev/usb/if_cue.c:1.68.4.1 src/sys/dev/usb/if_cue.c:1.68.4.2
--- src/sys/dev/usb/if_cue.c:1.68.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_cue.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_cue.c,v 1.68.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_cue.c,v 1.68.4.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
* Bill Paul <[email protected]>. All rights reserved.
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_cue.c,v 1.68.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cue.c,v 1.68.4.2 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -806,7 +806,7 @@ cue_rxeof(usbd_xfer_handle xfer, usbd_pr
done:
/* Setup new transfer. */
usbd_setup_xfer(c->cue_xfer, sc->cue_ep[CUE_ENDPT_RX],
- c, c->cue_buf, CUE_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ c, c->cue_buf, CUE_BUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, cue_rxeof);
usbd_transfer(c->cue_xfer);
@@ -928,7 +928,7 @@ cue_send(struct cue_softc *sc, struct mb
/* XXX 10000 */
usbd_setup_xfer(c->cue_xfer, sc->cue_ep[CUE_ENDPT_TX],
- c, c->cue_buf, total_len, USBD_NO_COPY, 10000, cue_txeof);
+ c, c->cue_buf, total_len, 0, 10000, cue_txeof);
/* Transmit */
err = usbd_transfer(c->cue_xfer);
@@ -1099,7 +1099,7 @@ cue_open_pipes(struct cue_softc *sc)
c = &sc->cue_cdata.cue_rx_chain[i];
usbd_setup_xfer(c->cue_xfer, sc->cue_ep[CUE_ENDPT_RX],
c, c->cue_buf, CUE_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
cue_rxeof);
usbd_transfer(c->cue_xfer);
}
Index: src/sys/dev/usb/if_kue.c
diff -u src/sys/dev/usb/if_kue.c:1.81 src/sys/dev/usb/if_kue.c:1.81.4.1
--- src/sys/dev/usb/if_kue.c:1.81 Sun Aug 10 16:44:36 2014
+++ src/sys/dev/usb/if_kue.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_kue.c,v 1.81 2014/08/10 16:44:36 tls Exp $ */
+/* $NetBSD: if_kue.c,v 1.81.4.1 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -71,7 +71,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.81 2014/08/10 16:44:36 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.81.4.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -731,7 +731,7 @@ kue_rxeof(usbd_xfer_handle xfer, usbd_pr
/* Setup new transfer. */
usbd_setup_xfer(c->kue_xfer, sc->kue_ep[KUE_ENDPT_RX],
- c, c->kue_buf, KUE_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ c, c->kue_buf, KUE_BUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, kue_rxeof);
usbd_transfer(c->kue_xfer);
@@ -810,7 +810,7 @@ kue_send(struct kue_softc *sc, struct mb
total_len = roundup2(total_len, 64);
usbd_setup_xfer(c->kue_xfer, sc->kue_ep[KUE_ENDPT_TX],
- c, c->kue_buf, total_len, USBD_NO_COPY, USBD_DEFAULT_TIMEOUT,
+ c, c->kue_buf, total_len, 0, USBD_DEFAULT_TIMEOUT,
kue_txeof);
/* Transmit */
@@ -965,7 +965,7 @@ kue_open_pipes(struct kue_softc *sc)
c = &sc->kue_cdata.kue_rx_chain[i];
usbd_setup_xfer(c->kue_xfer, sc->kue_ep[KUE_ENDPT_RX],
c, c->kue_buf, KUE_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
kue_rxeof);
DPRINTFN(5,("%s: %s: start read\n", device_xname(sc->kue_dev),
__func__));
Index: src/sys/dev/usb/if_otus.c
diff -u src/sys/dev/usb/if_otus.c:1.25 src/sys/dev/usb/if_otus.c:1.25.6.1
--- src/sys/dev/usb/if_otus.c:1.25 Thu Oct 17 21:07:37 2013
+++ src/sys/dev/usb/if_otus.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_otus.c,v 1.25 2013/10/17 21:07:37 christos Exp $ */
+/* $NetBSD: if_otus.c,v 1.25.6.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_otus.c,v 1.18 2010/08/27 17:08:00 jsg Exp $ */
/*-
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_otus.c,v 1.25 2013/10/17 21:07:37 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_otus.c,v 1.25.6.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -1045,7 +1045,7 @@ otus_open_pipes(struct otus_softc *sc)
data = &sc->sc_rx_data[i];
usbd_setup_xfer(data->xfer, sc->sc_data_rx_pipe, data, data->buf,
- OTUS_RXBUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ OTUS_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, otus_rxeof);
error = usbd_transfer(data->xfer);
if (error != USBD_IN_PROGRESS && error != 0) {
@@ -1440,7 +1440,7 @@ otus_cmd(struct otus_softc *sc, uint8_t
cmd->odata = odata;
cmd->done = 0;
usbd_setup_xfer(cmd->xfer, sc->sc_cmd_tx_pipe, cmd, cmd->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, OTUS_CMD_TIMEOUT, NULL);
+ USBD_FORCE_SHORT_XFER, OTUS_CMD_TIMEOUT, NULL);
error = usbd_sync_transfer(cmd->xfer);
if (error != 0) {
splx(s);
@@ -1897,7 +1897,7 @@ otus_rxeof(usbd_xfer_handle xfer, usbd_p
resubmit:
usbd_setup_xfer(xfer, sc->sc_data_rx_pipe, data, data->buf, OTUS_RXBUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT, otus_rxeof);
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT, otus_rxeof);
(void)usbd_transfer(data->xfer);
}
@@ -2054,7 +2054,7 @@ otus_tx(struct otus_softc *sc, struct mb
head->len, head->macctl, head->phyctl, otus_rates[ridx].rate);
usbd_setup_xfer(data->xfer, sc->sc_data_tx_pipe, data, data->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, OTUS_TX_TIMEOUT, otus_txeof);
+ USBD_FORCE_SHORT_XFER, OTUS_TX_TIMEOUT, otus_txeof);
error = usbd_transfer(data->xfer);
if (__predict_false(
error != USBD_NORMAL_COMPLETION &&
Index: src/sys/dev/usb/if_rum.c
diff -u src/sys/dev/usb/if_rum.c:1.48 src/sys/dev/usb/if_rum.c:1.48.6.1
--- src/sys/dev/usb/if_rum.c:1.48 Sat Mar 29 00:59:05 2014
+++ src/sys/dev/usb/if_rum.c Tue Dec 2 09:00:33 2014
@@ -1,5 +1,5 @@
/* $OpenBSD: if_rum.c,v 1.40 2006/09/18 16:20:20 damien Exp $ */
-/* $NetBSD: if_rum.c,v 1.48 2014/03/29 00:59:05 zafer Exp $ */
+/* $NetBSD: if_rum.c,v 1.48.6.1 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2005-2007 Damien Bergamini <[email protected]>
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_rum.c,v 1.48 2014/03/29 00:59:05 zafer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_rum.c,v 1.48.6.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -1194,7 +1194,7 @@ rum_tx_data(struct rum_softc *sc, struct
m_freem(mprot);
usbd_setup_xfer(data->xfer, sc->sc_tx_pipeh, data, data->buf,
- xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ xferlen, USBD_FORCE_SHORT_XFER,
RUM_TX_TIMEOUT, rum_txeof);
error = usbd_transfer(data->xfer);
if (error != USBD_NORMAL_COMPLETION &&
@@ -1261,7 +1261,7 @@ rum_tx_data(struct rum_softc *sc, struct
m_freem(m0);
usbd_setup_xfer(data->xfer, sc->sc_tx_pipeh, data, data->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, RUM_TX_TIMEOUT, rum_txeof);
+ USBD_FORCE_SHORT_XFER, RUM_TX_TIMEOUT, rum_txeof);
error = usbd_transfer(data->xfer);
if (error != USBD_NORMAL_COMPLETION && error != USBD_IN_PROGRESS)
return error;
Index: src/sys/dev/usb/if_run.c
diff -u src/sys/dev/usb/if_run.c:1.10 src/sys/dev/usb/if_run.c:1.10.6.1
--- src/sys/dev/usb/if_run.c:1.10 Tue Jan 28 13:08:13 2014
+++ src/sys/dev/usb/if_run.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_run.c,v 1.10 2014/01/28 13:08:13 martin Exp $ */
+/* $NetBSD: if_run.c,v 1.10.6.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_run.c,v 1.90 2012/03/24 15:11:04 jsg Exp $ */
/*-
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_run.c,v 1.10 2014/01/28 13:08:13 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_run.c,v 1.10.6.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -2186,7 +2186,7 @@ run_rxeof(usbd_xfer_handle xfer, usbd_pr
skip: /* setup a new transfer */
usbd_setup_xfer(xfer, sc->rxq.pipeh, data, data->buf, RUN_MAX_RXSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT, run_rxeof);
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT, run_rxeof);
(void)usbd_transfer(data->xfer);
}
@@ -2345,7 +2345,7 @@ run_tx(struct run_softc *sc, struct mbuf
xferlen += sizeof (*txd) + 4;
usbd_setup_xfer(data->xfer, ring->pipeh, data, data->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, RUN_TX_TIMEOUT, run_txeof);
+ USBD_FORCE_SHORT_XFER, RUN_TX_TIMEOUT, run_txeof);
error = usbd_transfer(data->xfer);
if (__predict_false(error != USBD_IN_PROGRESS &&
error != USBD_NORMAL_COMPLETION))
@@ -3620,7 +3620,7 @@ run_init(struct ifnet *ifp)
struct run_rx_data *data = &sc->rxq.data[i];
usbd_setup_xfer(data->xfer, sc->rxq.pipeh, data, data->buf,
- RUN_MAX_RXSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ RUN_MAX_RXSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, run_rxeof);
error = usbd_transfer(data->xfer);
if (error != USBD_NORMAL_COMPLETION &&
Index: src/sys/dev/usb/if_smsc.c
diff -u src/sys/dev/usb/if_smsc.c:1.22 src/sys/dev/usb/if_smsc.c:1.22.2.1
--- src/sys/dev/usb/if_smsc.c:1.22 Sat Sep 20 15:07:06 2014
+++ src/sys/dev/usb/if_smsc.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_smsc.c,v 1.22 2014/09/20 15:07:06 jmcneill Exp $ */
+/* $NetBSD: if_smsc.c,v 1.22.2.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_smsc.c,v 1.4 2012/09/27 12:38:11 jsg Exp $ */
/* $FreeBSD: src/sys/dev/usb/net/if_smsc.c,v 1.1 2012/08/15 04:03:55 gonzo Exp $ */
@@ -604,7 +604,7 @@ smsc_init(struct ifnet *ifp)
c = &sc->sc_cdata.rx_chain[i];
usbd_setup_xfer(c->sc_xfer, sc->sc_ep[SMSC_ENDPT_RX],
c, c->sc_buf, sc->sc_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, smsc_rxeof);
usbd_transfer(c->sc_xfer);
}
@@ -1413,7 +1413,7 @@ done:
/* Setup new transfer. */
usbd_setup_xfer(xfer, sc->sc_ep[SMSC_ENDPT_RX],
c, c->sc_buf, sc->sc_bufsz,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, smsc_rxeof);
usbd_transfer(xfer);
@@ -1573,7 +1573,7 @@ smsc_encap(struct smsc_softc *sc, struct
c->sc_mbuf = m;
usbd_setup_xfer(c->sc_xfer, sc->sc_ep[SMSC_ENDPT_TX],
- c, c->sc_buf, frm_len, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ c, c->sc_buf, frm_len, USBD_FORCE_SHORT_XFER,
10000, smsc_txeof);
err = usbd_transfer(c->sc_xfer);
Index: src/sys/dev/usb/if_udav.c
diff -u src/sys/dev/usb/if_udav.c:1.43.4.1 src/sys/dev/usb/if_udav.c:1.43.4.2
--- src/sys/dev/usb/if_udav.c:1.43.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_udav.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_udav.c,v 1.43.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_udav.c,v 1.43.4.2 2014/12/02 09:00:33 skrll Exp $ */
/* $nabe: if_udav.c,v 1.3 2003/08/21 16:57:19 nabe Exp $ */
/*
@@ -45,7 +45,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.43.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.43.4.2 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -877,7 +877,7 @@ udav_openpipes(struct udav_softc *sc)
c = &sc->sc_cdata.udav_rx_chain[i];
usbd_setup_xfer(c->udav_xfer, sc->sc_pipe_rx,
c, c->udav_buf, UDAV_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, udav_rxeof);
(void)usbd_transfer(c->udav_xfer);
DPRINTF(("%s: %s: start read\n", device_xname(sc->sc_dev),
@@ -1052,7 +1052,7 @@ udav_send(struct udav_softc *sc, struct
total_len += 2;
usbd_setup_xfer(c->udav_xfer, sc->sc_pipe_tx, c, c->udav_buf, total_len,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ USBD_FORCE_SHORT_XFER,
UDAV_TX_TIMEOUT, udav_txeof);
/* Transmit */
@@ -1211,7 +1211,7 @@ udav_rxeof(usbd_xfer_handle xfer, usbd_p
done:
/* Setup new transfer */
usbd_setup_xfer(xfer, sc->sc_pipe_rx, c, c->udav_buf, UDAV_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, udav_rxeof);
sc->sc_refcnt++;
usbd_transfer(xfer);
Index: src/sys/dev/usb/if_upgt.c
diff -u src/sys/dev/usb/if_upgt.c:1.12.4.1 src/sys/dev/usb/if_upgt.c:1.12.4.2
--- src/sys/dev/usb/if_upgt.c:1.12.4.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/if_upgt.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_upgt.c,v 1.12.4.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: if_upgt.c,v 1.12.4.2 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_upgt.c,v 1.49 2010/04/20 22:05:43 tedu Exp $ */
/*
@@ -18,7 +18,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_upgt.c,v 1.12.4.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_upgt.c,v 1.12.4.2 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/callout.h>
@@ -1661,7 +1661,7 @@ upgt_tx_task(void *arg)
device_xname(sc->sc_dev));
usbd_setup_xfer(data_tx->xfer, sc->sc_tx_pipeh, data_tx,
- data_tx->buf, len, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ data_tx->buf, len, USBD_FORCE_SHORT_XFER,
UPGT_USB_TIMEOUT, NULL);
error = usbd_transfer(data_tx->xfer);
if (error != USBD_NORMAL_COMPLETION &&
@@ -2366,7 +2366,7 @@ upgt_bulk_xmit(struct upgt_softc *sc, st
usbd_status status;
status = usbd_bulk_transfer(data->xfer, pipeh,
- USBD_NO_COPY | flags, UPGT_USB_TIMEOUT, data->buf, size);
+ flags, UPGT_USB_TIMEOUT, data->buf, size);
if (status != USBD_NORMAL_COMPLETION) {
aprint_error_dev(sc->sc_dev, "%s: error %s\n", __func__,
usbd_errstr(status));
Index: src/sys/dev/usb/if_upl.c
diff -u src/sys/dev/usb/if_upl.c:1.47.4.1 src/sys/dev/usb/if_upl.c:1.47.4.2
--- src/sys/dev/usb/if_upl.c:1.47.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_upl.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_upl.c,v 1.47.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_upl.c,v 1.47.4.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.47.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.47.4.2 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -555,7 +555,7 @@ upl_rxeof(usbd_xfer_handle xfer, usbd_pr
#if 1
/* Setup new transfer. */
usbd_setup_xfer(c->upl_xfer, sc->sc_ep[UPL_ENDPT_RX],
- c, c->upl_buf, UPL_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ c, c->upl_buf, UPL_BUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, upl_rxeof);
usbd_transfer(c->upl_xfer);
@@ -635,7 +635,7 @@ upl_send(struct upl_softc *sc, struct mb
device_xname(sc->sc_dev), __func__, total_len));
usbd_setup_xfer(c->upl_xfer, sc->sc_ep[UPL_ENDPT_TX],
- c, c->upl_buf, total_len, USBD_NO_COPY, USBD_DEFAULT_TIMEOUT,
+ c, c->upl_buf, total_len, 0, USBD_DEFAULT_TIMEOUT,
upl_txeof);
/* Transmit */
@@ -774,7 +774,7 @@ upl_openpipes(struct upl_softc *sc)
c = &sc->sc_cdata.upl_rx_chain[i];
usbd_setup_xfer(c->upl_xfer, sc->sc_ep[UPL_ENDPT_RX],
c, c->upl_buf, UPL_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
upl_rxeof);
usbd_transfer(c->upl_xfer);
}
Index: src/sys/dev/usb/if_ural.c
diff -u src/sys/dev/usb/if_ural.c:1.44 src/sys/dev/usb/if_ural.c:1.44.14.1
--- src/sys/dev/usb/if_ural.c:1.44 Tue Jan 22 12:40:43 2013
+++ src/sys/dev/usb/if_ural.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ural.c,v 1.44 2013/01/22 12:40:43 jmcneill Exp $ */
+/* $NetBSD: if_ural.c,v 1.44.14.1 2014/12/02 09:00:33 skrll Exp $ */
/* $FreeBSD: /repoman/r/ncvs/src/sys/dev/usb/if_ural.c,v 1.40 2006/06/02 23:14:40 sam Exp $ */
/*-
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ural.c,v 1.44 2013/01/22 12:40:43 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ural.c,v 1.44.14.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -1187,7 +1187,7 @@ ural_tx_bcn(struct ural_softc *sc, struc
m0->m_pkthdr.len, rate, xferlen));
usbd_setup_xfer(xfer, sc->sc_tx_pipeh, NULL, buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, RAL_TX_TIMEOUT, NULL);
+ USBD_FORCE_SHORT_XFER, RAL_TX_TIMEOUT, NULL);
error = usbd_sync_transfer(xfer);
usbd_free_xfer(xfer);
@@ -1271,7 +1271,7 @@ ural_tx_mgt(struct ural_softc *sc, struc
m0->m_pkthdr.len, rate, xferlen));
usbd_setup_xfer(data->xfer, sc->sc_tx_pipeh, data, data->buf,
- xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY, RAL_TX_TIMEOUT,
+ xferlen, USBD_FORCE_SHORT_XFER, RAL_TX_TIMEOUT,
ural_txeof);
error = usbd_transfer(data->xfer);
@@ -1362,7 +1362,7 @@ ural_tx_data(struct ural_softc *sc, stru
m0->m_pkthdr.len, rate, xferlen));
usbd_setup_xfer(data->xfer, sc->sc_tx_pipeh, data, data->buf,
- xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY, RAL_TX_TIMEOUT,
+ xferlen, USBD_FORCE_SHORT_XFER, RAL_TX_TIMEOUT,
ural_txeof);
error = usbd_transfer(data->xfer);
Index: src/sys/dev/usb/if_url.c
diff -u src/sys/dev/usb/if_url.c:1.48.4.1 src/sys/dev/usb/if_url.c:1.48.4.2
--- src/sys/dev/usb/if_url.c:1.48.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_url.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_url.c,v 1.48.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_url.c,v 1.48.4.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2001, 2002
@@ -44,7 +44,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.48.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.48.4.2 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -746,7 +746,7 @@ url_openpipes(struct url_softc *sc)
c = &sc->sc_cdata.url_rx_chain[i];
usbd_setup_xfer(c->url_xfer, sc->sc_pipe_rx,
c, c->url_buf, URL_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, url_rxeof);
(void)usbd_transfer(c->url_xfer);
DPRINTF(("%s: %s: start read\n", device_xname(sc->sc_dev),
@@ -915,7 +915,7 @@ url_send(struct url_softc *sc, struct mb
total_len = URL_MIN_FRAME_LEN;
}
usbd_setup_xfer(c->url_xfer, sc->sc_pipe_tx, c, c->url_buf, total_len,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ USBD_FORCE_SHORT_XFER,
URL_TX_TIMEOUT, url_txeof);
/* Transmit */
@@ -1073,7 +1073,7 @@ url_rxeof(usbd_xfer_handle xfer, usbd_pr
done:
/* Setup new transfer */
usbd_setup_xfer(xfer, sc->sc_pipe_rx, c, c->url_buf, URL_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, url_rxeof);
sc->sc_refcnt++;
usbd_transfer(xfer);
Index: src/sys/dev/usb/if_urndis.c
diff -u src/sys/dev/usb/if_urndis.c:1.9 src/sys/dev/usb/if_urndis.c:1.9.4.1
--- src/sys/dev/usb/if_urndis.c:1.9 Sat Jul 19 08:38:28 2014
+++ src/sys/dev/usb/if_urndis.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_urndis.c,v 1.9 2014/07/19 08:38:28 skrll Exp $ */
+/* $NetBSD: if_urndis.c,v 1.9.4.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_urndis.c,v 1.31 2011/07/03 15:47:17 matthew Exp $ */
/*
@@ -21,7 +21,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.9 2014/07/19 08:38:28 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.9.4.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -755,7 +755,7 @@ urndis_encap(struct urndis_softc *sc, st
c->sc_mbuf = m;
usbd_setup_xfer(c->sc_xfer, sc->sc_bulkout_pipe, c, c->sc_buf,
- le32toh(msg->rm_len), USBD_FORCE_SHORT_XFER | USBD_NO_COPY, 10000,
+ le32toh(msg->rm_len), USBD_FORCE_SHORT_XFER, 10000,
urndis_txeof);
/* Transmit */
@@ -1081,7 +1081,7 @@ urndis_init(struct ifnet *ifp)
c = &sc->sc_data.sc_rx_chain[i];
usbd_setup_xfer(c->sc_xfer, sc->sc_bulkin_pipe, c,
c->sc_buf, RNDIS_BUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, urndis_rxeof);
usbd_transfer(c->sc_xfer);
}
@@ -1226,7 +1226,7 @@ urndis_rxeof(usbd_xfer_handle xfer,
done:
/* Setup new transfer. */
usbd_setup_xfer(c->sc_xfer, sc->sc_bulkin_pipe, c, c->sc_buf,
- RNDIS_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT,
+ RNDIS_BUFSZ, USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
urndis_rxeof);
usbd_transfer(c->sc_xfer);
}
Index: src/sys/dev/usb/if_urtw.c
diff -u src/sys/dev/usb/if_urtw.c:1.6 src/sys/dev/usb/if_urtw.c:1.6.6.1
--- src/sys/dev/usb/if_urtw.c:1.6 Wed Oct 16 18:55:31 2013
+++ src/sys/dev/usb/if_urtw.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_urtw.c,v 1.6 2013/10/16 18:55:31 christos Exp $ */
+/* $NetBSD: if_urtw.c,v 1.6.6.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_urtw.c,v 1.39 2011/07/03 15:47:17 matthew Exp $ */
/*-
@@ -19,7 +19,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_urtw.c,v 1.6 2013/10/16 18:55:31 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_urtw.c,v 1.6.6.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -2676,7 +2676,7 @@ urtw_tx_start(struct urtw_softc *sc, str
usbd_setup_xfer(data->xfer,
(prior == URTW_PRIORITY_LOW) ? sc->sc_txpipe_low :
sc->sc_txpipe_normal, data, data->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, URTW_DATA_TIMEOUT,
+ USBD_FORCE_SHORT_XFER, URTW_DATA_TIMEOUT,
(prior == URTW_PRIORITY_LOW) ? urtw_txeof_low : urtw_txeof_normal);
error = usbd_transfer(data->xfer);
if (error != USBD_IN_PROGRESS && error != USBD_NORMAL_COMPLETION) {
Index: src/sys/dev/usb/if_urtwn.c
diff -u src/sys/dev/usb/if_urtwn.c:1.34 src/sys/dev/usb/if_urtwn.c:1.34.4.1
--- src/sys/dev/usb/if_urtwn.c:1.34 Fri Jul 25 15:07:03 2014
+++ src/sys/dev/usb/if_urtwn.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_urtwn.c,v 1.34 2014/07/25 15:07:03 nonaka Exp $ */
+/* $NetBSD: if_urtwn.c,v 1.34.4.1 2014/12/02 09:00:33 skrll Exp $ */
/* $OpenBSD: if_urtwn.c,v 1.20 2011/11/26 06:39:33 ckuethe Exp $ */
/*-
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.34 2014/07/25 15:07:03 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.34.4.1 2014/12/02 09:00:33 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -2380,7 +2380,7 @@ urtwn_rxeof(usbd_xfer_handle xfer, usbd_
resubmit:
/* Setup a new transfer. */
usbd_setup_xfer(xfer, sc->rx_pipe, data, data->buf, URTWN_RXBUFSZ,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT, urtwn_rxeof);
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT, urtwn_rxeof);
(void)usbd_transfer(xfer);
}
@@ -2599,7 +2599,7 @@ urtwn_tx(struct urtwn_softc *sc, struct
s = splnet();
data->pipe = pipe;
usbd_setup_xfer(data->xfer, pipe, data, data->buf, xferlen,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY, URTWN_TX_TIMEOUT,
+ USBD_FORCE_SHORT_XFER, URTWN_TX_TIMEOUT,
urtwn_txeof);
error = usbd_transfer(data->xfer);
if (__predict_false(error != USBD_NORMAL_COMPLETION &&
@@ -4386,7 +4386,7 @@ urtwn_init(struct ifnet *ifp)
for (i = 0; i < URTWN_RX_LIST_COUNT; i++) {
data = &sc->rx_data[i];
usbd_setup_xfer(data->xfer, sc->rx_pipe, data, data->buf,
- URTWN_RXBUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ URTWN_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, urtwn_rxeof);
error = usbd_transfer(data->xfer);
if (__predict_false(error != USBD_NORMAL_COMPLETION &&
Index: src/sys/dev/usb/if_zyd.c
diff -u src/sys/dev/usb/if_zyd.c:1.36 src/sys/dev/usb/if_zyd.c:1.36.14.1
--- src/sys/dev/usb/if_zyd.c:1.36 Tue Jan 22 12:40:43 2013
+++ src/sys/dev/usb/if_zyd.c Tue Dec 2 09:00:33 2014
@@ -1,5 +1,5 @@
/* $OpenBSD: if_zyd.c,v 1.52 2007/02/11 00:08:04 jsg Exp $ */
-/* $NetBSD: if_zyd.c,v 1.36 2013/01/22 12:40:43 jmcneill Exp $ */
+/* $NetBSD: if_zyd.c,v 1.36.14.1 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2006 by Damien Bergamini <[email protected]>
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.36 2013/01/22 12:40:43 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.36.14.1 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -2045,7 +2045,7 @@ zyd_rxeof(usbd_xfer_handle xfer, usbd_pr
skip: /* setup a new transfer */
usbd_setup_xfer(xfer, sc->zyd_ep[ZYD_ENDPT_BIN], data, NULL,
- ZYX_MAX_RXBUFSZ, USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ ZYX_MAX_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, zyd_rxeof);
(void)usbd_transfer(xfer);
}
@@ -2150,7 +2150,7 @@ zyd_tx_mgt(struct zyd_softc *sc, struct
m_freem(m0); /* mbuf no longer needed */
usbd_setup_xfer(data->xfer, sc->zyd_ep[ZYD_ENDPT_BOUT], data,
- data->buf, xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ data->buf, xferlen, USBD_FORCE_SHORT_XFER,
ZYD_TX_TIMEOUT, zyd_txeof);
error = usbd_transfer(data->xfer);
if (error != USBD_IN_PROGRESS && error != 0) {
@@ -2308,7 +2308,7 @@ zyd_tx_data(struct zyd_softc *sc, struct
m_freem(m0); /* mbuf no longer needed */
usbd_setup_xfer(data->xfer, sc->zyd_ep[ZYD_ENDPT_BOUT], data,
- data->buf, xferlen, USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ data->buf, xferlen, USBD_FORCE_SHORT_XFER,
ZYD_TX_TIMEOUT, zyd_txeof);
error = usbd_transfer(data->xfer);
if (error != USBD_IN_PROGRESS && error != 0) {
@@ -2521,7 +2521,7 @@ zyd_init(struct ifnet *ifp)
struct zyd_rx_data *data = &sc->rx_data[i];
usbd_setup_xfer(data->xfer, sc->zyd_ep[ZYD_ENDPT_BIN], data,
- NULL, ZYX_MAX_RXBUFSZ, USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ NULL, ZYX_MAX_RXBUFSZ, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, zyd_rxeof);
error = usbd_transfer(data->xfer);
if (error != USBD_IN_PROGRESS && error != 0) {
Index: src/sys/dev/usb/irmce.c
diff -u src/sys/dev/usb/irmce.c:1.1.32.1 src/sys/dev/usb/irmce.c:1.1.32.2
--- src/sys/dev/usb/irmce.c:1.1.32.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/irmce.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: irmce.c,v 1.1.32.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: irmce.c,v 1.1.32.2 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <[email protected]>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: irmce.c,v 1.1.32.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: irmce.c,v 1.1.32.2 2014/12/02 09:00:33 skrll Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -305,7 +305,7 @@ irmce_reset(struct irmce_softc *sc)
wlen = sizeof(reset_cmd);
err = usbd_bulk_transfer(sc->sc_bulkin_xfer,
- sc->sc_bulkout_pipe, USBD_NO_COPY|USBD_FORCE_SHORT_XFER,
+ sc->sc_bulkout_pipe, USBD_FORCE_SHORT_XFER,
USBD_DEFAULT_TIMEOUT, sc->sc_bulkout_buffer, &wlen);
if (err != USBD_NORMAL_COMPLETION) {
if (err == USBD_INTERRUPTED)
@@ -551,7 +551,7 @@ irmce_read(void *priv, struct uio *uio,
while (uio->uio_resid > 0) {
rlen = sc->sc_bulkin_maxpktsize;
err = usbd_bulk_transfer(sc->sc_bulkin_xfer,
- sc->sc_bulkin_pipe, USBD_NO_COPY|USBD_SHORT_XFER_OK,
+ sc->sc_bulkin_pipe, USBD_SHORT_XFER_OK,
USBD_DEFAULT_TIMEOUT, sc->sc_bulkin_buffer, &rlen);
if (err != USBD_NORMAL_COMPLETION) {
if (err == USBD_INTERRUPTED)
Index: src/sys/dev/usb/motg.c
diff -u src/sys/dev/usb/motg.c:1.12.2.4 src/sys/dev/usb/motg.c:1.12.2.5
--- src/sys/dev/usb/motg.c:1.12.2.4 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/motg.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: motg.c,v 1.12.2.4 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: motg.c,v 1.12.2.5 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1998, 2004, 2011, 2012, 2014 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
#include "opt_motg.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: motg.c,v 1.12.2.4 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: motg.c,v 1.12.2.5 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -116,8 +116,6 @@ static void motg_root_intr_done(usbd_xf
static usbd_status motg_open(usbd_pipe_handle);
static void motg_poll(struct usbd_bus *);
static void motg_softintr(void *);
-static usbd_status motg_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-static void motg_freem(struct usbd_bus *, usb_dma_t *);
static usbd_xfer_handle motg_allocx(struct usbd_bus *);
static void motg_freex(struct usbd_bus *, usbd_xfer_handle);
static void motg_get_lock(struct usbd_bus *, kmutex_t **);
@@ -206,8 +204,6 @@ const struct usbd_bus_methods motg_bus_m
.ubm_open = motg_open,
.ubm_softint = motg_softintr,
.ubm_dopoll = motg_poll,
- .ubm_allocm = motg_allocm,
- .ubm_freem = motg_freem,
.ubm_allocx = motg_allocx,
.ubm_freex = motg_freex,
.ubm_getlock = motg_get_lock,
@@ -718,29 +714,6 @@ motg_intr_vbus(struct motg_softc *sc, in
return 1;
}
-usbd_status
-motg_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct motg_softc *sc = bus->hci_private;
- usbd_status status;
-
- status = usb_allocmem(&sc->sc_bus, size, 0, dma);
- if (status == USBD_NOMEM)
- status = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
- return status;
-}
-
-void
-motg_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&((struct motg_softc *)bus)->sc_dma_reserve,
- dma);
- return;
- }
- usb_freemem(&((struct motg_softc *)bus)->sc_bus, dma);
-}
-
usbd_xfer_handle
motg_allocx(struct usbd_bus *bus)
{
@@ -894,7 +867,7 @@ motg_root_ctrl_start(usbd_xfer_handle xf
index = UGETW(req->wIndex);
if (len != 0)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
#define C(x,y) ((x) | ((y) << 8))
switch(C(req->bRequest, req->bmRequestType)) {
@@ -1325,7 +1298,7 @@ motg_hub_change(struct motg_softc *sc)
if (pipe->device == NULL || pipe->device->bus == NULL)
return; /* device has detached */
- p = KERNADDR(&xfer->dmabuf, 0);
+ p = xfer->buf;
p[0] = 1<<1;
xfer->actlen = 1;
xfer->status = USBD_NORMAL_COMPLETION;
@@ -1552,7 +1525,7 @@ motg_device_ctrl_start1(struct motg_soft
ep->xfer = xfer;
ep->datalen = xfer->length;
if (ep->datalen > 0)
- ep->data = KERNADDR(&xfer->dmabuf, 0);
+ ep->data = xfer->buf;
else
ep->data = NULL;
if ((xfer->flags & USBD_FORCE_SHORT_XFER) &&
@@ -1998,7 +1971,7 @@ motg_device_data_start1(struct motg_soft
ep->xfer = xfer;
ep->datalen = xfer->length;
KASSERT(ep->datalen > 0);
- ep->data = KERNADDR(&xfer->dmabuf, 0);
+ ep->data = xfer->buf;
if ((xfer->flags & USBD_FORCE_SHORT_XFER) &&
(ep->datalen % 64) == 0)
ep->need_short_xfer = 1;
Index: src/sys/dev/usb/motgvar.h
diff -u src/sys/dev/usb/motgvar.h:1.4.2.1 src/sys/dev/usb/motgvar.h:1.4.2.2
--- src/sys/dev/usb/motgvar.h:1.4.2.1 Mon Dec 1 21:52:00 2014
+++ src/sys/dev/usb/motgvar.h Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: motgvar.h,v 1.4.2.1 2014/12/01 21:52:00 skrll Exp $ */
+/* $NetBSD: motgvar.h,v 1.4.2.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -85,8 +85,6 @@ struct motg_softc {
struct motg_hw_ep sc_in_ep[MOTG_MAX_HW_EP];
struct motg_hw_ep sc_out_ep[MOTG_MAX_HW_EP];
- struct usb_dma_reserve sc_dma_reserve;
-
kmutex_t sc_lock;
kmutex_t sc_intr_lock;
int sc_dying;
Index: src/sys/dev/usb/ohci.c
diff -u src/sys/dev/usb/ohci.c:1.254.2.5 src/sys/dev/usb/ohci.c:1.254.2.6
--- src/sys/dev/usb/ohci.c:1.254.2.5 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/ohci.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ohci.c,v 1.254.2.5 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: ohci.c,v 1.254.2.6 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1998, 2004, 2005, 2012 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.254.2.5 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.254.2.6 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -127,9 +127,6 @@ Static ohci_soft_itd_t *ohci_hash_find_
Static usbd_status ohci_setup_isoc(usbd_pipe_handle pipe);
Static void ohci_device_isoc_enter(usbd_xfer_handle);
-Static usbd_status ohci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-Static void ohci_freem(struct usbd_bus *, usb_dma_t *);
-
Static usbd_xfer_handle ohci_allocx(struct usbd_bus *);
Static void ohci_freex(struct usbd_bus *, usbd_xfer_handle);
Static void ohci_get_lock(struct usbd_bus *, kmutex_t **);
@@ -254,8 +251,6 @@ Static const struct usbd_bus_methods ohc
.ubm_open = ohci_open,
.ubm_softint = ohci_softintr,
.ubm_dopoll = ohci_poll,
- .ubm_allocm = ohci_allocm,
- .ubm_freem = ohci_freem,
.ubm_allocx = ohci_allocx,
.ubm_freex = ohci_freex,
.ubm_getlock = ohci_get_lock,
@@ -670,9 +665,7 @@ ohci_init(ohci_softc_t *sc)
return (USBD_INVAL);
}
sc->sc_bus.usbrev = USBREV_1_0;
-
- usb_setup_reserve(sc->sc_dev, &sc->sc_dma_reserve, sc->sc_bus.dmatag,
- USB_MEM_RESERVE);
+ sc->sc_bus.usedma = true;
/* XXX determine alignment by R/W */
/* Allocate the HCCA area. */
@@ -919,29 +912,6 @@ ohci_init(ohci_softc_t *sc)
return (err);
}
-usbd_status
-ohci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct ohci_softc *sc = bus->hci_private;
- usbd_status status;
-
- status = usb_allocmem(&sc->sc_bus, size, 0, dma);
- if (status == USBD_NOMEM)
- status = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
- return status;
-}
-
-void
-ohci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct ohci_softc *sc = bus->hci_private;
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&sc->sc_dma_reserve, dma);
- return;
- }
- usb_freemem(&sc->sc_bus, dma);
-}
-
usbd_xfer_handle
ohci_allocx(struct usbd_bus *bus)
{
@@ -1597,7 +1567,7 @@ ohci_rhsc(ohci_softc_t *sc, usbd_xfer_ha
return;
}
- p = KERNADDR(&xfer->dmabuf, 0);
+ p = xfer->buf;
m = min(sc->sc_noport, xfer->length * 8 - 1);
memset(p, 0, xfer->length);
for (i = 1; i <= m; i++) {
@@ -2526,7 +2496,7 @@ ohci_root_ctrl_start(usbd_xfer_handle xf
index = UGETW(req->wIndex);
if (len != 0)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
#define C(x,y) ((x) | ((y) << 8))
switch(C(req->bRequest, req->bmRequestType)) {
Index: src/sys/dev/usb/ohcivar.h
diff -u src/sys/dev/usb/ohcivar.h:1.55.6.1 src/sys/dev/usb/ohcivar.h:1.55.6.2
--- src/sys/dev/usb/ohcivar.h:1.55.6.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/ohcivar.h Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ohcivar.h,v 1.55.6.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: ohcivar.h,v 1.55.6.2 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -143,7 +143,6 @@ typedef struct ohci_softc {
struct callout sc_tmo_rhsc;
device_t sc_child;
char sc_dying;
- struct usb_dma_reserve sc_dma_reserve;
} ohci_softc_t;
struct ohci_xfer {
Index: src/sys/dev/usb/pseye.c
diff -u src/sys/dev/usb/pseye.c:1.21.34.1 src/sys/dev/usb/pseye.c:1.21.34.2
--- src/sys/dev/usb/pseye.c:1.21.34.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/pseye.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: pseye.c,v 1.21.34.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: pseye.c,v 1.21.34.2 2014/12/02 09:00:33 skrll Exp $ */
/*-
* Copyright (c) 2008 Jared D. McNeill <[email protected]>
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pseye.c,v 1.21.34.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pseye.c,v 1.21.34.2 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -622,7 +622,7 @@ pseye_get_frame(struct pseye_softc *sc,
return USBD_IOERROR;
return usbd_bulk_transfer(sc->sc_bulkin_xfer, sc->sc_bulkin_pipe,
- USBD_SHORT_XFER_OK|USBD_NO_COPY, 1000,
+ USBD_SHORT_XFER_OK, 1000,
sc->sc_bulkin_buffer, plen);
}
Index: src/sys/dev/usb/stuirda.c
diff -u src/sys/dev/usb/stuirda.c:1.16.2.2 src/sys/dev/usb/stuirda.c:1.16.2.3
--- src/sys/dev/usb/stuirda.c:1.16.2.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/stuirda.c Tue Dec 2 09:00:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: stuirda.c,v 1.16.2.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: stuirda.c,v 1.16.2.3 2014/12/02 09:00:33 skrll Exp $ */
/*
* Copyright (c) 2001,2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: stuirda.c,v 1.16.2.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: stuirda.c,v 1.16.2.3 2014/12/02 09:00:33 skrll Exp $");
#include <sys/param.h>
@@ -312,7 +312,7 @@ stuirda_write(void *h, struct uio *uio,
n += STUIRDA_HEADER_SIZE + sc->sc_wr_buf[1];
err = usbd_bulk_transfer(sc->sc_wr_xfer, sc->sc_wr_pipe,
- USBD_FORCE_SHORT_XFER|USBD_NO_COPY,
+ USBD_FORCE_SHORT_XFER,
UIRDA_WR_TIMEOUT,
sc->sc_wr_buf, &n);
DPRINTFN(2, ("uirdawrite: err=%d\n", err));
Index: src/sys/dev/usb/uaudio.c
diff -u src/sys/dev/usb/uaudio.c:1.140.2.1 src/sys/dev/usb/uaudio.c:1.140.2.2
--- src/sys/dev/usb/uaudio.c:1.140.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/uaudio.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uaudio.c,v 1.140.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: uaudio.c,v 1.140.2.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1999, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.140.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.140.2.2 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2823,7 +2823,7 @@ uaudio_chan_ptransfer(struct chan *ch)
//DPRINTFN(5, "ptransfer xfer=%p\n", cb->xfer);
/* Fill the request */
usbd_setup_isoc_xfer(cb->xfer, ch->pipe, cb, cb->sizes,
- UAUDIO_NFRAMES, USBD_NO_COPY,
+ UAUDIO_NFRAMES, 0,
uaudio_chan_pintr);
(void)usbd_transfer(cb->xfer);
@@ -2906,7 +2906,7 @@ uaudio_chan_rtransfer(struct chan *ch)
DPRINTFN(5, "transfer xfer=%p\n", cb->xfer);
/* Fill the request */
usbd_setup_isoc_xfer(cb->xfer, ch->pipe, cb, cb->sizes,
- UAUDIO_NFRAMES, USBD_NO_COPY,
+ UAUDIO_NFRAMES, 0,
uaudio_chan_rintr);
(void)usbd_transfer(cb->xfer);
Index: src/sys/dev/usb/ubt.c
diff -u src/sys/dev/usb/ubt.c:1.51 src/sys/dev/usb/ubt.c:1.51.4.1
--- src/sys/dev/usb/ubt.c:1.51 Tue May 20 18:25:54 2014
+++ src/sys/dev/usb/ubt.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ubt.c,v 1.51 2014/05/20 18:25:54 rmind Exp $ */
+/* $NetBSD: ubt.c,v 1.51.4.1 2014/12/02 09:00:34 skrll Exp $ */
/*-
* Copyright (c) 2006 Itronix Inc.
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.51 2014/05/20 18:25:54 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.51.4.1 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -1052,7 +1052,7 @@ ubt_xmit_cmd_start(struct ubt_softc *sc)
&req,
sc->sc_cmd_buf,
len,
- USBD_NO_COPY | USBD_FORCE_SHORT_XFER,
+ USBD_FORCE_SHORT_XFER,
ubt_xmit_cmd_complete);
status = usbd_transfer(sc->sc_cmd_xfer);
@@ -1164,7 +1164,7 @@ ubt_xmit_acl_start(struct ubt_softc *sc)
sc,
sc->sc_aclwr_buf,
len,
- USBD_NO_COPY | USBD_FORCE_SHORT_XFER,
+ USBD_FORCE_SHORT_XFER,
UBT_ACL_TIMEOUT,
ubt_xmit_acl_complete);
@@ -1325,7 +1325,7 @@ ubt_xmit_sco_start1(struct ubt_softc *sc
isoc,
isoc->size,
num,
- USBD_NO_COPY | USBD_FORCE_SHORT_XFER,
+ USBD_FORCE_SHORT_XFER,
ubt_xmit_sco_complete);
usbd_transfer(isoc->xfer);
@@ -1460,7 +1460,7 @@ ubt_recv_acl_start(struct ubt_softc *sc)
sc,
sc->sc_aclrd_buf,
UBT_BUFSIZ_ACL,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT,
ubt_recv_acl_complete);
@@ -1559,7 +1559,7 @@ ubt_recv_sco_start1(struct ubt_softc *sc
isoc,
isoc->size,
UBT_NFRAMES,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ USBD_SHORT_XFER_OK,
ubt_recv_sco_complete);
usbd_transfer(isoc->xfer);
Index: src/sys/dev/usb/ucom.c
diff -u src/sys/dev/usb/ucom.c:1.108.2.1 src/sys/dev/usb/ucom.c:1.108.2.2
--- src/sys/dev/usb/ucom.c:1.108.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/ucom.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ucom.c,v 1.108.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: ucom.c,v 1.108.2.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.108.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.108.2.2 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1150,7 +1150,7 @@ ucom_submit_write(struct ucom_softc *sc,
usbd_setup_xfer(ub->ub_xfer, sc->sc_bulkout_pipe,
(usbd_private_handle)sc, ub->ub_data, ub->ub_len,
- USBD_NO_COPY, USBD_NO_TIMEOUT, ucomwritecb);
+ 0, USBD_NO_TIMEOUT, ucomwritecb);
ucom_write_status(sc, ub, usbd_transfer(ub->ub_xfer));
}
@@ -1238,7 +1238,7 @@ ucomsubmitread(struct ucom_softc *sc, st
usbd_setup_xfer(ub->ub_xfer, sc->sc_bulkin_pipe,
(usbd_private_handle)sc, ub->ub_data, sc->sc_ibufsize,
- USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT, ucomreadcb);
+ USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT, ucomreadcb);
if ((err = usbd_transfer(ub->ub_xfer)) != USBD_IN_PROGRESS) {
/* XXX: Recover from this, please! */
Index: src/sys/dev/usb/udl.c
diff -u src/sys/dev/usb/udl.c:1.11.6.1 src/sys/dev/usb/udl.c:1.11.6.2
--- src/sys/dev/usb/udl.c:1.11.6.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/udl.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: udl.c,v 1.11.6.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: udl.c,v 1.11.6.2 2014/12/02 09:00:34 skrll Exp $ */
/*-
* Copyright (c) 2009 FUKAUMI Naoki.
@@ -53,7 +53,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udl.c,v 1.11.6.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udl.c,v 1.11.6.2 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -1430,7 +1430,7 @@ udl_cmd_send(struct udl_softc *sc)
/* do xfer */
error = usbd_bulk_transfer(cmdq->cq_xfer, sc->sc_tx_pipeh,
- USBD_NO_COPY, USBD_NO_TIMEOUT, cmdq->cq_buf, &len);
+ 0, USBD_NO_TIMEOUT, cmdq->cq_buf, &len);
UDL_CMD_BUFINIT(sc);
@@ -1482,7 +1482,7 @@ udl_cmd_send_async(struct udl_softc *sc)
/* do xfer */
mutex_enter(&sc->sc_mtx);
usbd_setup_xfer(cmdq->cq_xfer, sc->sc_tx_pipeh, cmdq, cmdq->cq_buf,
- len, USBD_NO_COPY, USBD_NO_TIMEOUT, udl_cmd_send_async_cb);
+ len, 0, USBD_NO_TIMEOUT, udl_cmd_send_async_cb);
error = usbd_transfer(cmdq->cq_xfer);
if (error != USBD_NORMAL_COMPLETION && error != USBD_IN_PROGRESS) {
aprint_error_dev(sc->sc_dev, "%s: %s!\n", __func__,
Index: src/sys/dev/usb/udsir.c
diff -u src/sys/dev/usb/udsir.c:1.1.14.1 src/sys/dev/usb/udsir.c:1.1.14.2
--- src/sys/dev/usb/udsir.c:1.1.14.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/udsir.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: udsir.c,v 1.1.14.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: udsir.c,v 1.1.14.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udsir.c,v 1.1.14.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udsir.c,v 1.1.14.2 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -604,8 +604,8 @@ udsir_write(void *h, struct uio *uio, in
#endif
err = usbd_intr_transfer(sc->sc_wr_xfer, sc->sc_wr_pipe,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
- UDSIR_WR_TIMEOUT, wrbuf, &btlen);
+ USBD_FORCE_SHORT_XFER, UDSIR_WR_TIMEOUT,
+ wrbuf, &btlen);
DPRINTFN(2, ("%s: err=%d\n", __func__, err));
if (err != USBD_NORMAL_COMPLETION) {
if (err == USBD_INTERRUPTED)
@@ -1045,7 +1045,7 @@ udsir_start_read(struct udsir_softc *sc)
}
usbd_setup_xfer(sc->sc_rd_xfer, sc->sc_rd_pipe, sc, sc->sc_rd_buf,
- sc->sc_rd_maxpsz, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ sc->sc_rd_maxpsz, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, udsir_rd_cb);
err = usbd_transfer(sc->sc_rd_xfer);
if (err != USBD_IN_PROGRESS) {
Index: src/sys/dev/usb/ugen.c
diff -u src/sys/dev/usb/ugen.c:1.126.2.2 src/sys/dev/usb/ugen.c:1.126.2.3
--- src/sys/dev/usb/ugen.c:1.126.2.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/ugen.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ugen.c,v 1.126.2.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: ugen.c,v 1.126.2.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.126.2.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.126.2.3 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -479,7 +479,7 @@ ugenopen(dev_t dev, int flag, int mode,
usbd_setup_isoc_xfer
(xfer, sce->pipeh, &sce->isoreqs[i],
sce->isoreqs[i].sizes,
- UGEN_NISORFRMS, USBD_NO_COPY,
+ UGEN_NISORFRMS, 0,
ugen_isoc_rintr);
(void)usbd_transfer(xfer);
}
@@ -697,7 +697,7 @@ ugen_do_read(struct ugen_softc *sc, int
usbd_setup_xfer(xfer,
sce->pipeh, sce, NULL,
min(n, sce->ra_wb_xferlen),
- USBD_NO_COPY, USBD_NO_TIMEOUT,
+ 0, USBD_NO_TIMEOUT,
ugen_bulkra_intr);
sce->state &= ~UGEN_RA_WB_STOP;
err = usbd_transfer(xfer);
@@ -911,7 +911,7 @@ ugen_do_write(struct ugen_softc *sc, int
n - tn);
usbd_setup_xfer(xfer,
sce->pipeh, sce, NULL, n,
- USBD_NO_COPY, USBD_NO_TIMEOUT,
+ 0, USBD_NO_TIMEOUT,
ugen_bulkwb_intr);
sce->state &= ~UGEN_RA_WB_STOP;
err = usbd_transfer(xfer);
@@ -1161,7 +1161,7 @@ ugen_isoc_rintr(usbd_xfer_handle xfer, u
}
usbd_setup_isoc_xfer(xfer, sce->pipeh, req, req->sizes, UGEN_NISORFRMS,
- USBD_NO_COPY, ugen_isoc_rintr);
+ 0, ugen_isoc_rintr);
(void)usbd_transfer(xfer);
mutex_enter(&sc->sc_lock);
@@ -1219,7 +1219,7 @@ ugen_bulkra_intr(usbd_xfer_handle xfer,
n = (sce->limit - sce->ibuf) - sce->ra_wb_used;
if (n > 0) {
usbd_setup_xfer(xfer, sce->pipeh, sce, NULL,
- min(n, sce->ra_wb_xferlen), USBD_NO_COPY,
+ min(n, sce->ra_wb_xferlen), 0,
USBD_NO_TIMEOUT, ugen_bulkra_intr);
err = usbd_transfer(xfer);
if (err != USBD_IN_PROGRESS) {
@@ -1288,7 +1288,7 @@ ugen_bulkwb_intr(usbd_xfer_handle xfer,
memcpy(tbuf, sce->ibuf, count - n);
usbd_setup_xfer(xfer, sce->pipeh, sce, NULL,
- count, USBD_NO_COPY, USBD_NO_TIMEOUT, ugen_bulkwb_intr);
+ count, 0, USBD_NO_TIMEOUT, ugen_bulkwb_intr);
err = usbd_transfer(xfer);
if (err != USBD_IN_PROGRESS) {
printf("usbd_bulkwb_intr: error=%d\n", err);
@@ -1503,7 +1503,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
usbd_setup_xfer(sce->ra_wb_xfer, sce->pipeh, sce,
NULL,
min(sce->ra_wb_xferlen, sce->ra_wb_bufsize),
- USBD_NO_COPY, USBD_NO_TIMEOUT,
+ 0, USBD_NO_TIMEOUT,
ugen_bulkra_intr);
err = usbd_transfer(sce->ra_wb_xfer);
if (err != USBD_IN_PROGRESS) {
Index: src/sys/dev/usb/uhci.c
diff -u src/sys/dev/usb/uhci.c:1.264.4.5 src/sys/dev/usb/uhci.c:1.264.4.6
--- src/sys/dev/usb/uhci.c:1.264.4.5 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/uhci.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhci.c,v 1.264.4.5 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: uhci.c,v 1.264.4.6 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2004, 2011, 2012 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.264.4.5 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.264.4.6 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -165,9 +165,6 @@ Static void uhci_rem_loop(uhci_softc_t
Static usbd_status uhci_setup_isoc(usbd_pipe_handle pipe);
Static void uhci_device_isoc_enter(usbd_xfer_handle);
-Static usbd_status uhci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-Static void uhci_freem(struct usbd_bus *, usb_dma_t *);
-
Static usbd_xfer_handle uhci_allocx(struct usbd_bus *);
Static void uhci_freex(struct usbd_bus *, usbd_xfer_handle);
Static void uhci_get_lock(struct usbd_bus *, kmutex_t **);
@@ -286,8 +283,6 @@ const struct usbd_bus_methods uhci_bus_m
.ubm_open = uhci_open,
.ubm_softint = uhci_softintr,
.ubm_dopoll = uhci_poll,
- .ubm_allocm = uhci_allocm,
- .ubm_freem = uhci_freem,
.ubm_allocx = uhci_allocx,
.ubm_freex = uhci_freex,
.ubm_getlock = uhci_get_lock,
@@ -408,9 +403,6 @@ uhci_init(uhci_softc_t *sc)
uhci_globalreset(sc); /* reset the controller */
uhci_reset(sc);
- usb_setup_reserve(sc->sc_dev, &sc->sc_dma_reserve, sc->sc_bus.dmatag,
- USB_MEM_RESERVE);
-
/* Allocate and initialize real frame array. */
err = usb_allocmem(&sc->sc_bus,
UHCI_FRAMELIST_COUNT * sizeof(uhci_physaddr_t),
@@ -536,6 +528,7 @@ uhci_init(uhci_softc_t *sc)
/* Set up the bus struct. */
sc->sc_bus.methods = &uhci_bus_methods;
sc->sc_bus.pipe_size = sizeof(struct uhci_pipe);
+ sc->sc_bus.usedma = true;
UHCICMD(sc, UHCI_CMD_MAXP); /* Assume 64 byte packets at frame end */
@@ -596,54 +589,6 @@ uhci_detach(struct uhci_softc *sc, int f
return (rv);
}
-usbd_status
-uhci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct uhci_softc *sc = bus->hci_private;
- usbd_status status;
- uint32_t n;
-
- /*
- * XXX
- * Since we are allocating a buffer we can assume that we will
- * need TDs for it. Since we don't want to allocate those from
- * an interrupt context, we allocate them here and free them again.
- * This is no guarantee that we'll get the TDs next time...
- */
- n = size / 8;
- if (n > 16) {
- uint32_t i;
- uhci_soft_td_t **stds;
-
- DPRINTF(("uhci_allocm: get %d TDs\n", n));
- stds = kmem_alloc(sizeof(uhci_soft_td_t *) * n, KM_SLEEP);
- if (!stds)
- return USBD_NOMEM;
- for(i = 0; i < n; i++)
- stds[i] = uhci_alloc_std(sc);
- for(i = 0; i < n; i++)
- if (stds[i] != NULL)
- uhci_free_std(sc, stds[i]);
- kmem_free(stds, sizeof(uhci_soft_td_t *) * n);
- }
-
- status = usb_allocmem(&sc->sc_bus, size, 0, dma);
- if (status == USBD_NOMEM)
- status = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
- return status;
-}
-
-void
-uhci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&((struct uhci_softc *)bus)->sc_dma_reserve,
- dma);
- return;
- }
- usb_freemem(&((struct uhci_softc *)bus)->sc_bus, dma);
-}
-
usbd_xfer_handle
uhci_allocx(struct usbd_bus *bus)
{
@@ -1002,7 +947,7 @@ uhci_poll_hub(void *addr)
sc = pipe->device->bus->hci_private;
callout_reset(&sc->sc_poll_handle, sc->sc_ival, uhci_poll_hub, xfer);
- p = KERNADDR(&xfer->dmabuf, 0);
+ p = xfer->buf;
p[0] = 0;
if (UREAD2(sc, UHCI_PORTSC1) & (UHCI_PORTSC_CSC|UHCI_PORTSC_OCIC))
p[0] |= 1<<1;
@@ -3585,7 +3530,7 @@ uhci_root_ctrl_start(usbd_xfer_handle xf
index = UGETW(req->wIndex);
if (len != 0)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
#define C(x,y) ((x) | ((y) << 8))
switch(C(req->bRequest, req->bmRequestType)) {
Index: src/sys/dev/usb/uhcivar.h
diff -u src/sys/dev/usb/uhcivar.h:1.52.14.1 src/sys/dev/usb/uhcivar.h:1.52.14.2
--- src/sys/dev/usb/uhcivar.h:1.52.14.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/uhcivar.h Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhcivar.h,v 1.52.14.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: uhcivar.h,v 1.52.14.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -182,7 +182,6 @@ typedef struct uhci_softc {
int sc_id_vendor; /* vendor ID for root hub */
device_t sc_child; /* /dev/usb# device */
- struct usb_dma_reserve sc_dma_reserve;
} uhci_softc_t;
usbd_status uhci_init(uhci_softc_t *);
Index: src/sys/dev/usb/uhso.c
diff -u src/sys/dev/usb/uhso.c:1.17 src/sys/dev/usb/uhso.c:1.17.2.1
--- src/sys/dev/usb/uhso.c:1.17 Sat Nov 15 19:18:19 2014
+++ src/sys/dev/usb/uhso.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhso.c,v 1.17 2014/11/15 19:18:19 christos Exp $ */
+/* $NetBSD: uhso.c,v 1.17.2.1 2014/12/02 09:00:34 skrll Exp $ */
/*-
* Copyright (c) 2009 Iain Hibbert
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhso.c,v 1.17 2014/11/15 19:18:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhso.c,v 1.17.2.1 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -907,7 +907,7 @@ uhso_mux_write(struct uhso_port *hp)
USETW(req.wLength, hp->hp_wlen);
usbd_setup_default_xfer(hp->hp_wxfer, sc->sc_udev, hp, USBD_NO_TIMEOUT,
- &req, hp->hp_wbuf, hp->hp_wlen, USBD_NO_COPY, hp->hp_write_cb);
+ &req, hp->hp_wbuf, hp->hp_wlen, 0, hp->hp_write_cb);
status = usbd_transfer(hp->hp_wxfer);
if (status != USBD_IN_PROGRESS) {
@@ -943,7 +943,7 @@ uhso_mux_read(struct uhso_port *hp)
USETW(req.wLength, hp->hp_rsize);
usbd_setup_default_xfer(hp->hp_rxfer, sc->sc_udev, hp, USBD_NO_TIMEOUT,
- &req, hp->hp_rbuf, hp->hp_rsize, USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ &req, hp->hp_rbuf, hp->hp_rsize, USBD_SHORT_XFER_OK,
hp->hp_read_cb);
status = usbd_transfer(hp->hp_rxfer);
@@ -1183,7 +1183,7 @@ uhso_bulk_write(struct uhso_port *hp)
DPRINTF(5, "hp=%p, wlen=%zd\n", hp, hp->hp_wlen);
usbd_setup_xfer(hp->hp_wxfer, hp->hp_wpipe, hp, hp->hp_wbuf,
- hp->hp_wlen, USBD_NO_COPY, USBD_NO_TIMEOUT, hp->hp_write_cb);
+ hp->hp_wlen, 0, USBD_NO_TIMEOUT, hp->hp_write_cb);
status = usbd_transfer(hp->hp_wxfer);
if (status != USBD_IN_PROGRESS) {
@@ -1204,7 +1204,7 @@ uhso_bulk_read(struct uhso_port *hp)
DPRINTF(5, "hp=%p\n", hp);
usbd_setup_xfer(hp->hp_rxfer, hp->hp_rpipe, hp, hp->hp_rbuf,
- hp->hp_rsize, USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ hp->hp_rsize, USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, hp->hp_read_cb);
status = usbd_transfer(hp->hp_rxfer);
Index: src/sys/dev/usb/uirda.c
diff -u src/sys/dev/usb/uirda.c:1.38.6.2 src/sys/dev/usb/uirda.c:1.38.6.3
--- src/sys/dev/usb/uirda.c:1.38.6.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/uirda.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uirda.c,v 1.38.6.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: uirda.c,v 1.38.6.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uirda.c,v 1.38.6.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uirda.c,v 1.38.6.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -553,7 +553,7 @@ uirda_write(void *h, struct uio *uio, in
n += UIRDA_OUTPUT_HEADER_SIZE;
err = usbd_bulk_transfer(sc->sc_wr_xfer, sc->sc_wr_pipe,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ USBD_FORCE_SHORT_XFER,
UIRDA_WR_TIMEOUT,
sc->sc_wr_buf, &n);
DPRINTFN(2, ("uirdawrite: err=%d\n", err));
@@ -776,8 +776,8 @@ uirda_set_params(void *h, struct irda_pa
sc->sc_wr_buf[0] = hdr;
n = UIRDA_OUTPUT_HEADER_SIZE;
err = usbd_bulk_transfer(sc->sc_wr_xfer, sc->sc_wr_pipe,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
- UIRDA_WR_TIMEOUT, sc->sc_wr_buf, &n);
+ USBD_FORCE_SHORT_XFER, UIRDA_WR_TIMEOUT,
+ sc->sc_wr_buf, &n);
if (err) {
aprint_error_dev(sc->sc_dev, "set failed, err=%d\n",
err);
@@ -888,7 +888,7 @@ uirda_start_read(struct uirda_softc *sc)
usbd_setup_xfer(sc->sc_rd_xfer, sc->sc_rd_pipe, sc, sc->sc_rd_buf,
sc->sc_params.maxsize + sc->sc_hdszi,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, uirda_rd_cb);
err = usbd_transfer(sc->sc_rd_xfer);
if (err != USBD_IN_PROGRESS) {
Index: src/sys/dev/usb/usscanner.c
diff -u src/sys/dev/usb/usscanner.c:1.38.6.2 src/sys/dev/usb/usscanner.c:1.38.6.3
--- src/sys/dev/usb/usscanner.c:1.38.6.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/usscanner.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usscanner.c,v 1.38.6.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: usscanner.c,v 1.38.6.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -47,7 +47,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usscanner.c,v 1.38.6.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usscanner.c,v 1.38.6.3 2014/12/02 09:00:34 skrll Exp $");
#include "scsibus.h"
#include <sys/param.h>
@@ -452,7 +452,7 @@ usscanner_sense(struct usscanner_softc *
sc->sc_state = UAS_SENSECMD;
memcpy(sc->sc_cmd_buffer, &sense_cmd, sizeof sense_cmd);
usbd_setup_xfer(sc->sc_cmd_xfer, sc->sc_out_pipe, sc, sc->sc_cmd_buffer,
- sizeof sense_cmd, USBD_NO_COPY, USSCANNER_TIMEOUT,
+ sizeof sense_cmd, 0, USSCANNER_TIMEOUT,
usscanner_sensecmd_cb);
err = usbd_transfer(sc->sc_cmd_xfer);
if (err == USBD_IN_PROGRESS)
@@ -579,7 +579,7 @@ usscanner_done(struct usscanner_softc *s
sc->sc_state = UAS_STATUS;
usbd_setup_xfer(sc->sc_intr_xfer, sc->sc_intr_pipe, sc, &sc->sc_status,
- 1, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ 1, USBD_SHORT_XFER_OK,
USSCANNER_TIMEOUT, usscanner_intr_cb);
err = usbd_transfer(sc->sc_intr_xfer);
if (err == USBD_IN_PROGRESS)
@@ -622,7 +622,7 @@ usscanner_sensecmd_cb(usbd_xfer_handle x
sc->sc_state = UAS_SENSEDATA;
usbd_setup_xfer(sc->sc_data_xfer, sc->sc_in_pipe, sc,
sc->sc_data_buffer,
- sizeof xs->sense, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ sizeof xs->sense, USBD_SHORT_XFER_OK,
USSCANNER_TIMEOUT, usscanner_sensedata_cb);
err = usbd_transfer(sc->sc_data_xfer);
if (err == USBD_IN_PROGRESS)
@@ -685,7 +685,7 @@ usscanner_cmd_cb(usbd_xfer_handle xfer,
}
sc->sc_state = UAS_DATA;
usbd_setup_xfer(sc->sc_data_xfer, pipe, sc, sc->sc_data_buffer,
- xs->datalen, USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ xs->datalen, USBD_SHORT_XFER_OK,
xs->timeout, usscanner_data_cb);
err = usbd_transfer(sc->sc_data_xfer);
if (err == USBD_IN_PROGRESS)
@@ -751,7 +751,7 @@ usscanner_scsipi_request(struct scsipi_c
sc->sc_xs = xs;
memcpy(sc->sc_cmd_buffer, xs->cmd, xs->cmdlen);
usbd_setup_xfer(sc->sc_cmd_xfer, sc->sc_out_pipe, sc,
- sc->sc_cmd_buffer, xs->cmdlen, USBD_NO_COPY,
+ sc->sc_cmd_buffer, xs->cmdlen, 0,
USSCANNER_TIMEOUT, usscanner_cmd_cb);
err = usbd_transfer(sc->sc_cmd_xfer);
if (err != USBD_IN_PROGRESS) {
Index: src/sys/dev/usb/ulpt.c
diff -u src/sys/dev/usb/ulpt.c:1.95.4.2 src/sys/dev/usb/ulpt.c:1.95.4.3
--- src/sys/dev/usb/ulpt.c:1.95.4.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/ulpt.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ulpt.c,v 1.95.4.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: ulpt.c,v 1.95.4.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulpt.c,v 1.95.4.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulpt.c,v 1.95.4.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -631,7 +631,7 @@ ulpt_do_write(struct ulpt_softc *sc, str
if (error)
break;
DPRINTFN(4, ("ulptwrite: transfer %d bytes\n", n));
- err = usbd_bulk_transfer(xfer, sc->sc_out_pipe, USBD_NO_COPY,
+ err = usbd_bulk_transfer(xfer, sc->sc_out_pipe, 0,
USBD_NO_TIMEOUT, bufp, &n);
if (err) {
DPRINTFN(3, ("ulptwrite: error=%d\n", err));
@@ -721,8 +721,7 @@ ulpt_do_read(struct ulpt_softc *sc, stru
DPRINTFN(4, ("ulptread: transfer %d bytes, nonblocking=%d timeout=%d\n",
n, nonblocking, timeout));
err = usbd_bulk_transfer(xfer, sc->sc_in_pipe,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
- timeout, bufp, &n);
+ USBD_SHORT_XFER_OK, timeout, bufp, &n);
DPRINTFN(4, ("ulptread: transfer complete nreq %d n %d nread %d err %d\n",
nreq, n, nread, err));
@@ -885,7 +884,7 @@ ulpt_tick(void *xsc)
return;
usbd_setup_xfer(sc->sc_in_xfer, sc->sc_in_pipe, sc, sc->sc_in_buf,
- ULPT_BSIZE, USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ ULPT_BSIZE, USBD_SHORT_XFER_OK,
ULPT_READ_TIMO, ulpt_read_cb);
err = usbd_transfer(sc->sc_in_xfer);
DPRINTFN(3, ("ulpt_tick: sc=%p err=%d\n", sc, err));
Index: src/sys/dev/usb/umass.c
diff -u src/sys/dev/usb/umass.c:1.149.2.1 src/sys/dev/usb/umass.c:1.149.2.2
--- src/sys/dev/usb/umass.c:1.149.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/umass.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: umass.c,v 1.149.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: umass.c,v 1.149.2.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -124,7 +124,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umass.c,v 1.149.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umass.c,v 1.149.2.2 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -1117,7 +1117,7 @@ umass_bbb_state(usbd_xfer_handle xfer, u
if (sc->transfer_dir == DIR_IN) {
if (umass_setup_transfer(sc, sc->sc_pipe[UMASS_BULKIN],
sc->data_buffer, sc->transfer_datalen,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
sc->transfer_xfer[XFER_BBB_DATA]))
umass_bbb_reset(sc, STATUS_WIRE_FAILED);
@@ -1127,7 +1127,7 @@ umass_bbb_state(usbd_xfer_handle xfer, u
sc->transfer_datalen);
if (umass_setup_transfer(sc, sc->sc_pipe[UMASS_BULKOUT],
sc->data_buffer, sc->transfer_datalen,
- USBD_NO_COPY,/* fixed length transfer */
+ 0,/* fixed length transfer */
sc->transfer_xfer[XFER_BBB_DATA]))
umass_bbb_reset(sc, STATUS_WIRE_FAILED);
@@ -1576,7 +1576,7 @@ umass_cbi_state(usbd_xfer_handle xfer, u
if (sc->transfer_dir == DIR_IN) {
if (umass_setup_transfer(sc, sc->sc_pipe[UMASS_BULKIN],
sc->data_buffer, sc->transfer_datalen,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
sc->transfer_xfer[XFER_CBI_DATA]))
umass_cbi_reset(sc, STATUS_WIRE_FAILED);
@@ -1586,7 +1586,7 @@ umass_cbi_state(usbd_xfer_handle xfer, u
sc->transfer_datalen);
if (umass_setup_transfer(sc, sc->sc_pipe[UMASS_BULKOUT],
sc->data_buffer, sc->transfer_datalen,
- USBD_NO_COPY,/* fixed length transfer */
+ 0,/* fixed length transfer */
sc->transfer_xfer[XFER_CBI_DATA]))
umass_cbi_reset(sc, STATUS_WIRE_FAILED);
Index: src/sys/dev/usb/umidi.c
diff -u src/sys/dev/usb/umidi.c:1.65.14.2 src/sys/dev/usb/umidi.c:1.65.14.3
--- src/sys/dev/usb/umidi.c:1.65.14.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/umidi.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: umidi.c,v 1.65.14.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: umidi.c,v 1.65.14.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2001, 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umidi.c,v 1.65.14.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umidi.c,v 1.65.14.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -1431,7 +1431,7 @@ start_input_transfer(struct umidi_endpoi
usbd_setup_xfer(ep->xfer, ep->pipe,
(usbd_private_handle)ep,
ep->buffer, ep->buffer_size,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, in_intr);
return usbd_transfer(ep->xfer);
}
@@ -1449,7 +1449,7 @@ start_output_transfer(struct umidi_endpo
usbd_setup_xfer(ep->xfer, ep->pipe,
(usbd_private_handle)ep,
ep->buffer, length,
- USBD_NO_COPY, USBD_NO_TIMEOUT, out_intr);
+ 0, USBD_NO_TIMEOUT, out_intr);
rv = usbd_transfer(ep->xfer);
/*
Index: src/sys/dev/usb/urio.c
diff -u src/sys/dev/usb/urio.c:1.42.4.2 src/sys/dev/usb/urio.c:1.42.4.3
--- src/sys/dev/usb/urio.c:1.42.4.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/urio.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: urio.c,v 1.42.4.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: urio.c,v 1.42.4.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: urio.c,v 1.42.4.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: urio.c,v 1.42.4.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -358,7 +358,7 @@ urioread(dev_t dev, struct uio *uio, int
while ((n = min(URIO_BSIZE, uio->uio_resid)) != 0) {
DPRINTFN(1, ("urioread: start transfer %d bytes\n", n));
tn = n;
- err = usbd_bulk_transfer(xfer, sc->sc_in_pipe, USBD_NO_COPY,
+ err = usbd_bulk_transfer(xfer, sc->sc_in_pipe, 0,
URIO_RW_TIMEOUT, bufp, &tn);
if (err) {
if (err == USBD_INTERRUPTED)
@@ -420,7 +420,7 @@ uriowrite(dev_t dev, struct uio *uio, in
DPRINTFN(1, ("uriowrite: transfer %d bytes\n", n));
- err = usbd_bulk_transfer(xfer, sc->sc_out_pipe, USBD_NO_COPY,
+ err = usbd_bulk_transfer(xfer, sc->sc_out_pipe, 0,
URIO_RW_TIMEOUT, bufp, &n);
DPRINTFN(2, ("uriowrite: err=%d\n", err));
if (err) {
Index: src/sys/dev/usb/usb_mem.c
diff -u src/sys/dev/usb/usb_mem.c:1.65.2.1 src/sys/dev/usb/usb_mem.c:1.65.2.2
--- src/sys/dev/usb/usb_mem.c:1.65.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/usb_mem.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usb_mem.c,v 1.65.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: usb_mem.c,v 1.65.2.2 2014/12/02 09:00:34 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.65.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb_mem.c,v 1.65.2.2 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -124,20 +124,8 @@ usb_block_allocmem(bus_dma_tag_t tag, si
DPRINTFN(5, ("usb_block_allocmem: size=%zu align=%zu\n", size, align));
- if (size == 0) {
-#ifdef DIAGNOSTIC
- printf("usb_block_allocmem: called with size==0\n");
-#endif
- return USBD_INVAL;
- }
-
-#ifdef DIAGNOSTIC
- if (cpu_softintr_p() || cpu_intr_p()) {
- printf("usb_block_allocmem: in interrupt context, size=%lu\n",
- (unsigned long) size);
- }
-#endif
-
+ ASSERT_SLEEPABLE();
+ KASSERT(size != 0);
KASSERT(mutex_owned(&usb_blk_lock));
/* First check the free list. */
@@ -155,13 +143,6 @@ usb_block_allocmem(bus_dma_tag_t tag, si
}
}
-#ifdef DIAGNOSTIC
- if (cpu_softintr_p() || cpu_intr_p()) {
- printf("usb_block_allocmem: in interrupt context, failed\n");
- return (USBD_NOMEM);
- }
-#endif
-
DPRINTFN(6, ("usb_block_allocmem: no free\n"));
b = kmem_zalloc(sizeof *b, KM_SLEEP);
if (b == NULL)
@@ -293,6 +274,8 @@ usb_allocmem_flags(usbd_bus_handle bus,
static ONCE_DECL(init_control);
bool frag;
+ ASSERT_SLEEPABLE();
+
RUN_ONCE(&init_control, usb_mem_init);
frag = (flags & USBMALLOC_MULTISEG);
@@ -351,7 +334,6 @@ usb_allocmem_flags(usbd_bus_handle bus,
#ifdef USB_FRAG_DMA_WORKAROUND
p->offs += USB_MEM_SMALL;
#endif
- p->block->flags &= ~USB_DMA_RESERVE;
LIST_REMOVE(f, next);
mutex_exit(&usb_blk_lock);
DPRINTFN(5, ("usb_allocmem: use frag=%p size=%d\n", f, (int)size));
@@ -430,123 +412,3 @@ usb_syncmem(usb_dma_t *p, bus_addr_t off
bus_dmamap_sync(p->block->tag, p->block->map, p->offs + offset,
len, ops);
}
-
-
-usbd_status
-usb_reserve_allocm(struct usb_dma_reserve *rs, usb_dma_t *dma, uint32_t size)
-{
- int error;
- u_long start;
- bus_addr_t baddr;
-
- if (rs->vaddr == 0 || size > USB_MEM_RESERVE)
- return USBD_NOMEM;
-
- dma->block = kmem_zalloc(sizeof *dma->block, KM_SLEEP);
- if (dma->block == NULL) {
- aprint_error_dev(rs->dv, "%s: failed allocating dma block",
- __func__);
- goto out0;
- }
-
- dma->block->nsegs = 1;
- dma->block->segs = kmem_alloc(dma->block->nsegs *
- sizeof(*dma->block->segs), KM_SLEEP);
- if (dma->block->segs == NULL) {
- aprint_error_dev(rs->dv, "%s: failed allocating 1 dma segment",
- __func__);
- goto out1;
- }
-
- error = extent_alloc(rs->extent, size, PAGE_SIZE, 0,
- EX_NOWAIT, &start);
-
- if (error != 0) {
- aprint_error_dev(rs->dv, "%s: extent_alloc size %u failed "
- "(error %d)", __func__, size, error);
- goto out2;
- }
-
- baddr = start;
- dma->offs = baddr - rs->paddr;
- dma->block->flags = USB_DMA_RESERVE;
- dma->block->align = PAGE_SIZE;
- dma->block->size = size;
- dma->block->segs[0] = rs->map->dm_segs[0];
- dma->block->map = rs->map;
- dma->block->kaddr = rs->vaddr;
- dma->block->tag = rs->dtag;
-
- return USBD_NORMAL_COMPLETION;
-out2:
- kmem_free(dma->block->segs, dma->block->nsegs *
- sizeof(*dma->block->segs));
-out1:
- kmem_free(dma->block, sizeof *dma->block);
-out0:
- return USBD_NOMEM;
-}
-
-void
-usb_reserve_freem(struct usb_dma_reserve *rs, usb_dma_t *dma)
-{
-
- extent_free(rs->extent,
- (u_long)(rs->paddr + dma->offs), dma->block->size, 0);
- kmem_free(dma->block->segs, dma->block->nsegs *
- sizeof(*dma->block->segs));
- kmem_free(dma->block, sizeof *dma->block);
-}
-
-int
-usb_setup_reserve(device_t dv, struct usb_dma_reserve *rs, bus_dma_tag_t dtag,
- size_t size)
-{
- int error, nseg;
- bus_dma_segment_t seg;
-
- rs->dtag = dtag;
- rs->size = size;
- rs->dv = dv;
-
- error = bus_dmamem_alloc(dtag, USB_MEM_RESERVE, PAGE_SIZE, 0,
- &seg, 1, &nseg, BUS_DMA_NOWAIT);
- if (error != 0)
- return error;
-
- error = bus_dmamem_map(dtag, &seg, nseg, USB_MEM_RESERVE,
- &rs->vaddr, BUS_DMA_NOWAIT|BUS_DMA_COHERENT);
- if (error != 0)
- goto freeit;
-
- error = bus_dmamap_create(dtag, USB_MEM_RESERVE, 1,
- USB_MEM_RESERVE, 0, BUS_DMA_NOWAIT, &rs->map);
- if (error != 0)
- goto unmap;
-
- error = bus_dmamap_load(dtag, rs->map, rs->vaddr, USB_MEM_RESERVE,
- NULL, BUS_DMA_NOWAIT);
- if (error != 0)
- goto destroy;
-
- rs->paddr = rs->map->dm_segs[0].ds_addr;
- rs->extent = extent_create(device_xname(dv), (u_long)rs->paddr,
- (u_long)(rs->paddr + USB_MEM_RESERVE - 1), 0, 0, 0);
- if (rs->extent == NULL) {
- rs->vaddr = 0;
- return ENOMEM;
- }
-
- return 0;
-
- destroy:
- bus_dmamap_destroy(dtag, rs->map);
- unmap:
- bus_dmamem_unmap(dtag, rs->vaddr, size);
- freeit:
- bus_dmamem_free(dtag, &seg, nseg);
-
- rs->vaddr = 0;
-
- return error;
-}
Index: src/sys/dev/usb/usb_mem.h
diff -u src/sys/dev/usb/usb_mem.h:1.30.14.2 src/sys/dev/usb/usb_mem.h:1.30.14.3
--- src/sys/dev/usb/usb_mem.h:1.30.14.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/usb_mem.h Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usb_mem.h,v 1.30.14.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: usb_mem.h,v 1.30.14.3 2014/12/02 09:00:34 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/usb_mem.h,v 1.9 1999/11/17 22:33:47 n_hibma Exp $ */
/*
@@ -42,7 +42,6 @@ typedef struct usb_dma_block {
size_t align;
int flags;
#define USB_DMA_FULLBLOCK 0x0001
-#define USB_DMA_RESERVE 0x0002
LIST_ENTRY(usb_dma_block) next;
} usb_dma_block_t;
@@ -59,28 +58,3 @@ bus_addr_t usb_dmaaddr(usb_dma_t *, unsi
#define DMAADDR(dma, o) usb_dmaaddr((dma), (o))
#define KERNADDR(dma, o) \
((void *)((char *)(dma)->block->kaddr + (dma)->offs + (o)))
-
-struct extent;
-
-struct usb_dma_reserve {
- bus_dma_tag_t dtag;
- bus_dmamap_t map;
- void *vaddr;
- bus_addr_t paddr;
- size_t size;
- struct extent *extent;
- device_t dv;
-};
-
-#if defined(_KERNEL_OPT)
-#include "opt_usb_mem_reserve.h"
-#endif
-
-#ifndef USB_MEM_RESERVE
-#define USB_MEM_RESERVE (256 * 1024)
-#endif
-
-usbd_status usb_reserve_allocm(struct usb_dma_reserve *, usb_dma_t *,
- uint32_t);
-int usb_setup_reserve(device_t, struct usb_dma_reserve *, bus_dma_tag_t, size_t);
-void usb_reserve_freem(struct usb_dma_reserve *, usb_dma_t *);
Index: src/sys/dev/usb/usbdi.c
diff -u src/sys/dev/usb/usbdi.c:1.162.2.4 src/sys/dev/usb/usbdi.c:1.162.2.5
--- src/sys/dev/usb/usbdi.c:1.162.2.4 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/usbdi.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdi.c,v 1.162.2.4 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: usbdi.c,v 1.162.2.5 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2012 The NetBSD Foundation, Inc.
@@ -31,18 +31,21 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.162.2.4 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.162.2.5 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
#include "opt_compat_netbsd.h"
#endif
+#include "usb_dma.h"
+
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/device.h>
#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/proc.h>
#include <sys/bus.h>
#include <sys/cpu.h>
@@ -275,7 +278,6 @@ usbd_status
usbd_transfer(usbd_xfer_handle xfer)
{
usbd_pipe_handle pipe = xfer->pipe;
- usb_dma_t *dmap = &xfer->dmabuf;
usbd_status err;
unsigned int size, flags;
@@ -297,29 +299,44 @@ usbd_transfer(usbd_xfer_handle xfer)
return (USBD_CANCELLED);
}
+ struct usbd_bus *bus = pipe->device->bus;
+
size = xfer->length;
- /* If there is no buffer, allocate one. */
- if (!(xfer->rqflags & URQ_DEV_DMABUF) && size != 0) {
- struct usbd_bus *bus = pipe->device->bus;
+ flags = xfer->flags;
+
+ /*
+ * isoc transfers are always size == 0, whereas other transfers can
+ * require a URQ_AUTO_BUFFER buffer.
+ *
+ * URQ_AUTO_BUFFER will be removed at some point, i.e. the transfer
+ * should provide the buffer.
+ */
+ if (size != 0) {
+ if (xfer->buf == NULL) {
+ xfer->buf = usbd_alloc_buffer(xfer, size);
+ if (xfer->buf == NULL)
+ return USBD_NOMEM;
#ifdef DIAGNOSTIC
- if (xfer->rqflags & URQ_AUTO_DMABUF)
- printf("usbd_transfer: has old buffer!\n");
+ if (xfer->rqflags & URQ_AUTO_BUFFER)
+ printf("usbd_transfer: has old buffer!\n");
#endif
- err = bus->methods->ubm_allocm(bus, dmap, size);
- if (err) {
- USBHIST_LOG(usbdebug,
- "<- done xfer %p, no mem", xfer, 0, 0, 0);
- return (err);
+ xfer->rqflags |= URQ_AUTO_BUFFER;
}
- xfer->rqflags |= URQ_AUTO_DMABUF;
}
-
- flags = xfer->flags;
-
- /* Copy data if going out. */
- if (!(flags & USBD_NO_COPY) && size != 0 && !usbd_xfer_isread(xfer))
- memcpy(KERNADDR(dmap, 0), xfer->buffer, size);
+ if (bus->usedma) {
+ /*
+ * Copy data if not using the xfer buffer. isoc transfers
+ * always use DMA buffer, i.e. buffer == NULL
+ */
+ if (xfer->buffer == NULL) {
+ xfer->buffer = xfer->buf;
+ } else if (xfer->buffer != xfer->buf) {
+ memcpy(xfer->buf, xfer->buffer, size);
+ }
+ } else {
+ xfer->buffer = xfer->buf;
+ }
/* xfer is not valid after the transfer method unless synchronous */
err = pipe->methods->upm_transfer(xfer);
@@ -327,11 +344,9 @@ usbd_transfer(usbd_xfer_handle xfer)
if (err != USBD_IN_PROGRESS && err) {
/* The transfer has not been queued, so free buffer. */
- if (xfer->rqflags & URQ_AUTO_DMABUF) {
- struct usbd_bus *bus = pipe->device->bus;
-
- bus->methods->ubm_freem(bus, &xfer->dmabuf);
- xfer->rqflags &= ~URQ_AUTO_DMABUF;
+ if (xfer->rqflags & URQ_AUTO_BUFFER) {
+ usbd_free_buffer(xfer);
+ xfer->rqflags &= ~URQ_AUTO_BUFFER;
}
}
@@ -388,39 +403,71 @@ usbd_sync_transfer_sig(usbd_xfer_handle
void *
usbd_alloc_buffer(usbd_xfer_handle xfer, uint32_t size)
{
+
+ KASSERT(xfer->buf == NULL);
+ KASSERT(size != 0);
+ KASSERT(!(xfer->rqflags & URQ_AUTO_BUFFER));
+
+ xfer->bufsize = 0;
+#if NUSB_DMA > 0
struct usbd_bus *bus = xfer->device->bus;
- usbd_status err;
-#ifdef DIAGNOSTIC
- if (xfer->rqflags & (URQ_DEV_DMABUF | URQ_AUTO_DMABUF))
- printf("usbd_alloc_buffer: xfer already has a buffer\n");
+ if (bus->usedma) {
+ usb_dma_t *dmap = &xfer->dmabuf;
+
+ int err = usb_allocmem_flags(bus, size, 0, dmap, bus->dmaflags);
+ if (err) {
+ return NULL;
+ }
+ xfer->buf = KERNADDR(&xfer->dmabuf, 0);
+ xfer->bufsize = size;
+
+ return xfer->buf;
+ }
#endif
- err = bus->methods->ubm_allocm(bus, &xfer->dmabuf, size);
- if (err)
- return (NULL);
- xfer->rqflags |= URQ_DEV_DMABUF;
- return (KERNADDR(&xfer->dmabuf, 0));
+ KASSERT(xfer->device->bus->usedma == false);
+ xfer->buf = kmem_alloc(size, KM_SLEEP);
+
+ if (xfer->buf != NULL) {
+ xfer->bufsize = size;
+ }
+
+ return xfer->buf;
}
void
usbd_free_buffer(usbd_xfer_handle xfer)
{
-#ifdef DIAGNOSTIC
- if (!(xfer->rqflags & (URQ_DEV_DMABUF | URQ_AUTO_DMABUF))) {
- printf("usbd_free_buffer: no buffer\n");
+ KASSERT(xfer->buf != NULL);
+ KASSERT(xfer->bufsize != 0);
+
+ void *buf = xfer->buf;
+ uint32_t size = xfer->bufsize;
+
+ xfer->rqflags &= ~URQ_AUTO_BUFFER;
+ xfer->buf = NULL;
+ xfer->bufsize = 0;
+
+#if NUSB_DMA > 0
+ struct usbd_bus *bus = xfer->device->bus;
+
+ if (bus->usedma) {
+ usb_dma_t *dmap = &xfer->dmabuf;
+
+ usb_freemem(bus, dmap);
return;
}
#endif
- xfer->rqflags &= ~(URQ_DEV_DMABUF | URQ_AUTO_DMABUF);
- xfer->device->bus->methods->ubm_freem(xfer->device->bus, &xfer->dmabuf);
+ KASSERT(xfer->device->bus->usedma == false);
+
+ kmem_free(buf, size);
}
void *
usbd_get_buffer(usbd_xfer_handle xfer)
{
- if (!(xfer->rqflags & URQ_DEV_DMABUF))
- return (NULL);
- return (KERNADDR(&xfer->dmabuf, 0));
+
+ return xfer->buf;
}
usbd_xfer_handle
@@ -451,8 +498,9 @@ usbd_free_xfer(usbd_xfer_handle xfer)
USBHIST_FUNC(); USBHIST_CALLED(usbdebug);
USBHIST_LOG(usbdebug, "%p", xfer, 0, 0, 0);
- if (xfer->rqflags & (URQ_DEV_DMABUF | URQ_AUTO_DMABUF))
+ if (xfer->buf) {
usbd_free_buffer(xfer);
+ }
#if defined(DIAGNOSTIC)
if (callout_pending(&xfer->timeout_handle)) {
callout_stop(&xfer->timeout_handle);
@@ -817,11 +865,11 @@ void
usb_transfer_complete(usbd_xfer_handle xfer)
{
usbd_pipe_handle pipe = xfer->pipe;
- usb_dma_t *dmap = &xfer->dmabuf;
+ struct usbd_bus *bus = pipe->device->bus;
int sync = xfer->flags & USBD_SYNCHRONOUS;
int erred = xfer->status == USBD_CANCELLED ||
xfer->status == USBD_TIMEOUT;
- int polling = pipe->device->bus->use_polling;
+ int polling = bus->use_polling;
int repeat;
USBHIST_FUNC(); USBHIST_CALLED(usbdebug);
@@ -849,24 +897,21 @@ usb_transfer_complete(usbd_xfer_handle x
if (polling)
pipe->running = 0;
- if (!(xfer->flags & USBD_NO_COPY) && xfer->actlen != 0 &&
- usbd_xfer_isread(xfer)) {
-#ifdef DIAGNOSTIC
- if (xfer->actlen > xfer->length) {
- printf("%s: actlen (%d) > len (%d)\n", __func__,
- xfer->actlen, xfer->length);
- xfer->actlen = xfer->length;
- }
-#endif
- memcpy(xfer->buffer, KERNADDR(dmap, 0), xfer->actlen);
+ if (xfer->buffer != xfer->buf) {
+ /* can only be different for DMA busses */
+ KASSERT(bus->usedma);
+ KDASSERTMSG(xfer->actlen <= xfer->length,
+ "actlen %d length %d",xfer->actlen, xfer->length);
+
+ memcpy(xfer->buffer, xfer->buf, xfer->actlen);
}
+ /* XXX remove at some point */
/* if we allocated the buffer in usbd_transfer() we free it here. */
- if (xfer->rqflags & URQ_AUTO_DMABUF) {
+ if (xfer->rqflags & URQ_AUTO_BUFFER) {
if (!repeat) {
- struct usbd_bus *bus = pipe->device->bus;
- bus->methods->ubm_freem(bus, dmap);
- xfer->rqflags &= ~URQ_AUTO_DMABUF;
+ usbd_free_buffer(xfer);
+ xfer->rqflags &= ~URQ_AUTO_BUFFER;
}
}
Index: src/sys/dev/usb/usbdi.h
diff -u src/sys/dev/usb/usbdi.h:1.90.4.1 src/sys/dev/usb/usbdi.h:1.90.4.2
--- src/sys/dev/usb/usbdi.h:1.90.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/usbdi.h Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdi.h,v 1.90.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: usbdi.h,v 1.90.4.2 2014/12/02 09:00:34 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $ */
/*
@@ -77,7 +77,6 @@ typedef void (*usbd_callback)(usbd_xfer_
#define USBD_DEFAULT_INTERVAL (-1)
/* Request flags */
-#define USBD_NO_COPY 0x01 /* do not copy data to DMA buffer */
#define USBD_SYNCHRONOUS 0x02 /* wait for completion */
/* in usb.h #define USBD_SHORT_XFER_OK 0x04*/ /* allow short reads */
#define USBD_FORCE_SHORT_XFER 0x08 /* force last short packet on write */
Index: src/sys/dev/usb/usbdivar.h
diff -u src/sys/dev/usb/usbdivar.h:1.109.2.3 src/sys/dev/usb/usbdivar.h:1.109.2.4
--- src/sys/dev/usb/usbdivar.h:1.109.2.3 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/usbdivar.h Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdivar.h,v 1.109.2.3 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: usbdivar.h,v 1.109.2.4 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 1998, 2012 The NetBSD Foundation, Inc.
@@ -43,8 +43,6 @@
* open_pipe - might want to take lock?
* soft_intr x
* do_poll - might want to take lock?
- * allocm -
- * freem -
* allocx -
* freex -
* get_lock - Called at attach time
@@ -95,9 +93,6 @@ struct usbd_bus_methods {
usbd_status (*ubm_open)(struct usbd_pipe *pipe);
void (*ubm_softint)(void *);
void (*ubm_dopoll)(struct usbd_bus *);
- usbd_status (*ubm_allocm)(struct usbd_bus *, usb_dma_t *,
- uint32_t);
- void (*ubm_freem)(struct usbd_bus *, usb_dma_t *);
struct usbd_xfer * (*ubm_allocx)(struct usbd_bus *);
void (*ubm_freex)(struct usbd_bus *, struct usbd_xfer *);
void (*ubm_getlock)(struct usbd_bus *, kmutex_t **);
@@ -167,6 +162,9 @@ struct usbd_bus {
#define USBREV_STR { "unknown", "pre 1.0", "1.0", "1.1", "2.0", "3.0" }
void *soft; /* soft interrupt cookie */
+
+ bool usedma; /* Does this HC support DMA */
+ int dmaflags;
bus_dma_tag_t dmatag; /* DMA tag */
};
@@ -255,11 +253,12 @@ struct usbd_xfer {
/* For memory allocation */
struct usbd_device *device;
usb_dma_t dmabuf;
+ void *buf;
+ uint32_t bufsize;
uint8_t rqflags;
#define URQ_REQUEST 0x01
-#define URQ_AUTO_DMABUF 0x10
-#define URQ_DEV_DMABUF 0x20
+#define URQ_AUTO_BUFFER 0x10
SIMPLEQ_ENTRY(usbd_xfer) next;
Index: src/sys/dev/usb/ustir.c
diff -u src/sys/dev/usb/ustir.c:1.33.10.2 src/sys/dev/usb/ustir.c:1.33.10.3
--- src/sys/dev/usb/ustir.c:1.33.10.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/ustir.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ustir.c,v 1.33.10.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: ustir.c,v 1.33.10.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ustir.c,v 1.33.10.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ustir.c,v 1.33.10.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -650,7 +650,7 @@ ustir_start_read(struct ustir_softc *sc)
usbd_setup_xfer(sc->sc_rd_xfer, sc->sc_rd_pipe, sc, sc->sc_rd_buf,
sc->sc_params.maxsize,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT, ustir_rd_cb);
err = usbd_transfer(sc->sc_rd_xfer);
if (err != USBD_IN_PROGRESS) {
@@ -984,7 +984,7 @@ ustir_write(void *h, struct uio *uio, in
#endif
err = usbd_bulk_transfer(sc->sc_wr_xfer, sc->sc_wr_pipe,
- USBD_FORCE_SHORT_XFER | USBD_NO_COPY,
+ USBD_FORCE_SHORT_XFER,
USTIR_WR_TIMEOUT,
wrbuf, &btlen);
DPRINTFN(2, ("%s: err=%d\n", __func__, err));
Index: src/sys/dev/usb/utoppy.c
diff -u src/sys/dev/usb/utoppy.c:1.24.4.1 src/sys/dev/usb/utoppy.c:1.24.4.2
--- src/sys/dev/usb/utoppy.c:1.24.4.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/utoppy.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: utoppy.c,v 1.24.4.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: utoppy.c,v 1.24.4.2 2014/12/02 09:00:34 skrll Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: utoppy.c,v 1.24.4.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: utoppy.c,v 1.24.4.2 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -614,7 +614,7 @@ utoppy_send_packet(struct utoppy_softc *
memcpy(sc->sc_out_buf, data, thislen);
err = utoppy_bulk_transfer(sc->sc_out_xfer, sc->sc_out_pipe,
- USBD_NO_COPY, timeout, sc->sc_out_buf, &thislen,
+ 0, timeout, sc->sc_out_buf, &thislen,
"utoppytx");
if (thislen != min(len, UTOPPY_FRAG_SIZE)) {
@@ -655,7 +655,7 @@ utoppy_recv_packet(struct utoppy_softc *
requested = thislen = min(bytesleft, UTOPPY_FRAG_SIZE);
err = utoppy_bulk_transfer(sc->sc_in_xfer, sc->sc_in_pipe,
- USBD_NO_COPY | USBD_SHORT_XFER_OK, timeout, sc->sc_in_buf,
+ USBD_SHORT_XFER_OK, timeout, sc->sc_in_buf,
&thislen, "utoppyrx");
DPRINTF(UTOPPY_DBG_RECV_PACKET, ("%s: utoppy_recv_packet: "
Index: src/sys/dev/usb/uvideo.c
diff -u src/sys/dev/usb/uvideo.c:1.41.2.1 src/sys/dev/usb/uvideo.c:1.41.2.2
--- src/sys/dev/usb/uvideo.c:1.41.2.1 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/uvideo.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uvideo.c,v 1.41.2.1 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: uvideo.c,v 1.41.2.2 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2008 Patrick Mahoney
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvideo.c,v 1.41.2.1 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvideo.c,v 1.41.2.2 2014/12/02 09:00:34 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -1745,7 +1745,7 @@ uvideo_stream_recv_isoc_start1(struct uv
isoc,
isoc->i_frlengths,
ix->ix_nframes,
- USBD_NO_COPY | USBD_SHORT_XFER_OK,
+ USBD_SHORT_XFER_OK,
uvideo_stream_recv_isoc_complete);
err = usbd_transfer(isoc->i_xfer);
@@ -1853,7 +1853,7 @@ uvideo_stream_recv_bulk_transfer(void *a
while (bx->bx_running) {
len = bx->bx_buflen;
err = usbd_bulk_transfer(bx->bx_xfer, bx->bx_pipe,
- USBD_SHORT_XFER_OK | USBD_NO_COPY,
+ USBD_SHORT_XFER_OK,
USBD_NO_TIMEOUT,
bx->bx_buffer, &len);
Index: src/sys/dev/usb/xhci.c
diff -u src/sys/dev/usb/xhci.c:1.28.2.3 src/sys/dev/usb/xhci.c:1.28.2.4
--- src/sys/dev/usb/xhci.c:1.28.2.3 Mon Dec 1 12:38:39 2014
+++ src/sys/dev/usb/xhci.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: xhci.c,v 1.28.2.3 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: xhci.c,v 1.28.2.4 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2013 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.28.2.3 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.28.2.4 2014/12/02 09:00:34 skrll Exp $");
#include "opt_usb.h"
@@ -119,8 +119,6 @@ static usbd_status xhci_open(usbd_pipe_h
static int xhci_intr1(struct xhci_softc * const);
static void xhci_softintr(void *);
static void xhci_poll(struct usbd_bus *);
-static usbd_status xhci_allocm(struct usbd_bus *, usb_dma_t *, uint32_t);
-static void xhci_freem(struct usbd_bus *, usb_dma_t *);
static usbd_xfer_handle xhci_allocx(struct usbd_bus *);
static void xhci_freex(struct usbd_bus *, usbd_xfer_handle);
static void xhci_get_lock(struct usbd_bus *, kmutex_t **);
@@ -187,8 +185,6 @@ static const struct usbd_bus_methods xhc
.ubm_open = xhci_open,
.ubm_softint = xhci_softintr,
.ubm_dopoll = xhci_poll,
- .ubm_allocm = xhci_allocm,
- .ubm_freem = xhci_freem,
.ubm_allocx = xhci_allocx,
.ubm_freex = xhci_freex,
.ubm_getlock = xhci_get_lock,
@@ -617,6 +613,7 @@ xhci_init(struct xhci_softc *sc)
/* XXX Low/Full/High speeds for now */
sc->sc_bus.usbrev = USBREV_2_0;
+ sc->sc_bus.usedma = true;
cap = xhci_read_4(sc, XHCI_CAPLENGTH);
caplength = XHCI_CAP_CAPLENGTH(cap);
@@ -1201,7 +1198,7 @@ xhci_rhpsc(struct xhci_softc * const sc,
port += 1;
DPRINTFN(4, "hs port %u status change", port, 0, 0, 0);
- p = KERNADDR(&xfer->dmabuf, 0);
+ p = xfer->buf;
memset(p, 0, xfer->length);
p[port/NBBY] |= 1 << (port%NBBY);
xfer->actlen = xfer->length;
@@ -1375,43 +1372,6 @@ xhci_poll(struct usbd_bus *bus)
return;
}
-static usbd_status
-xhci_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct xhci_softc * const sc = bus->hci_private;
- usbd_status err;
-
- XHCIHIST_FUNC(); XHCIHIST_CALLED();
-
- err = usb_allocmem(&sc->sc_bus, size, 0, dma);
-#if 0
- if (err == USBD_NOMEM)
- err = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
-#endif
-#ifdef XHCI_DEBUG
- if (err)
- DPRINTFN(1, "usb_allocmem(%u)=%d", err, size, 0, 0);
-#endif
-
- return err;
-}
-
-static void
-xhci_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct xhci_softc * const sc = bus->hci_private;
-
- XHCIHIST_FUNC(); XHCIHIST_CALLED();
-
-#if 0
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&sc->sc_dma_reserve, dma);
- return;
- }
-#endif
- usb_freemem(&sc->sc_bus, dma);
-}
-
static usbd_xfer_handle
xhci_allocx(struct usbd_bus *bus)
{
@@ -2157,7 +2117,7 @@ xhci_root_ctrl_start(usbd_xfer_handle xf
len = UGETW(req->wLength);
if (len != 0)
- buf = KERNADDR(&xfer->dmabuf, 0);
+ buf = xfer->buf;
DPRINTFN(12, "rhreq: %04x %04x %04x %04x",
req->bmRequestType | (req->bRequest << 8), value, index, len);
Index: src/sys/external/bsd/dwc2/dwc2.c
diff -u src/sys/external/bsd/dwc2/dwc2.c:1.32.2.2 src/sys/external/bsd/dwc2/dwc2.c:1.32.2.3
--- src/sys/external/bsd/dwc2/dwc2.c:1.32.2.2 Mon Dec 1 12:38:39 2014
+++ src/sys/external/bsd/dwc2/dwc2.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: dwc2.c,v 1.32.2.2 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: dwc2.c,v 1.32.2.3 2014/12/02 09:00:34 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.32.2.2 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.32.2.3 2014/12/02 09:00:34 skrll Exp $");
#include "opt_usb.h"
@@ -162,8 +162,6 @@ Static const struct usbd_bus_methods dwc
.ubm_open = dwc2_open,
.ubm_softint = dwc2_softintr,
.ubm_dopoll = dwc2_poll,
- .ubm_allocm = dwc2_allocm,
- .ubm_freem = dwc2_freem,
.ubm_allocx = dwc2_allocx,
.ubm_freex = dwc2_freex,
.ubm_getlock = dwc2_get_lock,
@@ -223,34 +221,6 @@ Static const struct usbd_pipe_methods dw
.upm_done = dwc2_device_isoc_done,
};
-Static usbd_status
-dwc2_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct dwc2_softc *sc = DWC2_BUS2SC(bus);
- usbd_status status;
-
- DPRINTFN(10, "\n");
-
- status = usb_allocmem(&sc->sc_bus, size, 0, dma);
- if (status == USBD_NOMEM)
- status = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
- return status;
-}
-
-Static void
-dwc2_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct dwc2_softc *sc = DWC2_BUS2SC(bus);
-
- DPRINTFN(10, "\n");
-
- if (dma->block->flags & USB_DMA_RESERVE) {
- usb_reserve_freem(&sc->sc_dma_reserve, dma);
- return;
- }
- usb_freemem(&sc->sc_bus, dma);
-}
-
usbd_xfer_handle
dwc2_allocx(struct usbd_bus *bus)
{
@@ -1571,6 +1541,7 @@ dwc2_init(struct dwc2_softc *sc)
sc->sc_bus.usbrev = USBREV_2_0;
sc->sc_bus.methods = &dwc2_bus_methods;
sc->sc_bus.pipe_size = sizeof(struct dwc2_pipe);
+ sc->sc_bus.usedma = true;
sc->sc_hcdenabled = false;
mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_SOFTUSB);
@@ -1580,9 +1551,6 @@ dwc2_init(struct dwc2_softc *sc)
sc->sc_rhc_si = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
dwc2_rhc, sc);
- usb_setup_reserve(sc->sc_dev, &sc->sc_dma_reserve, sc->sc_bus.dmatag,
- USB_MEM_RESERVE);
-
sc->sc_xferpool = pool_cache_init(sizeof(struct dwc2_xfer), 0, 0, 0,
"dwc2xfer", NULL, IPL_USB, NULL, NULL, NULL);
sc->sc_qhpool = pool_cache_init(sizeof(struct dwc2_qh), 0, 0, 0,
Index: src/sys/external/bsd/dwc2/dwc2var.h
diff -u src/sys/external/bsd/dwc2/dwc2var.h:1.3 src/sys/external/bsd/dwc2/dwc2var.h:1.3.12.1
--- src/sys/external/bsd/dwc2/dwc2var.h:1.3 Tue Oct 22 12:57:40 2013
+++ src/sys/external/bsd/dwc2/dwc2var.h Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: dwc2var.h,v 1.3 2013/10/22 12:57:40 skrll Exp $ */
+/* $NetBSD: dwc2var.h,v 1.3.12.1 2014/12/02 09:00:34 skrll Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -94,7 +94,6 @@ typedef struct dwc2_softc {
device_t sc_child; /* /dev/usb# device */
char sc_dying;
- struct usb_dma_reserve sc_dma_reserve;
char sc_vendor[32]; /* vendor string for root hub */
int sc_id_vendor; /* vendor ID for root hub */
Index: src/sys/rump/dev/lib/libugenhc/Makefile
diff -u src/sys/rump/dev/lib/libugenhc/Makefile:1.8 src/sys/rump/dev/lib/libugenhc/Makefile:1.8.6.1
--- src/sys/rump/dev/lib/libugenhc/Makefile:1.8 Thu Mar 13 01:38:11 2014
+++ src/sys/rump/dev/lib/libugenhc/Makefile Tue Dec 2 09:00:34 2014
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.8 2014/03/13 01:38:11 pooka Exp $
+# $NetBSD: Makefile,v 1.8.6.1 2014/12/02 09:00:34 skrll Exp $
#
LIB= rumpdev_ugenhc
IOCONF= UGENHC.ioconf
-SRCS= ugenhc.c ugenhc_at_mainbus.c ugenhc_dma.c
+SRCS= ugenhc.c ugenhc_at_mainbus.c
CPPFLAGS+= -I${RUMPTOP}/librump/rumpkern
Index: src/sys/rump/dev/lib/libugenhc/ugenhc.c
diff -u src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.22.4.2 src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.22.4.3
--- src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.22.4.2 Mon Dec 1 12:38:39 2014
+++ src/sys/rump/dev/lib/libugenhc/ugenhc.c Tue Dec 2 09:00:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ugenhc.c,v 1.22.4.2 2014/12/01 12:38:39 skrll Exp $ */
+/* $NetBSD: ugenhc.c,v 1.22.4.3 2014/12/02 09:00:34 skrll Exp $ */
/*
* Copyright (c) 2009, 2010 Antti Kantee. All Rights Reserved.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ugenhc.c,v 1.22.4.2 2014/12/01 12:38:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ugenhc.c,v 1.22.4.3 2014/12/02 09:00:34 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -1039,22 +1039,6 @@ ugenhc_poll(struct usbd_bus *ubus)
}
-static usbd_status
-ugenhc_allocm(struct usbd_bus *bus, usb_dma_t *dma, uint32_t size)
-{
- struct ugenhc_softc *sc = bus->hci_private;
-
- return usb_allocmem(&sc->sc_bus, size, 0, dma);
-}
-
-static void
-ugenhc_freem(struct usbd_bus *bus, usb_dma_t *dma)
-{
- struct ugenhc_softc *sc = bus->hci_private;
-
- usb_freemem(&sc->sc_bus, dma);
-}
-
static struct usbd_xfer *
ugenhc_allocx(struct usbd_bus *bus)
{
@@ -1090,8 +1074,6 @@ static const struct usbd_bus_methods uge
.ubm_open = ugenhc_open,
.ubm_softint = ugenhc_softint,
.ubm_dopoll = ugenhc_poll,
- .ubm_allocm = ugenhc_allocm,
- .ubm_freem = ugenhc_freem,
.ubm_allocx = ugenhc_allocx,
.ubm_freex = ugenhc_freex,
.ubm_getlock = ugenhc_getlock
@@ -1125,6 +1107,7 @@ ugenhc_attach(device_t parent, device_t
sc->sc_bus.methods = &ugenhc_bus_methods;
sc->sc_bus.hci_private = sc;
sc->sc_bus.pipe_size = sizeof(struct ugenhc_pipe);
+ sc->sc_bus.usedma = false;
sc->sc_devnum = maa->maa_unit;
mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_NONE);