summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_bus.h
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-08-29 06:23:40 +0000
committerhselasky <hselasky@FreeBSD.org>2015-08-29 06:23:40 +0000
commit73eba52d267ae10896ebf8b8e692871e73465b48 (patch)
tree343064dda490fd73caed2ab2993d436d7de4cefd /sys/dev/usb/usb_bus.h
parent6323991c32b50145b2410f193aa0685e74466053 (diff)
downloadFreeBSD-src-73eba52d267ae10896ebf8b8e692871e73465b48.zip
FreeBSD-src-73eba52d267ae10896ebf8b8e692871e73465b48.tar.gz
MFC r286773:
Improve the realtime properties of USB transfers for embedded systems like RPI-B and RPI-2.
Diffstat (limited to 'sys/dev/usb/usb_bus.h')
-rw-r--r--sys/dev/usb/usb_bus.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/dev/usb/usb_bus.h b/sys/dev/usb/usb_bus.h
index afc20f4..e9d4048 100644
--- a/sys/dev/usb/usb_bus.h
+++ b/sys/dev/usb/usb_bus.h
@@ -57,19 +57,26 @@ struct usb_bus {
struct root_hold_token *bus_roothold;
#endif
+/* convenience macros */
+#define USB_BUS_TT_PROC(bus) USB_BUS_NON_GIANT_ISOC_PROC(bus)
+#define USB_BUS_CS_PROC(bus) USB_BUS_NON_GIANT_ISOC_PROC(bus)
+
#if USB_HAVE_PER_BUS_PROCESS
#define USB_BUS_GIANT_PROC(bus) (&(bus)->giant_callback_proc)
-#define USB_BUS_NON_GIANT_PROC(bus) (&(bus)->non_giant_callback_proc)
+#define USB_BUS_NON_GIANT_ISOC_PROC(bus) (&(bus)->non_giant_isoc_callback_proc)
+#define USB_BUS_NON_GIANT_BULK_PROC(bus) (&(bus)->non_giant_bulk_callback_proc)
#define USB_BUS_EXPLORE_PROC(bus) (&(bus)->explore_proc)
#define USB_BUS_CONTROL_XFER_PROC(bus) (&(bus)->control_xfer_proc)
-
/*
- * There are two callback processes. One for Giant locked
- * callbacks. One for non-Giant locked callbacks. This should
- * avoid congestion and reduce response time in most cases.
+ * There are three callback processes. One for Giant locked
+ * callbacks. One for non-Giant locked non-periodic callbacks
+ * and one for non-Giant locked periodic callbacks. This
+ * should avoid congestion and reduce response time in most
+ * cases.
*/
struct usb_process giant_callback_proc;
- struct usb_process non_giant_callback_proc;
+ struct usb_process non_giant_isoc_callback_proc;
+ struct usb_process non_giant_bulk_callback_proc;
/* Explore process */
struct usb_process explore_proc;
OpenPOWER on IntegriCloud