git: afeeccfbed27 - stable/13 - Let the xhci_hw_root structure span exactly XHCI_PAGE_SIZE bytes by increasing the number of completion event TRBs. This avoids wasting memory.

From: Hans Petter Selasky <hselasky_at_FreeBSD.org>
Date: Thu, 10 Mar 2022 08:35:36 UTC
The branch stable/13 has been updated by hselasky:

URL: https://cgit.FreeBSD.org/src/commit/?id=afeeccfbed271f4f6ba7b300d01eea34281395fd

commit afeeccfbed271f4f6ba7b300d01eea34281395fd
Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
AuthorDate: 2021-07-10 12:14:11 +0000
Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
CommitDate: 2022-03-10 08:18:04 +0000

    Let the xhci_hw_root structure span exactly XHCI_PAGE_SIZE bytes by increasing
    the number of completion event TRBs. This avoids wasting memory.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit e036ee6ce2e4d6fe0564f8bb3aa99a2f61d48fc6)
---
 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 c0427e0cf11f..e8841a05b134 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];