summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usbdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/usbdi.c')
-rw-r--r--sys/dev/usb/usbdi.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index c461d70c787..e875158358e 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: usbdi.c,v 1.75 2014/11/01 00:41:33 mpi Exp $ */
+/* $OpenBSD: usbdi.c,v 1.76 2015/01/09 12:07:50 mpi Exp $ */
/* $NetBSD: usbdi.c,v 1.103 2002/09/27 15:37:38 provos Exp $ */
/* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */
@@ -596,7 +596,7 @@ usbd_clear_endpoint_stall_async(struct usbd_pipe *pipe)
USETW(req.wValue, UF_ENDPOINT_HALT);
USETW(req.wIndex, pipe->endpoint->edesc->bEndpointAddress);
USETW(req.wLength, 0);
- err = usbd_do_request_async(dev, &req, 0);
+ err = usbd_do_request_async(dev, &req, 0, 0, 0);
return (err);
}
@@ -979,7 +979,7 @@ usbd_do_request_async_cb(struct usbd_xfer *xfer, void *priv,
*/
usbd_status
usbd_do_request_async(struct usbd_device *dev, usb_device_request_t *req,
- void *data)
+ void *data, void *priv, usbd_callback callback)
{
struct usbd_xfer *xfer;
usbd_status err;
@@ -987,8 +987,10 @@ usbd_do_request_async(struct usbd_device *dev, usb_device_request_t *req,
xfer = usbd_alloc_xfer(dev);
if (xfer == NULL)
return (USBD_NOMEM);
- usbd_setup_default_xfer(xfer, dev, 0, USBD_DEFAULT_TIMEOUT, req,
- data, UGETW(req->wLength), 0, usbd_do_request_async_cb);
+ if (callback == NULL)
+ callback = usbd_do_request_async_cb;
+ usbd_setup_default_xfer(xfer, dev, priv, USBD_DEFAULT_TIMEOUT, req,
+ data, UGETW(req->wLength), 0, callback);
err = usbd_transfer(xfer);
if (err != USBD_IN_PROGRESS) {
usbd_free_xfer(xfer);