diff options
author | hselasky <hselasky@FreeBSD.org> | 2015-08-29 06:23:40 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2015-08-29 06:23:40 +0000 |
commit | 73eba52d267ae10896ebf8b8e692871e73465b48 (patch) | |
tree | 343064dda490fd73caed2ab2993d436d7de4cefd /sys/dev/usb/usb_bus.h | |
parent | 6323991c32b50145b2410f193aa0685e74466053 (diff) | |
download | FreeBSD-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.h | 19 |
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; |