From e036ee6ce2e4d6fe0564f8bb3aa99a2f61d48fc6 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Sat, 10 Jul 2021 14:14:11 +0200 Subject: [PATCH] Let the xhci_hw_root structure span exactly XHCI_PAGE_SIZE bytes by increasing the number of completion event TRBs. This avoids wasting memory. MFC after: 1 week Sponsored by: NVIDIA Networking --- sys/dev/usb/controller/xhci.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/usb/controller/xhci.h b/sys/dev/usb/controller/xhci.h index c0427e0cf11..e8841a05b13 100644 --- a/sys/dev/usb/controller/xhci.h +++ b/sys/dev/usb/controller/xhci.h @@ -33,7 +33,7 @@ #define XHCI_MAX_DEVICES MIN(USB_MAX_DEVICES, 128) #define XHCI_MAX_ENDPOINTS 32 /* hardcoded - do not change */ #define XHCI_MAX_SCRATCHPADS 256 /* theoretical max is 1023 */ -#define XHCI_MAX_EVENTS (16 * 13) +#define XHCI_MAX_EVENTS 232 #define XHCI_MAX_COMMANDS (16 * 1) #define XHCI_MAX_RSEG 1 #define XHCI_MAX_TRANSFERS 4 @@ -383,6 +383,8 @@ struct xhci_hw_root { struct xhci_trb hwr_commands[XHCI_MAX_COMMANDS]; }; +CTASSERT(sizeof(struct xhci_hw_root) == XHCI_PAGE_SIZE); + struct xhci_endpoint_ext { struct xhci_trb *trb; struct usb_xfer *xfer[XHCI_MAX_TRANSFERS * XHCI_MAX_STREAMS];