summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2005-02-14 01:51:51 +0000
committeriedowse <iedowse@FreeBSD.org>2005-02-14 01:51:51 +0000
commit0f68b77a1a9141ef1942b164128d198bc10fb7f8 (patch)
treea195d00082555946444caa70b66196eedb78cd02
parentad55d8b5d08acfe849492be0b140374b4cdc5fe6 (diff)
downloadFreeBSD-src-0f68b77a1a9141ef1942b164128d198bc10fb7f8.zip
FreeBSD-src-0f68b77a1a9141ef1942b164128d198bc10fb7f8.tar.gz
Add a new function usbd_abort_default_pipe() that aborts any transfers
on the default pipe. This is helpful in device detach routines to stop any active control transfers.
-rw-r--r--sys/dev/usb/usbdi.c6
-rw-r--r--sys/dev/usb/usbdi.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index 113462d..9a571dc 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -557,6 +557,12 @@ usbd_abort_pipe(usbd_pipe_handle pipe)
}
usbd_status
+usbd_abort_default_pipe(usbd_device_handle dev)
+{
+ return (usbd_abort_pipe(dev->default_pipe));
+}
+
+usbd_status
usbd_clear_endpoint_stall(usbd_pipe_handle pipe)
{
usbd_device_handle dev = pipe->device;
diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h
index eee7b9e..4e062bb 100644
--- a/sys/dev/usb/usbdi.h
+++ b/sys/dev/usb/usbdi.h
@@ -110,6 +110,7 @@ void usbd_get_xfer_status(usbd_xfer_handle, usbd_private_handle *,
usb_endpoint_descriptor_t *usbd_interface2endpoint_descriptor
(usbd_interface_handle, u_int8_t);
usbd_status usbd_abort_pipe(usbd_pipe_handle);
+usbd_status usbd_abort_default_pipe(usbd_device_handle);
usbd_status usbd_clear_endpoint_stall(usbd_pipe_handle);
usbd_status usbd_clear_endpoint_stall_async(usbd_pipe_handle);
void usbd_clear_endpoint_toggle(usbd_pipe_handle);
OpenPOWER on IntegriCloud